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
Library for detect WebAssembly post-MVP features in NodeJS & 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 feature detections
- Reference types (--experimental-wasm-reftypes)
- BigInt between js and wasm (--experimental-wasm-bigint)
- Bulk memory operations (--experimental-wasm-bulk-memory)
- Exceptions (--experimental-wasm-eh)
- Multi values (--experimental-wasm-mv)
- Tail recursion calls (--experimental-wasm-return-call)
- Saturated (non-trapping) conversions from float to int (--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,
mutableGlobal: true,
multiValue: false,
saturateConversions: true,
signExtensions: true,
tailCall: false,
threads: false,
simd: false,
references: false,
typeReflection: false,
funcReferences: 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
- Interface Types feature check