aboutsummaryrefslogtreecommitdiff
path: root/src/preamble.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-07-18 18:14:21 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-07-18 18:14:21 -0700
commit076a9d247bde6cdba54065b8aaa9ba0400c9da71 (patch)
tree88e94d4fc107f23f88d7010626d00aea99360a00 /src/preamble.js
parent23f7aed49d983f693c26ed3dc980e4efbd7d40eb (diff)
add runDependency tracking and fix detected bugs
Diffstat (limited to 'src/preamble.js')
-rw-r--r--src/preamble.js13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/preamble.js b/src/preamble.js
index 21b09985..7abe0db8 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -793,19 +793,28 @@ var STRING_TABLE = [];
// it happens right before run - run will be postponed until
// the dependencies are met.
var runDependencies = 0;
+var runDependencyTracking = {};
var calledRun = false;
-function addRunDependency() {
+function addRunDependency(id) {
runDependencies++;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
+ if (id) {
+ assert(!runDependencyTracking[id]);
+ runDependencyTracking[id] = 1;
+ }
}
Module['addRunDependency'] = addRunDependency;
-function removeRunDependency() {
+function removeRunDependency(id) {
runDependencies--;
if (Module['monitorRunDependencies']) {
Module['monitorRunDependencies'](runDependencies);
}
+ if (id) {
+ assert(runDependencyTracking[id]);
+ delete runDependencyTracking[id];
+ }
if (runDependencies == 0 && !calledRun) run();
}
Module['removeRunDependency'] = removeRunDependency;