aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-04-05 16:48:38 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-04-05 16:48:38 -0700
commitdc2a01d7f459dab9bf431fee51a10a5aa297bedc (patch)
treedbf8a184be27918eb98ab2c80204e7df1bf0aa0c
parent0c6c866d47b12a14f2dc8ffee2560cd633dce93f (diff)
refactor preRun additions
-rwxr-xr-xemcc2
-rw-r--r--src/preamble.js9
2 files changed, 8 insertions, 3 deletions
diff --git a/emcc b/emcc
index a3b78815..07aa15b3 100755
--- a/emcc
+++ b/emcc
@@ -1447,7 +1447,7 @@ try:
if DEBUG:
# Copy into temp dir as well, so can be run there too
shutil.copyfile(memfile, os.path.join(shared.EMSCRIPTEN_TEMP_DIR, os.path.basename(memfile)))
- return 'Module["preRun"].push(function() { loadMemoryInitializer("%s") })' % os.path.basename(memfile)
+ return 'addPreRun(function() { loadMemoryInitializer("%s") });' % os.path.basename(memfile)
src = re.sub('/\* memory initializer \*/ allocate\(\[([\d,]+)\], "i8", ALLOC_NONE, TOTAL_STACK\)', repl, src, count=1)
open(final + '.mem.js', 'w').write(src)
final += '.mem.js'
diff --git a/src/preamble.js b/src/preamble.js
index 392de7dc..fafc485c 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -865,6 +865,12 @@ Module['removeRunDependency'] = removeRunDependency;
Module["preloadedImages"] = {}; // maps url to image data
Module["preloadedAudios"] = {}; // maps url to audio data
+function addPreRun(func) {
+ if (!Module['preRun']) Module['preRun'] = [];
+ else if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];
+ Module['preRun'].push(func);
+}
+
#if PGO
var PGOMonitor = {
called: {},
@@ -878,8 +884,7 @@ var PGOMonitor = {
}
};
__ATEXIT__.push({ func: function() { PGOMonitor.dump() } });
-if (!Module.preRun) Module.preRun = [];
-Module.preRun.push(function() { addRunDependency('pgo') });
+addPreRun(function() { addRunDependency('pgo') });
#endif
function loadMemoryInitializer(filename) {