Index: test/mjsunit/regress/regress-3643.js |
diff --git a/test/mjsunit/regress/regress-3643.js b/test/mjsunit/regress/regress-3643.js |
index cc61a1c68ec5628674b97a469162aef85d40dec4..bbc94fd73b9905445c465c43709568b6a68b8367 100644 |
--- a/test/mjsunit/regress/regress-3643.js |
+++ b/test/mjsunit/regress/regress-3643.js |
@@ -2,20 +2,29 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-var a = [1, 2, 3]; |
-Object.defineProperty(a, '1', { |
- get: function() { delete this[1]; return undefined; }, |
- configurable: true |
-}); |
+function newArrayWithGetter() { |
+ var arr = [1, 2, 3]; |
+ Object.defineProperty(arr, '1', { |
+ get: function() { delete this[1]; return undefined; }, |
+ configurable: true |
+ }); |
+ return arr; |
+} |
+ |
+var a = newArrayWithGetter(); |
var s = a.slice(1); |
assertTrue('0' in s); |
// Sparse case should hit the same code as above due to presence of the getter. |
-a = [1, 2, 3]; |
+a = newArrayWithGetter(); |
a[0xffff] = 4; |
-Object.defineProperty(a, '1', { |
- get: function() { delete this[1]; return undefined; }, |
- configurable: true |
-}); |
s = a.slice(1); |
assertTrue('0' in s); |
+ |
+a = newArrayWithGetter(); |
+a.shift(); |
+assertTrue('0' in a); |
+ |
+a = newArrayWithGetter(); |
+a.unshift(0); |
+assertTrue('2' in a); |