diff options
-rw-r--r-- | src/postamble.js | 6 | ||||
-rw-r--r-- | src/preamble.js | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/postamble.js b/src/postamble.js index 94b60288..88986dea 100644 --- a/src/postamble.js +++ b/src/postamble.js @@ -12,6 +12,12 @@ ExitStatus.prototype.constructor = ExitStatus; var initialStackTop; var preloadStartTime = null; var calledMain = false; +var calledRun = false; + +dependenciesFulfilled = function() { + // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) + if (!calledRun && shouldRunNow) run(); +} Module['callMain'] = Module.callMain = function callMain(args) { assert(runDependencies == 0, 'cannot call main when async dependencies remain! (listen on __ATMAIN__)'); diff --git a/src/preamble.js b/src/preamble.js index 2f4e2547..9501f8dc 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -942,8 +942,9 @@ Math.toFloat32 = Math['toFloat32']; // the dependencies are met. var runDependencies = 0; var runDependencyTracking = {}; -var calledRun = false; var runDependencyWatcher = null; +var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled + function addRunDependency(id) { runDependencies++; if (Module['monitorRunDependencies']) { @@ -990,9 +991,8 @@ function removeRunDependency(id) { if (runDependencyWatcher !== null) { clearInterval(runDependencyWatcher); runDependencyWatcher = null; - } - // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false) - if (!calledRun && shouldRunNow) run(); + } + dependenciesFulfilled(); } } Module['removeRunDependency'] = removeRunDependency; |