aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/library_browser.js11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/library_browser.js b/src/library_browser.js
index cae14559..fa3e051b 100644
--- a/src/library_browser.js
+++ b/src/library_browser.js
@@ -5,6 +5,7 @@
mergeInto(LibraryManager.library, {
$Browser: {
pointerLock: false,
+ asyncCalls: {},
createContext: function(canvas, useWebGL) {
#if !USE_TYPED_ARRAYS
@@ -147,10 +148,12 @@ mergeInto(LibraryManager.library, {
emscripten_async_call: function(func, millis) {
Module['noExitRuntime'] = true;
- // TODO: cache these to avoid generating garbage
- setTimeout(function() {
- FUNCTION_TABLE[func]();
- }, millis);
+ if (!Browser.asyncCalls[func]) {
+ Browser.asyncCalls[func] = function() {
+ FUNCTION_TABLE[func]();
+ };
+ }
+ setTimeout(Browser.asyncCalls[func], millis);
}
});