Package Exports
- wasm-check
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (wasm-check) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TypeScript / JavaScript library for detect WebAssembly post-MVP features in node.js & browser. Small and with zero dependencies.
About post-MVP WebAssembly features
https://github.com/WebAssembly/design/blob/master/FutureFeatures.md#tracking-issues
Tests on Canary with flags:
Enable some experimental features for Chrome Canary (Mac):
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --js-flags="--experimental-wasm-eh"Support detections
- Reference types (--experimental-wasm-anyref)
- BigInt between js and wasm (--experimental-wasm-bigint)
- Bulk memory operations (--experimental-wasm-bulk-memory)
- Exceptions (--experimental-wasm-eh)
- Multi values (--experimental-wasm-mv)
- Recursive calls (--experimental-wasm-return-call)
- Saturated conversions between float and integers (--experimental-wasm-sat-f2i-conversions)
- Sign/zero extensions (--experimental-wasm-se)
- SIMD (--experimental-wasm-simd)
- Threads (--experimental-wasm-threads)
- Type reflection (--experimental-wasm-type-reflection)
Install
yarn add wasm-checkor
npm i wasm-checkUsage
Check supported WebAssembly version
import * as check from 'wasm-check';
// or
// const check = require('wasm-check');
console.log(check.support()); // default MVP
console.log(check.support(1)); // same
console.log(check.support(2)); // version 2 (for future)Check supporting streaming compilation
import * as check from 'wasm-check';
console.log(check.supportStreaming);Get all post-MVP WebAssembly features
import * as check from 'wasm-check';
const features = { ...check.feature };
console.log(features);Output:
{ bigInt: false,
bulk: true,
exceptions: false,
mutableGlobals: true,
multiValues: false,
saturateConversions: false,
signExtensions: true,
tailCalls: false,
threads: false,
simd: false,
references: false,
typeReflection: false,
functionReferences: false }Or check concrete feature
import * as check from 'wasm-check';
console.log(check.feature.simd); // has SIMD support?
console.log(check.feature.tailCalls); // has tail call optimization support?TODO
- GC integration feature check
- Web IDL Bindings (host binding) feature check (?)