986b04a62a
This introduces a bunch of new tests that test various aspects of accessor inlining in TurboFan (without the actual inlining), and does the appropriate fixes to the AstGraphBuilder. The actual inlining CL will land separately (so we don't need to revert the tests and fixes if the accessor CL has to be reverted). R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2197913002 Cr-Commit-Position: refs/heads/master@{#38191}
30 lines
584 B
JavaScript
30 lines
584 B
JavaScript
// Copyright 2016 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
|
|
|
|
var o = {v:1};
|
|
var deopt = false;
|
|
|
|
Object.defineProperty(o, "x", {
|
|
get: function() { return this.v; },
|
|
set: function(v) {
|
|
this.v = v;
|
|
if (deopt) {
|
|
%DeoptimizeFunction(foo);
|
|
}
|
|
}
|
|
});
|
|
|
|
function foo(o) {
|
|
var x = "x";
|
|
return o[x]++;
|
|
}
|
|
|
|
assertEquals(1, foo(o));
|
|
assertEquals(2, foo(o));
|
|
%OptimizeFunctionOnNextCall(foo);
|
|
deopt = true;
|
|
assertEquals(3, foo(o));
|