1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-28 01:59:06 -05:00

Enable WebAssembly.instantiateStreaming (#7043)

This commit is contained in:
Casper Beyer 2020-08-15 01:48:37 +08:00 committed by GitHub
parent ac56512ba4
commit 4b3a3d9d0f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 36 additions and 0 deletions

View file

@ -2060,6 +2060,11 @@ itest!(wasm_async {
output: "wasm_async.out",
});
itest!(wasm_streaming {
args: "run wasm_streaming.js",
output: "wasm_streaming.out",
});
itest!(wasm_unreachable {
args: "run wasm_unreachable.js",
output: "wasm_unreachable.out",

View file

@ -0,0 +1,29 @@
// The following blob can be created by taking the following s-expr and pass
// it through wat2wasm.
// (module
// (func $add (param $a i32) (param $b i32) (result i32)
// local.get $a
// local.get $b
// i32.add)
// (export "add" (func $add))
// )
// deno-fmt-ignore
const bytes = new Uint8Array([
0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, 0x01, 0x07, 0x01, 0x60,
0x02, 0x7f, 0x7f, 0x01, 0x7f, 0x03, 0x02, 0x01, 0x00, 0x07, 0x07, 0x01,
0x03, 0x61, 0x64, 0x64, 0x00, 0x00, 0x0a, 0x09, 0x01, 0x07, 0x00, 0x20,
0x00, 0x20, 0x01, 0x6a, 0x0b
]);
async function main() {
const wasm = await WebAssembly.instantiateStreaming(bytes, {
});
const result = wasm.instance.exports.add(1, 3);
console.log("1 + 3 =", result);
if (result != 4) {
throw Error("bad");
}
}
main();

View file

@ -0,0 +1 @@
1 + 3 = 4

View file

@ -175,6 +175,7 @@ pub unsafe fn v8_init() {
// See https://github.com/denoland/deno/issues/2544
let argv = vec![
"".to_string(),
"--wasm-test-streaming".to_string(),
"--no-wasm-async-compilation".to_string(),
"--harmony-top-level-await".to_string(),
"--experimental-wasm-bigint".to_string(),