Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(44)

Unified Diff: src/builtins/builtins-object.cc

Issue 2549773002: Internalize strings in-place (Closed)
Patch Set: forgot one Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/builtins/builtins-object.cc
diff --git a/src/builtins/builtins-object.cc b/src/builtins/builtins-object.cc
index 3c5e6aa2a114826a895104b064df56d3392062cc..ed21528fe8f7631c932056c6a84d426e89a12264 100644
--- a/src/builtins/builtins-object.cc
+++ b/src/builtins/builtins-object.cc
@@ -37,24 +37,26 @@ void Builtins::Generate_ObjectHasOwnProperty(
Node* map = assembler.LoadMap(object);
Node* instance_type = assembler.LoadMapInstanceType(map);
- Variable var_index(&assembler, MachineType::PointerRepresentation());
-
- Label keyisindex(&assembler), if_iskeyunique(&assembler);
- assembler.TryToName(key, &keyisindex, &var_index, &if_iskeyunique,
- &call_runtime);
-
- assembler.Bind(&if_iskeyunique);
- assembler.TryHasOwnProperty(object, map, instance_type, key, &return_true,
- &return_false, &call_runtime);
-
- assembler.Bind(&keyisindex);
- // Handle negative keys in the runtime.
- assembler.GotoIf(
- assembler.IntPtrLessThan(var_index.value(), assembler.IntPtrConstant(0)),
- &call_runtime);
- assembler.TryLookupElement(object, map, instance_type, var_index.value(),
- &return_true, &return_false, &call_runtime);
-
+ {
+ Variable var_index(&assembler, MachineType::PointerRepresentation());
+ Variable var_unique(&assembler, MachineRepresentation::kTagged);
+
+ Label keyisindex(&assembler), if_iskeyunique(&assembler);
+ assembler.TryToName(key, &keyisindex, &var_index, &if_iskeyunique,
+ &var_unique, &call_runtime);
+
+ assembler.Bind(&if_iskeyunique);
+ assembler.TryHasOwnProperty(object, map, instance_type, var_unique.value(),
+ &return_true, &return_false, &call_runtime);
+
+ assembler.Bind(&keyisindex);
+ // Handle negative keys in the runtime.
+ assembler.GotoIf(assembler.IntPtrLessThan(var_index.value(),
+ assembler.IntPtrConstant(0)),
+ &call_runtime);
+ assembler.TryLookupElement(object, map, instance_type, var_index.value(),
+ &return_true, &return_false, &call_runtime);
+ }
assembler.Bind(&return_true);
assembler.Return(assembler.BooleanConstant(true));
« no previous file with comments | « src/ast/ast-types.cc ('k') | src/code-stub-assembler.h » ('j') | src/code-stub-assembler.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698