summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/tail-calls/bug1871605.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/wasm/tail-calls/bug1871605.js')
-rw-r--r--js/src/jit-test/tests/wasm/tail-calls/bug1871605.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/tail-calls/bug1871605.js b/js/src/jit-test/tests/wasm/tail-calls/bug1871605.js
new file mode 100644
index 0000000000..84f37a3e42
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/tail-calls/bug1871605.js
@@ -0,0 +1,30 @@
+// |jit-test| --more-compartments; skip-variant-if: --wasm-test-serialization, true; skip-variant-if: --wasm-compiler=ion, true; skip-if: !wasmGcEnabled()
+
+var dbg = newGlobal()
+dbg.parent = this
+dbg.eval(`
+ Debugger(parent).onEnterFrame = function() {}
+`)
+
+var wasm = `(module
+ (type $t1 (array (mut i32)))
+ (type $t2 (array (mut (ref null $t1))))
+ (import "" "c"
+ (func $c
+ (param i32 (ref $t2))
+ (result (ref $t2))))
+ (func $f (result (ref $t2))
+ (return_call $c
+ (i32.const 0)
+ (array.new $t2 (ref.null $t1) (i32.const 1500)))
+ )
+ (func (export "test")
+ (drop (call $f))
+ )
+)`;
+
+var ins = wasmEvalText(wasm, {"": { c() {},}});
+assertErrorMessage(
+ () => ins.exports.test(),
+ TypeError, /bad type/
+);