summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/ion/bug1073861.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/ion/bug1073861.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/ion/bug1073861.js')
-rw-r--r--js/src/jit-test/tests/ion/bug1073861.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/ion/bug1073861.js b/js/src/jit-test/tests/ion/bug1073861.js
new file mode 100644
index 0000000000..fe837c45c7
--- /dev/null
+++ b/js/src/jit-test/tests/ion/bug1073861.js
@@ -0,0 +1,69 @@
+function a(a, b, c, g) {
+ for (;;) {
+ if (0 > c) return a;
+ a: {
+ for (;;) {
+ var k = a.forward[c];
+ if (t(k))
+ if (k.key < b) a = k;
+ else break a;
+ else break a
+ }
+ a = void 0
+ }
+ null !=
+ g && (g[c] = a);
+ c -= 1
+ }
+}
+
+function t(a) {
+ return null != a && !1 !== a
+}
+
+
+var d = {forward: [{},null,{}]}
+for (var i=0; i < 1000; i++) {
+ a(d, 0, 1, null);
+ a(d, 0, 0, null);
+}
+
+
+
+
+function test(a) {
+ var t = a[0]
+ if (t) {
+ return t.test;
+ }
+}
+
+function test2(a) {
+ var t = a[0]
+ if (t) {
+ if (t) {
+ return t.test;
+ }
+ }
+}
+
+function test3(a) {
+ var t = a[0]
+ if (t !== null) {
+ if (t !== undefined) {
+ return t.test;
+ }
+ }
+}
+
+var a = [{test:1}]
+var b = [undefined]
+assertEq(test(b), undefined)
+assertEq(test(a), 1)
+assertEq(test(a), 1)
+assertEq(test2(b), undefined)
+assertEq(test2(a), 1)
+assertEq(test2(a), 1)
+assertEq(test3(b), undefined)
+assertEq(test3(a), 1)
+assertEq(test3(a), 1)