diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-01-16 11:18:06 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-01-16 11:18:06 -0800 |
commit | 5fe3bcc54b6c7ee04d0b09cc3e44e0cd06b95405 (patch) | |
tree | 2cf6d3a26b321328941346235d0c4f7db919ab3b /src/preamble.js | |
parent | 58132ad51111bcb024f7a9f2bdce970324c05e00 (diff) |
refactor runtime init and exit code
Diffstat (limited to 'src/preamble.js')
-rw-r--r-- | src/preamble.js | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/preamble.js b/src/preamble.js index 5bb904d5..0b9288c4 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -333,13 +333,8 @@ Module['printXULProfiling'] = printXULProfiling; // Runtime essentials //======================================== -var __globalConstructor__ = function globalConstructor() { -}; - var __THREW__ = false; // Used in checking for thrown exceptions. -var __ATEXIT__ = []; - var ABORT = false; var undef = 0; @@ -648,17 +643,26 @@ STACK_MAX = STACK_ROOT + TOTAL_STACK; STATICTOP = alignMemoryPage(STACK_MAX); -function __shutdownRuntime__() { - while(__ATEXIT__.length > 0) { - var atexit = __ATEXIT__.pop(); - var func = atexit.func; +function callRuntimeCallbacks(callbacks) { + while(callbacks.length > 0) { + var callback = callbacks.pop(); + var func = callback.func; if (typeof func === 'number') { func = FUNCTION_TABLE[func]; } - func(atexit.arg === undefined ? null : atexit.arg); + func(callback.arg === undefined ? null : callback.arg); } +} + +var __ATINIT__ = []; // functions called during startup +var __ATEXIT__ = []; // functions called during shutdown + +function initRuntime() { + callRuntimeCallbacks(__ATINIT__); +} - // allow browser to GC, set heaps to null? +function exitRuntime() { + callRuntimeCallbacks(__ATEXIT__); // Print summary of correction activity CorrectionsMonitor.print(); |