summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/oom/jsapi-prototype.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/oom/jsapi-prototype.js')
-rw-r--r--js/src/jit-test/tests/wasm/oom/jsapi-prototype.js29
1 files changed, 29 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/oom/jsapi-prototype.js b/js/src/jit-test/tests/wasm/oom/jsapi-prototype.js
new file mode 100644
index 0000000000..4888a70db0
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/oom/jsapi-prototype.js
@@ -0,0 +1,29 @@
+// |jit-test| skip-if: !('oomTest' in this)
+
+oomTest(() => {
+ let memory = new WebAssembly.Memory({initial: 0});
+ assertEq(Object.getPrototypeOf(memory), WebAssembly.Memory.prototype, "prototype");
+});
+
+oomTest(() => {
+ let global = new WebAssembly.Global({value: 'i32'});
+ assertEq(Object.getPrototypeOf(global), WebAssembly.Global.prototype, "prototype");
+});
+
+oomTest(() => {
+ let table = new WebAssembly.Table({element: 'anyfunc', initial: 0});
+ assertEq(Object.getPrototypeOf(table), WebAssembly.Table.prototype, "prototype");
+});
+
+oomTest(() => {
+ let bytecode = wasmTextToBinary('(module)');
+ let module = new WebAssembly.Module(bytecode);
+ assertEq(Object.getPrototypeOf(module), WebAssembly.Module.prototype, "prototype");
+});
+
+oomTest(() => {
+ let bytecode = wasmTextToBinary('(module)');
+ let module = new WebAssembly.Module(bytecode);
+ let instance = new WebAssembly.Instance(module, {});
+ assertEq(Object.getPrototypeOf(instance), WebAssembly.Instance.prototype, "prototype");
+});