Commit ae0bc416 authored by jarin's avatar jarin Committed by Commit bot

Fix stack layout of full code arm64 for object literal.

BUG=

Review URL: https://codereview.chromium.org/1095203005

Cr-Commit-Position: refs/heads/master@{#28055}
parent e81ee900
......@@ -1740,19 +1740,17 @@ void FullCodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
}
break;
}
__ Peek(x0, 0);
__ Push(x0);
VisitForStackValue(key);
VisitForStackValue(value);
if (property->emit_store()) {
// Duplicate receiver on stack.
__ Peek(x0, 0);
__ Push(x0);
VisitForStackValue(key);
VisitForStackValue(value);
EmitSetHomeObjectIfNeeded(value, 2);
__ Mov(x0, Smi::FromInt(SLOPPY)); // Language mode
__ Push(x0);
__ CallRuntime(Runtime::kSetProperty, 4);
} else {
VisitForEffect(key);
VisitForEffect(value);
__ Drop(3);
}
break;
case ObjectLiteral::Property::PROTOTYPE:
......
// Copyright 2015 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 deopt() {
%DeoptimizeFunction(fun3);
}
function fun3() {
var r = { 113: deopt(), 113: 7 };
return r[113];
}
fun3();
fun3();
%OptimizeFunctionOnNextCall(fun3);
var y = fun3();
assertEquals(7, y);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment