a784ec8ae7
This is a reland of commit 532ca59910
Fix interger overflow when result_location is invalid in
MaglevCompiler::InReturnValues.
Original change's description:
> [maglev] Support LdaModuleVariable and StaModuleVariable
>
> Bug: v8:7700
> Change-Id: I036ac71324e0c1c96a4da4aacdb5a6718726db31
> Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3821203
> Reviewed-by: Victor Gomes <victorgomes@chromium.org>
> Commit-Queue: 王澳 <wangao.james@bytedance.com>
> Cr-Commit-Position: refs/heads/main@{#82347}
Bug: v8:7700
Change-Id: I24f56691eefd1c6cb695fedd3b5c14264bb17943
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3824942
Reviewed-by: Victor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82379}
21 lines
518 B
JavaScript
21 lines
518 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 --maglev --no-stress-opt --no-always-turbofan
|
|
|
|
export let x = 1;
|
|
function foo(y) {
|
|
x = x + 1;
|
|
return x + y;
|
|
};
|
|
|
|
%PrepareFunctionForOptimization(foo);
|
|
assertEquals(3, foo(1));
|
|
assertEquals(4, foo(1));
|
|
%OptimizeMaglevOnNextCall(foo);
|
|
assertEquals(5, foo(1));
|
|
assertEquals(6, foo(1));
|
|
assertTrue(isMaglevved(foo));
|
|
|