Skip to content

Commit 3b1fdf2

Browse files
committed
Adopt latest loader
1 parent 790a8d2 commit 3b1fdf2

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

src/vs/loader.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -768,8 +768,7 @@ var AMDLoader;
768768
}
769769
contents = nodeInstrumenter(contents, normalizedScriptSrc);
770770
if (!opts.nodeCachedDataDir) {
771-
_this._loadAndEvalScript(moduleManager, scriptSrc, vmScriptSrc, contents, { filename: vmScriptSrc }, recorder);
772-
callback();
771+
_this._loadAndEvalScript(moduleManager, scriptSrc, vmScriptSrc, contents, { filename: vmScriptSrc }, recorder, callback, errorback);
773772
}
774773
else {
775774
var cachedDataPath_1 = _this._getCachedDataPath(opts.nodeCachedDataDir, scriptSrc);
@@ -780,22 +779,34 @@ var AMDLoader;
780779
produceCachedData: typeof cachedData === 'undefined',
781780
cachedData: cachedData
782781
};
783-
var script = _this._loadAndEvalScript(moduleManager, scriptSrc, vmScriptSrc, contents, options, recorder);
784-
callback();
782+
var script = _this._loadAndEvalScript(moduleManager, scriptSrc, vmScriptSrc, contents, options, recorder, callback, errorback);
785783
_this._processCachedData(moduleManager, script, cachedDataPath_1);
786784
});
787785
}
788786
});
789787
}
790788
};
791-
NodeScriptLoader.prototype._loadAndEvalScript = function (moduleManager, scriptSrc, vmScriptSrc, contents, options, recorder) {
789+
NodeScriptLoader.prototype._loadAndEvalScript = function (moduleManager, scriptSrc, vmScriptSrc, contents, options, recorder, callback, errorback) {
792790
// create script, run script
793791
recorder.record(31 /* NodeBeginEvaluatingScript */, scriptSrc);
794792
var script = new this._vm.Script(contents, options);
795793
var r = script.runInThisContext(options);
796-
r.call(AMDLoader.global, moduleManager.getGlobalAMDRequireFunc(), moduleManager.getGlobalAMDDefineFunc(), vmScriptSrc, this._path.dirname(scriptSrc));
794+
var globalDefineFunc = moduleManager.getGlobalAMDDefineFunc();
795+
var receivedDefineCall = false;
796+
var localDefineFunc = function () {
797+
receivedDefineCall = true;
798+
return globalDefineFunc.apply(null, arguments);
799+
};
800+
localDefineFunc.amd = globalDefineFunc.amd;
801+
r.call(AMDLoader.global, moduleManager.getGlobalAMDRequireFunc(), localDefineFunc, vmScriptSrc, this._path.dirname(scriptSrc));
797802
// signal done
798803
recorder.record(32 /* NodeEndEvaluatingScript */, scriptSrc);
804+
if (receivedDefineCall) {
805+
callback();
806+
}
807+
else {
808+
errorback(new Error("Didn't receive define call in " + scriptSrc + "!"));
809+
}
799810
return script;
800811
};
801812
NodeScriptLoader.prototype._getCachedDataPath = function (basedir, filename) {

0 commit comments

Comments
 (0)