From 74cf8f1f840d023197787e209552d0d41cc1e6ce Mon Sep 17 00:00:00 2001 From: "Joseph D. Long" Date: Fri, 3 May 2019 10:40:57 -0700 Subject: [PATCH] Fixes #402 for Safari support (#409) * Fixes #402 for Safari support Falls back to WebAssembly.compile when compileStreaming is undefined * Formatting tweaks for pyodide.js * Style edit per @mdboom to pyodide.js --- src/pyodide.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pyodide.js b/src/pyodide.js index c6e03f6cd..3b88a5945 100644 --- a/src/pyodide.js +++ b/src/pyodide.js @@ -299,7 +299,15 @@ var languagePluginLoader = new Promise((resolve, reject) => { Module.preloadedWasm = {}; let isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1; - let wasm_promise = WebAssembly.compileStreaming(fetch(wasmURL)); + let wasm_promise; + if (WebAssembly.compileStreaming === undefined) { + wasm_promise = fetch(wasmURL) + .then(response => response.arrayBuffer()) + .then(bytes => WebAssembly.compile(bytes)); + } else { + wasm_promise = WebAssembly.compileStreaming(fetch(wasmURL)); + } + Module.instantiateWasm = (info, receiveInstance) => { wasm_promise.then(module => WebAssembly.instantiate(module, info)) .then(instance => receiveInstance(instance));