@@ -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