aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/postamble.js3
-rw-r--r--src/preamble.js3
-rw-r--r--tests/test_browser.py4
3 files changed, 7 insertions, 3 deletions
diff --git a/src/postamble.js b/src/postamble.js
index 8f585b86..cd892733 100644
--- a/src/postamble.js
+++ b/src/postamble.js
@@ -35,9 +35,10 @@ var preloadStartTime = null;
var calledMain = false;
var calledRun = false;
-dependenciesFulfilled = function() {
+dependenciesFulfilled = function runCaller() {
// 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();
+ if (!calledRun) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled
}
Module['callMain'] = Module.callMain = function callMain(args) {
diff --git a/src/preamble.js b/src/preamble.js
index 02935f8f..8e70cb74 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -993,8 +993,9 @@ function removeRunDependency(id) {
runDependencyWatcher = null;
}
if (dependenciesFulfilled) {
- dependenciesFulfilled();
+ var callback = dependenciesFulfilled;
dependenciesFulfilled = null;
+ callback(); // can add another dependenciesFulfilled
}
}
}
diff --git a/tests/test_browser.py b/tests/test_browser.py
index 6a23b41c..a3b9a1c3 100644
--- a/tests/test_browser.py
+++ b/tests/test_browser.py
@@ -1477,7 +1477,9 @@ keydown(100);keyup(100); // trigger the end
}, 2000);
};
''')
- self.btest('pre_run_deps.cpp', expected='10', args=['--pre-js', 'pre.js'])
+
+ for mem in [0, 1]:
+ self.btest('pre_run_deps.cpp', expected='10', args=['--pre-js', 'pre.js', '--memory-init-file', str(mem)])
def test_worker_api(self):
Popen([PYTHON, EMCC, path_from_root('tests', 'worker_api_worker.cpp'), '-o', 'worker.js', '-s', 'BUILD_AS_WORKER=1', '-s', 'EXPORTED_FUNCTIONS=["_one"]']).communicate()