Index: test/mjsunit/field-type-tracking.js |
diff --git a/test/mjsunit/field-type-tracking.js b/test/mjsunit/field-type-tracking.js |
deleted file mode 100644 |
index 75c41da9a36709d5f67bcb8ac66fbed5696defe9..0000000000000000000000000000000000000000 |
--- a/test/mjsunit/field-type-tracking.js |
+++ /dev/null |
@@ -1,106 +0,0 @@ |
-// Copyright 2014 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 --nostress-opt --track-field-types |
- |
-(function() { |
- var o = { text: "Hello World!" }; |
- function A() { |
- this.a = o; |
- } |
- function readA(x) { |
- return x.a; |
- } |
- var a = new A(); |
- assertUnoptimized(readA); |
- readA(a); readA(a); readA(a); |
- %OptimizeFunctionOnNextCall(readA); |
- assertEquals(readA(a), o); |
- assertOptimized(readA); |
- |
- var b = new A(); |
- b.b = o; |
- assertEquals(readA(b), o); |
- assertUnoptimized(readA); |
- %OptimizeFunctionOnNextCall(readA); |
- assertEquals(readA(a), o); |
- assertOptimized(readA); |
- assertEquals(readA(a), o); |
- assertEquals(readA(b), o); |
- assertOptimized(readA); |
- |
- function readAFromB(x) { |
- return x.a; |
- } |
- assertUnoptimized(readAFromB); |
- readAFromB(b); readAFromB(b); readAFromB(b); |
- %OptimizeFunctionOnNextCall(readAFromB); |
- assertEquals(readAFromB(b), o); |
- assertOptimized(readAFromB); |
- |
- var c = new A(); |
- c.c = o; |
- assertOptimized(readA); |
- assertOptimized(readAFromB); |
- c.a = [1]; |
- assertUnoptimized(readA); |
- assertUnoptimized(readAFromB); |
- assertEquals(readA(a), o); |
- assertEquals(readA(b), o); |
- assertEquals(readA(c), [1]); |
- assertEquals(readAFromB(b), o); |
- |
- %OptimizeFunctionOnNextCall(readA); |
- assertEquals(readA(a), o); |
- %OptimizeFunctionOnNextCall(readAFromB); |
- assertEquals(readAFromB(b), o); |
- assertOptimized(readA); |
- a.a = [1]; |
- assertEquals(readA(a), [1]); |
- assertEquals(readA(b), o); |
- assertEquals(readA(c), [1]); |
- assertOptimized(readA); |
- b.a = [1]; |
- assertEquals(readA(a), [1]); |
- assertEquals(readA(b), [1]); |
- assertEquals(readA(c), [1]); |
- assertOptimized(readA); |
- assertOptimized(readAFromB); |
-})(); |
- |
-(function() { |
- function A() { this.x = 0; } |
- A.prototype = {y: 20}; |
- function B(o) { return o.a.y; } |
- function C() { this.a = new A(); } |
- |
- B(new C()); |
- B(new C()); |
- %OptimizeFunctionOnNextCall(B); |
- var c = new C(); |
- assertEquals(20, B(c)); |
- assertOptimized(B); |
- c.a.y = 10; |
- assertEquals(10, B(c)); |
- assertUnoptimized(B); |
- |
- var c = new C(); |
- %OptimizeFunctionOnNextCall(B); |
- assertEquals(20, B(c)); |
- assertOptimized(B); |
- c.a.y = 30; |
- assertEquals(30, B(c)); |
- assertOptimized(B); |
-})(); |
- |
-(function() { |
- var x = new Object(); |
- x.a = 1 + "Long string that results in a cons string"; |
- x = JSON.parse('{"a":"Short"}'); |
-})(); |
- |
-(function() { |
- var x = {y: {z: 1}}; |
- x.y.z = 1.1; |
-})(); |