diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-07-18 18:14:21 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-07-18 18:14:21 -0700 |
commit | 076a9d247bde6cdba54065b8aaa9ba0400c9da71 (patch) | |
tree | 88e94d4fc107f23f88d7010626d00aea99360a00 /src/preamble.js | |
parent | 23f7aed49d983f693c26ed3dc980e4efbd7d40eb (diff) |
add runDependency tracking and fix detected bugs
Diffstat (limited to 'src/preamble.js')
-rw-r--r-- | src/preamble.js | 13 |
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; |