099f438647
In assertOptimized and assertUnoptimized, we can optionally pass in the function name. We also used to pass in an optional 'sync' parameter, to decide whether to wait for background compilations to finish before checking state. The sync parameter was removed in favour of explicit intrinsics, so fix callers of assertOptimized to no longer try to set it. Also, use function.name as the function name when no name was passed. Change-Id: I8e98d4d02e2d097d059989ad78bf46b97b57bdca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4000480 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#84080}
51 lines
1012 B
JavaScript
51 lines
1012 B
JavaScript
// Copyright 2017 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 --turbofan --no-always-turbofan --deopt-every-n-times=6
|
|
|
|
// Check that stress deopt count resets correctly
|
|
|
|
// Function with two deopt points
|
|
function f(x) {
|
|
return x + 1;
|
|
}
|
|
|
|
%PrepareFunctionForOptimization(f);
|
|
f(1);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
|
|
// stress_deopt_count == 6
|
|
|
|
f(1);
|
|
assertOptimized(f, undefined, false);
|
|
|
|
// stress_deopt_count == 4
|
|
|
|
f(1);
|
|
assertOptimized(f, undefined, false);
|
|
|
|
// stress_deopt_count == 2
|
|
|
|
f(1);
|
|
// deopt & counter reset
|
|
assertUnoptimized(f, undefined, false);
|
|
|
|
// stress_deopt_count == 6
|
|
|
|
%PrepareFunctionForOptimization(f);
|
|
%OptimizeFunctionOnNextCall(f);
|
|
f(1);
|
|
assertOptimized(f, undefined, false);
|
|
|
|
// stress_deopt_count == 4
|
|
|
|
f(1);
|
|
assertOptimized(f, undefined, false);
|
|
|
|
// stress_deopt_count == 2
|
|
|
|
f(1);
|
|
// deopt & counter reset
|
|
assertUnoptimized(f, undefined, false);
|