[compiler] Add missing PropertyCellRef serialization
Bug: v8:7790, chromium:1225300 Change-Id: I36ae331db0abb072ebc597b4682c3983a00d8a1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2999084 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75497}
This commit is contained in:
parent
317db29cb3
commit
64d483a0ff
@ -3003,10 +3003,13 @@ void SerializerForBackgroundCompilation::ProcessMapForNamedPropertyAccess(
|
|||||||
if (lookup_start_object_map.equals(global_proxy.map())) {
|
if (lookup_start_object_map.equals(global_proxy.map())) {
|
||||||
base::Optional<PropertyCellRef> cell = global_object.GetPropertyCell(
|
base::Optional<PropertyCellRef> cell = global_object.GetPropertyCell(
|
||||||
name, SerializationPolicy::kSerializeIfNeeded);
|
name, SerializationPolicy::kSerializeIfNeeded);
|
||||||
if (access_mode == AccessMode::kLoad && cell.has_value()) {
|
if (cell.has_value()) {
|
||||||
result_hints->AddConstant(
|
CHECK(cell->Serialize());
|
||||||
handle(cell->object()->value(), broker()->isolate()), zone(),
|
if (access_mode == AccessMode::kLoad) {
|
||||||
broker());
|
result_hints->AddConstant(
|
||||||
|
handle(cell->object()->value(), broker()->isolate()), zone(),
|
||||||
|
broker());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
16
test/mjsunit/regress/regress-1225300.js
Normal file
16
test/mjsunit/regress/regress-1225300.js
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2021 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 --no-lazy-feedback-allocation
|
||||||
|
|
||||||
|
var __v_18 = this;
|
||||||
|
function __f_3() {
|
||||||
|
__v_18.outSideFunc = __f_6;
|
||||||
|
function __f_6() {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
%PrepareFunctionForOptimization(__f_3);
|
||||||
|
__f_3();
|
||||||
|
%OptimizeFunctionOnNextCall(__f_3);
|
||||||
|
__f_3();
|
Loading…
Reference in New Issue
Block a user