diff options
author | Ben Smith <binji@chromium.org> | 2016-04-18 00:47:14 -0700 |
---|---|---|
committer | Ben Smith <binji@chromium.org> | 2016-04-18 00:47:14 -0700 |
commit | 36a1f6a90c854523b80fa3166facb08e65dcfdbd (patch) | |
tree | 97527f91120a95c3ec46d38c3e98d42cb91efa54 /src/wasm.js | |
parent | 187be92a30fe1e409d019de0dac7954428e64f5f (diff) | |
download | wabt-36a1f6a90c854523b80fa3166facb08e65dcfdbd.tar.gz wabt-36a1f6a90c854523b80fa3166facb08e65dcfdbd.tar.bz2 wabt-36a1f6a90c854523b80fa3166facb08e65dcfdbd.zip |
fix emscripten release build
The emscripten release build loads the module memory asynchronously,
which means you can't call any of the module functions until it has
loaded.
Diffstat (limited to 'src/wasm.js')
-rw-r--r-- | src/wasm.js | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/wasm.js b/src/wasm.js index 2dabe3ed..25175686 100644 --- a/src/wasm.js +++ b/src/wasm.js @@ -14,7 +14,15 @@ * limitations under the License. */ -var wasm = (function() { +var wasm = {}; + +wasm.ready = new Promise(function(resolve, reject) { + wasm.$resolve = resolve; + wasm.$reject = reject; +}); + +var Module = {}; +Module.onRuntimeInitialized = function() { var OK = 0; var ERROR = 1; @@ -328,6 +336,10 @@ var Script = function() { }; decorateStruct(Script, 'script', []); Script.prototype.$init = function() {}; +Script.prototype.$destroy = function() { + Module._wasm_destroy_script(this.$addr); + this.$free(); +}; // SourceErrorHandler ////////////////////////////////////////////////////////// @@ -480,7 +492,11 @@ var writeBinaryScript = function(allocator, writer, script, options) { throw "writeBinaryScript failed"; }; -return { +var resolve = wasm.$resolve; + +wasm = { + ready: wasm.ready, + OK: OK, ERROR: ERROR, @@ -505,4 +521,6 @@ return { writeBinaryScript: writeBinaryScript, }; -})(); +resolve(); + +}; |