summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/wasm/jsapi/prototypes.any.js
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/wasm/jsapi/prototypes.any.js')
-rw-r--r--testing/web-platform/tests/wasm/jsapi/prototypes.any.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/testing/web-platform/tests/wasm/jsapi/prototypes.any.js b/testing/web-platform/tests/wasm/jsapi/prototypes.any.js
new file mode 100644
index 0000000000..2316f7d9b4
--- /dev/null
+++ b/testing/web-platform/tests/wasm/jsapi/prototypes.any.js
@@ -0,0 +1,43 @@
+// META: global=window,dedicatedworker,jsshell,shadowrealm
+// META: script=/wasm/jsapi/assertions.js
+// META: script=/wasm/jsapi/wasm-module-builder.js
+
+let emptyModuleBinary;
+setup(() => {
+ emptyModuleBinary = new WasmModuleBuilder().toBuffer();
+});
+
+test(() => {
+ class _Module extends WebAssembly.Module {}
+ let module = new _Module(emptyModuleBinary);
+ assert_true(module instanceof _Module, "_Module instanceof _Module");
+ assert_true(module instanceof WebAssembly.Module, "_Module instanceof WebAssembly.Module");
+}, "_Module");
+
+test(() => {
+ class _Instance extends WebAssembly.Instance {}
+ let instance = new _Instance(new WebAssembly.Module(emptyModuleBinary));
+ assert_true(instance instanceof _Instance, "_Instance instanceof _Instance");
+ assert_true(instance instanceof WebAssembly.Instance, "_Instance instanceof WebAssembly.Instance");
+}, "_Instance");
+
+test(() => {
+ class _Memory extends WebAssembly.Memory {}
+ let memory = new _Memory({initial: 0, maximum: 1});
+ assert_true(memory instanceof _Memory, "_Memory instanceof _Memory");
+ assert_true(memory instanceof WebAssembly.Memory, "_Memory instanceof WebAssembly.Memory");
+}, "_Memory");
+
+test(() => {
+ class _Table extends WebAssembly.Table {}
+ let table = new _Table({initial: 0, element: "anyfunc"});
+ assert_true(table instanceof _Table, "_Table instanceof _Table");
+ assert_true(table instanceof WebAssembly.Table, "_Table instanceof WebAssembly.Table");
+}, "_Table");
+
+test(() => {
+ class _Global extends WebAssembly.Global {}
+ let global = new _Global({value: "i32", mutable: false}, 0);
+ assert_true(global instanceof _Global, "_Global instanceof _Global");
+ assert_true(global instanceof WebAssembly.Global, "_Global instanceof WebAssembly.Global");
+}, "_Global");