Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/mjsunit/field-type-tracking.js

Issue 239923004: Allow merging of monomorphic accesses to tracked fields. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: REBASE Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/hydrogen-instructions.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Flags: --allow-natives-syntax --nostress-opt --track-field-types 5 // Flags: --allow-natives-syntax --nostress-opt --track-field-types
6 6
7 (function() { 7 (function() {
8 var o = { text: "Hello World!" }; 8 var o = { text: "Hello World!" };
9 function A() { 9 function A() {
10 this.a = o; 10 this.a = o;
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 var f1 = new Narf(1); 140 var f1 = new Narf(1);
141 var f2 = new Narf(2); 141 var f2 = new Narf(2);
142 var f3 = new Narf(3); 142 var f3 = new Narf(3);
143 function baz(f, y) { f.y = y; } 143 function baz(f, y) { f.y = y; }
144 baz(f1, {y: 9}); 144 baz(f1, {y: 9});
145 baz(f2, {y: 9}); 145 baz(f2, {y: 9});
146 %OptimizeFunctionOnNextCall(baz); 146 %OptimizeFunctionOnNextCall(baz);
147 baz(f3, {a: -1}); 147 baz(f3, {a: -1});
148 assertUnoptimized(baz); 148 assertUnoptimized(baz);
149 })(); 149 })();
150
151 (function() {
152 function Foo(x) { this.x = x; this.a = x; }
153 function Bar(x) { this.x = x; this.b = x; }
154 function readA(o) { return o.x.a; }
155 var f = new Foo({a:1});
156 var b = new Bar({a:2});
157 assertEquals(readA(f), 1);
158 assertEquals(readA(b), 2);
159 assertEquals(readA(f), 1);
160 assertEquals(readA(b), 2);
161 %OptimizeFunctionOnNextCall(readA);
162 assertEquals(readA(f), 1);
163 assertEquals(readA(b), 2);
164 assertOptimized(readA);
165 f.a.y = 0;
166 assertUnoptimized(readA);
167 })();
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698