4a5446fb2b
The mentioned asserts did not work properly with interpreted and turbofanned functions.
To fix this issue %GetOptimizationStatus() now returns a set of flags instead of a single value.
This CL also adds more helper functions to mjsunit, like isNeverOptimize(), isAlwaysOptimize(),
isOptimized(fun), etc.
BUG=v8:5890
Review-Url: https://codereview.chromium.org/2654733004
Cr-Original-Commit-Position: refs/heads/master@{#42703}
Committed: d1ddec7857
Review-Url: https://codereview.chromium.org/2654733004
Cr-Commit-Position: refs/heads/master@{#42731}
29 lines
597 B
JavaScript
29 lines
597 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 --crankshaft
|
|
|
|
function load(o) { return o.x; }
|
|
|
|
for (var x = 0; x < 1000; ++x) {
|
|
load({x});
|
|
load({x});
|
|
%OptimizeFunctionOnNextCall(load);
|
|
try { load(); } catch (e) { }
|
|
}
|
|
|
|
assertOptimized(load);
|
|
|
|
|
|
function store(o) { o.x = -1; }
|
|
|
|
for (var x = 0; x < 1000; ++x) {
|
|
store({x});
|
|
store({x});
|
|
%OptimizeFunctionOnNextCall(store);
|
|
try { store(); } catch (e) { }
|
|
}
|
|
|
|
assertOptimized(store);
|