aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test')
-rw-r--r--deps/v8/test/mjsunit/wasm/disallow-codegen.js39
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;
}