Index: test/mjsunit/omit-constant-mapcheck.js |
diff --git a/test/mjsunit/regress/regress-polymorphic-store.js b/test/mjsunit/omit-constant-mapcheck.js |
similarity index 72% |
copy from test/mjsunit/regress/regress-polymorphic-store.js |
copy to test/mjsunit/omit-constant-mapcheck.js |
index 4723a7f4343bb79daf5283325ee5c1082abefa79..ae6308f215e40ae22b9e9328c5f4e4ec3d0f3843 100644 |
--- a/test/mjsunit/regress/regress-polymorphic-store.js |
+++ b/test/mjsunit/omit-constant-mapcheck.js |
@@ -27,22 +27,44 @@ |
// Flags: --allow-natives-syntax |
-var o1 = {}; |
-o1.f1 = function() { return 10; }; |
-o1.x = 5; |
-o1.y = 2; |
-var o2 = {}; |
-o2.x = 5; |
-o2.y = 5; |
- |
-function store(o, v) { |
- o.y = v; |
+var g1 = { a:1 } |
+ |
+function load() { |
+ return g1.a; |
+} |
+ |
+assertEquals(1, load()); |
+assertEquals(1, load()); |
+%OptimizeFunctionOnNextCall(load); |
+assertEquals(1, load()); |
+delete g1.a; |
+assertEquals(undefined, load()); |
+ |
+var g2 = { a:2 } |
+ |
+function load2() { |
+ return g2.a; |
+} |
+ |
+assertEquals(2, load2()); |
+assertEquals(2, load2()); |
+%OptimizeFunctionOnNextCall(load2); |
+assertEquals(2, load2()); |
+g2.b = 10; |
+g2.a = 5; |
+assertEquals(5, load2()); |
+ |
+var g3 = { a:2, b:9, c:1 } |
+ |
+function store(v) { |
+ g3.a = v; |
+ return g3.a; |
} |
-store(o2, 0); |
-store(o1, 0); |
-store(o2, 0); |
+assertEquals(5, store(5)); |
+assertEquals(8, store(8)); |
%OptimizeFunctionOnNextCall(store); |
-store(o1, 10); |
-assertEquals(5, o1.x); |
-assertEquals(10, o1.y); |
+assertEquals(10, store(10)); |
+delete g3.c; |
+store(7); |
+assertEquals({a:7, b:9}, g3); |