Commit b5487307 authored by verwaest's avatar verwaest Committed by Commit bot

Revert of [crankshaft] Inline hasOwnProperty when used in fast-case for-in...

Revert of [crankshaft] Inline hasOwnProperty when used in fast-case for-in (patchset #1 id:40001 of https://codereview.chromium.org/1742253002/ )

Reason for revert:
ARM64 GCStress failure

Original issue's description:
> [crankshaft] Inline hasOwnProperty when used in fast-case for-in
>
> e.g.,
>
> for (var k in o) {
>   if (!o.hasOwnProperty(k)) continue;
>   ...
> }
>
> without enumerable properties on the prototype chain of o.
>
> BUG=
>
> Committed: https://crrev.com/dec80752eb344dfeb85588e61ac0afd22b11aadb
> Cr-Commit-Position: refs/heads/master@{#34379}

TBR=bmeurer@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#34380}
parent dec80752
......@@ -8752,22 +8752,6 @@ bool HOptimizedGraphBuilder::TryInlineBuiltinMethodCall(
}
// Try to inline calls like Math.* as operations in the calling function.
switch (id) {
case kObjectHasOwnProperty: {
if (argument_count != 2) return false;
HValue* key = Top();
if (!key->IsLoadKeyed()) return false;
HValue* elements = HLoadKeyed::cast(key)->elements();
if (!elements->IsPhi() || elements->OperandCount() != 1) return false;
if (!elements->OperandAt(0)->IsForInCacheArray()) return false;
HForInCacheArray* cache = HForInCacheArray::cast(elements->OperandAt(0));
HValue* receiver = environment()->ExpressionStackAt(1);
if (!receiver->IsPhi() || receiver->OperandCount() != 1) return false;
if (cache->enumerable() != receiver->OperandAt(0)) return false;
Drop(3); // key, receiver, function
Add<HCheckMapValue>(receiver, cache->map());
ast_context()->ReturnValue(graph()->GetConstantTrue());
return true;
}
case kStringCharCodeAt:
case kStringCharAt:
if (argument_count == 2) {
......
......@@ -6570,7 +6570,6 @@ class Script: public Struct {
V(Array.prototype, shift, ArrayShift) \
V(Function.prototype, apply, FunctionApply) \
V(Function.prototype, call, FunctionCall) \
V(Object.prototype, hasOwnProperty, ObjectHasOwnProperty) \
V(String.prototype, charCodeAt, StringCharCodeAt) \
V(String.prototype, charAt, StringCharAt) \
V(String.prototype, concat, StringConcat) \
......
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