mirror of
https://github.com/denoland/deno.git
synced 2024-12-29 02:29:06 -05:00
Enable WebAssembly.instantiateStreaming (#7043)
This commit is contained in:
parent
ac56512ba4
commit
4b3a3d9d0f
4 changed files with 36 additions and 0 deletions
|
@ -2060,6 +2060,11 @@ itest!(wasm_async {
|
||||||
output: "wasm_async.out",
|
output: "wasm_async.out",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
itest!(wasm_streaming {
|
||||||
|
args: "run wasm_streaming.js",
|
||||||
|
output: "wasm_streaming.out",
|
||||||
|
});
|
||||||
|
|
||||||
itest!(wasm_unreachable {
|
itest!(wasm_unreachable {
|
||||||
args: "run wasm_unreachable.js",
|
args: "run wasm_unreachable.js",
|
||||||
output: "wasm_unreachable.out",
|
output: "wasm_unreachable.out",
|
||||||
|
|
29
cli/tests/wasm_streaming.js
Normal file
29
cli/tests/wasm_streaming.js
Normal 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();
|
1
cli/tests/wasm_streaming.out
Normal file
1
cli/tests/wasm_streaming.out
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1 + 3 = 4
|
|
@ -175,6 +175,7 @@ pub unsafe fn v8_init() {
|
||||||
// See https://github.com/denoland/deno/issues/2544
|
// See https://github.com/denoland/deno/issues/2544
|
||||||
let argv = vec![
|
let argv = vec![
|
||||||
"".to_string(),
|
"".to_string(),
|
||||||
|
"--wasm-test-streaming".to_string(),
|
||||||
"--no-wasm-async-compilation".to_string(),
|
"--no-wasm-async-compilation".to_string(),
|
||||||
"--harmony-top-level-await".to_string(),
|
"--harmony-top-level-await".to_string(),
|
||||||
"--experimental-wasm-bigint".to_string(),
|
"--experimental-wasm-bigint".to_string(),
|
||||||
|
|
Loading…
Reference in a new issue