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

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

Issue 2445333002: Ensure slow properties for simple {__proto__:null} literals. (Closed)
Patch Set: fixing compilation issue Created 3 years, 8 months 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
« no previous file with comments | « src/runtime/runtime-literals.cc ('k') | test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/runtime/runtime-object.cc
diff --git a/src/runtime/runtime-object.cc b/src/runtime/runtime-object.cc
index 05c6585917c01a41040437b1632530639b123859..55154fa504b1c13b5e3c89fad52f140644e89837 100644
--- a/src/runtime/runtime-object.cc
+++ b/src/runtime/runtime-object.cc
@@ -251,18 +251,12 @@ RUNTIME_FUNCTION(Runtime_ObjectCreate) {
Handle<Map> map =
Map::GetObjectCreateMap(Handle<HeapObject>::cast(prototype));
- bool is_dictionary_map = map->is_dictionary_map();
- Handle<FixedArray> object_properties;
- if (is_dictionary_map) {
- // Allocate the actual properties dictionay up front to avoid invalid object
- // state.
- object_properties =
- NameDictionary::New(isolate, NameDictionary::kInitialCapacity);
- }
// Actually allocate the object.
- Handle<JSObject> object = isolate->factory()->NewJSObjectFromMap(map);
- if (is_dictionary_map) {
- object->set_properties(*object_properties);
+ Handle<JSObject> object;
+ if (map->is_dictionary_map()) {
+ object = isolate->factory()->NewSlowJSObjectFromMap(map);
+ } else {
+ object = isolate->factory()->NewJSObjectFromMap(map);
}
// Define the properties if properties was specified and is not undefined.
« no previous file with comments | « src/runtime/runtime-literals.cc ('k') | test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698