aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/postamble.js6
-rw-r--r--src/preamble.js8
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;