diff options
-rw-r--r-- | src/library_browser.js | 4 | ||||
-rw-r--r-- | tests/emscripten_api_browser.cpp | 8 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/library_browser.js b/src/library_browser.js index 299e8a72..66aeeaf8 100644 --- a/src/library_browser.js +++ b/src/library_browser.js @@ -4,6 +4,8 @@ mergeInto(LibraryManager.library, { emscripten_set_main_loop: function(func, fps) { + Module['noExitRuntime'] = true; + fps = fps || 60; // TODO: use requestAnimationFrame _emscripten_set_main_loop.cancel = false; var jsFunc = FUNCTION_TABLE[func]; @@ -20,6 +22,8 @@ mergeInto(LibraryManager.library, { }, emscripten_async_call: function(func, millis) { + Module['noExitRuntime'] = true; + // TODO: cache these to avoid generating garbage setTimeout(function() { FUNCTION_TABLE[func](); diff --git a/tests/emscripten_api_browser.cpp b/tests/emscripten_api_browser.cpp index 37ffbdd6..4d425120 100644 --- a/tests/emscripten_api_browser.cpp +++ b/tests/emscripten_api_browser.cpp @@ -1,5 +1,6 @@ #include<stdio.h> #include<math.h> +#include<stdlib.h> #include<SDL.h> #include<emscripten.h> #include<assert.h> @@ -26,11 +27,18 @@ void second() { } +void never() { + int result = 0; + REPORT_RESULT(); +} + int main() { SDL_Init(0); last = SDL_GetTicks(); printf("frist! %d\n", last); + atexit(never); // should never be called - it is wrong to exit the runtime orderly if we have async calls! + emscripten_async_call(second, 500); return 1; |