summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/wasm/tail-calls/bug1865044.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /js/src/jit-test/tests/wasm/tail-calls/bug1865044.js
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/src/jit-test/tests/wasm/tail-calls/bug1865044.js')
-rw-r--r--js/src/jit-test/tests/wasm/tail-calls/bug1865044.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/wasm/tail-calls/bug1865044.js b/js/src/jit-test/tests/wasm/tail-calls/bug1865044.js
new file mode 100644
index 0000000000..042e641f32
--- /dev/null
+++ b/js/src/jit-test/tests/wasm/tail-calls/bug1865044.js
@@ -0,0 +1,34 @@
+// |jit-test| --more-compartments; skip-variant-if: --wasm-test-serialization, true; skip-variant-if: --wasm-compiler=ion, true; skip-if: !wasmGcEnabled() || !('Function' in WebAssembly)
+
+a = newGlobal();
+a.b = this;
+a.eval("(" + function () {
+ Debugger(b).onExceptionUnwind = function () {}
+} + ")()");
+function c(d) {
+ binary = wasmTextToBinary(d)
+ e = new WebAssembly.Module(binary)
+ return new WebAssembly.Instance(e)
+}
+f = c(`
+(type $g
+ (func (param i64 i64 funcref) (result i64))
+)
+(func (export "vis") (param i64 i64 funcref) (result i64)
+ local.get 0
+ local.get 1
+ local.get 2
+ local.get 2
+ ref.cast (ref $g)
+ return_call_ref $g
+)
+`);
+h = f.exports["vis"];
+i = new WebAssembly.Function({
+ parameters: [ "i64", "i64", "funcref" ], results: ["i64"]
+}, function () {});
+
+assertErrorMessage(
+ () => h(3n, 1n, i),
+ TypeError, /can't convert undefined to BigInt/
+);