UNPKG

multimath

Version:

Core to create fast image math in WebAssembly and JS.

38 lines (26 loc) 1.13 kB
// Detect WebAssembly support. // - Check global WebAssembly object // - Try to load simple module (can be disabled via CSP) // 'use strict'; var wa; module.exports = function hasWebAssembly() { // use cache if called before; if (typeof wa !== 'undefined') return wa; wa = false; if (typeof WebAssembly === 'undefined') return wa; // If WebAssenbly is disabled, code can throw on compile try { // https://github.com/brion/min-wasm-fail/blob/master/min-wasm-fail.in.js // Additional check that WA internals are correct /* eslint-disable comma-spacing, max-len */ var bin = new Uint8Array([ 0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11 ]); var module = new WebAssembly.Module(bin); var instance = new WebAssembly.Instance(module, {}); // test storing to and loading from a non-zero location via a parameter. // Safari on iOS 11.2.5 returns 0 unexpectedly at non-zero locations if (instance.exports.test(4) !== 0) wa = true; return wa; } catch (__) {} return wa; };