| Index: src/builtins/builtins-object.cc
|
| diff --git a/src/builtins/builtins-object.cc b/src/builtins/builtins-object.cc
|
| index 6cc2d705b4f556585f60c1793fdfb8207a6d6d13..3588304a1c34628c69245a65320b09b368630ca7 100644
|
| --- a/src/builtins/builtins-object.cc
|
| +++ b/src/builtins/builtins-object.cc
|
| @@ -488,17 +488,11 @@ void Builtins::Generate_ObjectCreate(CodeStubAssembler* a) {
|
| a->GotoUnless(a->WordEqual(a->LoadElements(properties),
|
| a->LoadRoot(Heap::kEmptyFixedArrayRootIndex)),
|
| &call_runtime);
|
| - // Jump to the runtime for slow objects.
|
| + // Handle dictionary objects or fast objects with properties in runtime.
|
| Node* bit_field3 = a->LoadMapBitField3(properties_map);
|
| - Node* is_fast_map = a->Word32Equal(
|
| - a->BitFieldDecode<Map::DictionaryMap>(bit_field3), a->Int32Constant(0));
|
| - a->GotoUnless(is_fast_map, &call_runtime);
|
| -
|
| - a->Branch(
|
| - a->WordEqual(
|
| - a->BitFieldDecodeWord<Map::NumberOfOwnDescriptorsBits>(bit_field3),
|
| - a->IntPtrConstant(0)),
|
| - &no_properties, &call_runtime);
|
| + a->GotoIf(a->IsSetWord32<Map::DictionaryMap>(bit_field3), &call_runtime);
|
| + a->Branch(a->IsSetWord32<Map::NumberOfOwnDescriptorsBits>(bit_field3),
|
| + &call_runtime, &no_properties);
|
| }
|
|
|
| // Create a new object with the given prototype.
|
|
|