| Index: src/builtins/builtins-object.cc
|
| diff --git a/src/builtins/builtins-object.cc b/src/builtins/builtins-object.cc
|
| index c9a9b7e164db121353e954b040f51172155d1551..5f90ecfb190a2eb54a5a42f75f9f99c3de775475 100644
|
| --- a/src/builtins/builtins-object.cc
|
| +++ b/src/builtins/builtins-object.cc
|
| @@ -39,21 +39,24 @@ TF_BUILTIN(ObjectHasOwnProperty, ObjectBuiltinsAssembler) {
|
| Node* map = LoadMap(object);
|
| Node* instance_type = LoadMapInstanceType(map);
|
|
|
| - Variable var_index(this, MachineType::PointerRepresentation());
|
| -
|
| - Label keyisindex(this), if_iskeyunique(this);
|
| - TryToName(key, &keyisindex, &var_index, &if_iskeyunique, &call_runtime);
|
| -
|
| - Bind(&if_iskeyunique);
|
| - TryHasOwnProperty(object, map, instance_type, key, &return_true,
|
| - &return_false, &call_runtime);
|
| -
|
| - Bind(&keyisindex);
|
| - // Handle negative keys in the runtime.
|
| - GotoIf(IntPtrLessThan(var_index.value(), IntPtrConstant(0)), &call_runtime);
|
| - TryLookupElement(object, map, instance_type, var_index.value(), &return_true,
|
| - &return_false, &call_runtime);
|
| -
|
| + {
|
| + Variable var_index(this, MachineType::PointerRepresentation());
|
| + Variable var_unique(this, MachineRepresentation::kTagged);
|
| +
|
| + Label keyisindex(this), if_iskeyunique(this);
|
| + TryToName(key, &keyisindex, &var_index, &if_iskeyunique, &var_unique,
|
| + &call_runtime);
|
| +
|
| + Bind(&if_iskeyunique);
|
| + TryHasOwnProperty(object, map, instance_type, var_unique.value(),
|
| + &return_true, &return_false, &call_runtime);
|
| +
|
| + Bind(&keyisindex);
|
| + // Handle negative keys in the runtime.
|
| + GotoIf(IntPtrLessThan(var_index.value(), IntPtrConstant(0)), &call_runtime);
|
| + TryLookupElement(object, map, instance_type, var_index.value(),
|
| + &return_true, &return_false, &call_runtime);
|
| + }
|
| Bind(&return_true);
|
| Return(BooleanConstant(true));
|
|
|
|
|