summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/warp/scalar-replace-array-iterator-next.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/warp/scalar-replace-array-iterator-next.js')
-rw-r--r--js/src/jit-test/tests/warp/scalar-replace-array-iterator-next.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/warp/scalar-replace-array-iterator-next.js b/js/src/jit-test/tests/warp/scalar-replace-array-iterator-next.js
new file mode 100644
index 0000000000..d523bdb896
--- /dev/null
+++ b/js/src/jit-test/tests/warp/scalar-replace-array-iterator-next.js
@@ -0,0 +1,24 @@
+//|jit-test| --ion-pruning=on
+
+// Verify that we can inline ArrayIteratorNext,
+// and scalar-replace the result object.
+
+if (getJitCompilerOptions()["ion.warmup.trigger"] <= 150)
+ setJitCompilerOption("ion.warmup.trigger", 150);
+
+gczeal(0);
+
+function foo(arr) {
+ var iterator = arr[Symbol.iterator]();
+ while (true) {
+ var result = iterator.next();
+ trialInline();
+ assertRecoveredOnBailout(result, true);
+ if (result.done) {
+ break;
+ }
+ }
+}
+
+with ({}) {}
+foo(Array(1000));