aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/test/mjsunit/regress/regress-crbug-906043.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-crbug-906043.js')
-rw-r--r--deps/v8/test/mjsunit/regress/regress-crbug-906043.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-crbug-906043.js b/deps/v8/test/mjsunit/regress/regress-crbug-906043.js
new file mode 100644
index 0000000000..dbc283fa9f
--- /dev/null
+++ b/deps/v8/test/mjsunit/regress/regress-crbug-906043.js
@@ -0,0 +1,33 @@
+// Copyright 2018 the V8 project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Flags: --allow-natives-syntax
+
+function fun(arg) {
+ let x = arguments.length;
+ a1 = new Array(0x10);
+ a1[0] = 1.1;
+ a2 = new Array(0x10);
+ a2[0] = 1.1;
+ a1[(x >> 16) * 21] = 1.39064994160909e-309; // 0xffff00000000
+ a1[(x >> 16) * 41] = 8.91238232205e-313; // 0x2a00000000
+}
+
+var a1, a2;
+var a3 = [1.1, 2.2];
+a3.length = 0x11000;
+a3.fill(3.3);
+
+var a4 = [1.1];
+
+for (let i = 0; i < 3; i++) fun(...a4);
+%OptimizeFunctionOnNextCall(fun);
+fun(...a4);
+
+res = fun(...a3);
+
+assertEquals(16, a2.length);
+for (let i = 8; i < 32; i++) {
+ assertEquals(undefined, a2[i]);
+}