diff options
Diffstat (limited to 'deps/v8/test')
-rw-r--r-- | deps/v8/test/mjsunit/wasm/disallow-codegen.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/wasm/disallow-codegen.js b/deps/v8/test/mjsunit/wasm/disallow-codegen.js index 9ac2bcd103..f1303e845f 100644 --- a/deps/v8/test/mjsunit/wasm/disallow-codegen.js +++ b/deps/v8/test/mjsunit/wasm/disallow-codegen.js @@ -65,6 +65,16 @@ async function AsyncTestOk() { promise, module => assertInstanceof(module, WebAssembly.Module)); } +async function AsyncTestWithInstantiateOk() { + print('async module instantiate (ok)...'); + %DisallowCodegenFromStrings(false); + %DisallowWasmCodegen(false); + let promise = WebAssembly.instantiate(buffer); + assertPromiseResult( + promise, + module => assertInstanceof(module.instance, WebAssembly.Instance)); +} + async function AsyncTestFail() { print('async module compile (fail)...'); %DisallowCodegenFromStrings(true); @@ -78,6 +88,19 @@ async function AsyncTestFail() { } } +async function AsyncTestWithInstantiateFail() { + print('async module instantiate (fail)...'); + %DisallowCodegenFromStrings(true); + %DisallowWasmCodegen(false); + try { + let m = await WebAssembly.instantiate(buffer); + assertUnreachable(); + } catch (e) { + print(" " + e); + assertInstanceof(e, WebAssembly.CompileError); + } +} + async function AsyncTestWasmFail(disallow_codegen) { print('async wasm module compile (fail)...'); %DisallowCodegenFromStrings(disallow_codegen); @@ -91,6 +114,19 @@ async function AsyncTestWasmFail(disallow_codegen) { } } +async function AsyncTestWasmWithInstantiateFail(disallow_codegen) { + print('async wasm module instantiate (fail)...'); + %DisallowCodegenFromStrings(disallow_codegen); + %DisallowWasmCodegen(true); + try { + let m = await WebAssembly.instantiate(buffer); + assertUnreachable(); + } catch (e) { + print(" " + e); + assertInstanceof(e, WebAssembly.CompileError); + } +} + async function StreamingTestOk() { print('streaming module compile (ok)...'); // TODO(titzer): compileStreaming must be supplied by embedder. @@ -149,7 +185,9 @@ async function RunAll() { await SyncTestOk(); await SyncTestFail(); await AsyncTestOk(); + await AsyncTestWithInstantiateOk(); await AsyncTestFail(); + await AsyncTestWithInstantiateFail(); await StreamingTestOk(); await StreamingTestFail(); @@ -157,6 +195,7 @@ async function RunAll() { for (count = 0; count < 2; ++count) { SyncTestWasmFail(disallow_codegen); AsyncTestWasmFail(disallow_codegen); + AsyncTestWasmWithInstantiateFail(disallow_codegen); StreamingTestWasmFail(disallow_codegen) disallow_codegen = true; } |