Index: test/mjsunit/regress/regress-copy-hole-to-field.js |
diff --git a/test/mjsunit/elide-double-hole-check-4.js b/test/mjsunit/regress/regress-copy-hole-to-field.js |
similarity index 79% |
copy from test/mjsunit/elide-double-hole-check-4.js |
copy to test/mjsunit/regress/regress-copy-hole-to-field.js |
index e2a55055710d6aa222ca4c4aecfbe3926d9c5cca..fa3db92928a6ca2683aa8c8a02f972e1ee4df962 100644 |
--- a/test/mjsunit/elide-double-hole-check-4.js |
+++ b/test/mjsunit/regress/regress-copy-hole-to-field.js |
@@ -27,13 +27,31 @@ |
// Flags: --allow-natives-syntax |
-function f1(a, i) { |
- return a[i] + 0.5; |
+// Copy a hole from HOLEY_DOUBLE to double field. |
+var a = [1.5,,1.7]; |
+var o = {a:1.8}; |
+ |
+function f1(o,a,i) { |
+ o.a = a[i]; |
} |
-var arr = [0.0,,2.5]; |
-assertEquals(0.5, f1(arr, 0)); |
-assertEquals(0.5, f1(arr, 0)); |
+ |
+f1(o,a,0); |
+f1(o,a,0); |
+assertEquals(1.5, o.a); |
%OptimizeFunctionOnNextCall(f1); |
-assertEquals(0.5, f1(arr, 0)); |
-Array.prototype[1] = 1.5; |
-assertEquals(2, f1(arr, 1)); |
+f1(o,a,1); |
+assertEquals(undefined, o.a); |
+ |
+// Copy a hole from HOLEY_SMI to smi field. |
+var a = [1,,3]; |
+var o = {ab:5}; |
+ |
+function f2(o,a,i) { |
+ o.ab = a[i]; |
+} |
+ |
+f2(o,a,0); |
+f2(o,a,0); |
+%OptimizeFunctionOnNextCall(f2); |
+f2(o,a,1); |
+assertEquals(undefined, o.ab); |