647fea9c1b
Temporaries and the allocated result register may alias, thus order is important when setting the result value. Fixed: TestUndetectable, LogicalNot, SetPendingMessage. Drive-by: Pass Label::kNear in a few spots I passed by. Bug: v8:7700 Change-Id: Ice3de1d1014ad05d8fa9fb18d967887386bfed0d Fixed: chromium:1359723 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3898530 Auto-Submit: Jakob Linke <jgruber@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#83207}
22 lines
512 B
JavaScript
22 lines
512 B
JavaScript
// Copyright 2022 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
|
|
|
|
function f(__v_51, __v_52, __v_53) {
|
|
var a = false;
|
|
var b = a;
|
|
try {
|
|
var c = false + false;
|
|
} catch {}
|
|
try {
|
|
var d = false - (null == true);
|
|
} catch {}
|
|
return a + b - c + d;
|
|
}
|
|
%PrepareFunctionForOptimization(f);
|
|
assertEquals(0, f());
|
|
%OptimizeMaglevOnNextCall(f);
|
|
assertEquals(0, f());
|