Index: src/runtime/runtime-literals.cc |
diff --git a/src/runtime/runtime-literals.cc b/src/runtime/runtime-literals.cc |
index 3e1c710e3b8e72ac48f195275712498989991343..836273c1c9658f5bdc49914ab1c69fdee7c26a1b 100644 |
--- a/src/runtime/runtime-literals.cc |
+++ b/src/runtime/runtime-literals.cc |
@@ -39,8 +39,7 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateLiteralBoilerplate( |
MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
Isolate* isolate, Handle<LiteralsArray> literals, |
- Handle<FixedArray> constant_properties, bool should_have_fast_elements, |
- bool has_function_literal) { |
+ Handle<FixedArray> constant_properties, bool should_have_fast_elements) { |
Handle<Context> context = isolate->native_context(); |
// In case we have function literals, we want the object to be in |
@@ -48,10 +47,8 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
// maps with constant functions can't be shared if the functions are |
// not the same (which is the common case). |
bool is_result_from_cache = false; |
- Handle<Map> map = has_function_literal |
- ? Handle<Map>(context->object_function()->initial_map()) |
- : ComputeObjectLiteralMap(context, constant_properties, |
- &is_result_from_cache); |
+ Handle<Map> map = ComputeObjectLiteralMap(context, constant_properties, |
+ &is_result_from_cache); |
PretenureFlag pretenure_flag = |
isolate->heap()->InNewSpace(*literals) ? NOT_TENURED : TENURED; |
@@ -66,7 +63,7 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
int length = constant_properties->length(); |
bool should_transform = |
!is_result_from_cache && boilerplate->HasFastProperties(); |
- bool should_normalize = should_transform || has_function_literal; |
+ bool should_normalize = should_transform; |
if (should_normalize) { |
// TODO(verwaest): We might not want to ever normalize here. |
JSObject::NormalizeProperties(boilerplate, KEEP_INOBJECT_PROPERTIES, |
@@ -104,7 +101,7 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateObjectLiteralBoilerplate( |
// containing function literals we defer this operation until after all |
// computed properties have been assigned so that we can generate |
// constant function properties. |
- if (should_transform && !has_function_literal) { |
+ if (should_transform) { |
JSObject::MigrateSlowToFast(boilerplate, |
boilerplate->map()->unused_property_fields(), |
"FastLiteral"); |
@@ -187,14 +184,11 @@ MUST_USE_RESULT static MaybeHandle<Object> CreateLiteralBoilerplate( |
Isolate* isolate, Handle<LiteralsArray> literals, |
Handle<FixedArray> array) { |
Handle<FixedArray> elements = CompileTimeValue::GetElements(array); |
- const bool kHasNoFunctionLiteral = false; |
switch (CompileTimeValue::GetLiteralType(array)) { |
case CompileTimeValue::OBJECT_LITERAL_FAST_ELEMENTS: |
- return CreateObjectLiteralBoilerplate(isolate, literals, elements, true, |
- kHasNoFunctionLiteral); |
+ return CreateObjectLiteralBoilerplate(isolate, literals, elements, true); |
case CompileTimeValue::OBJECT_LITERAL_SLOW_ELEMENTS: |
- return CreateObjectLiteralBoilerplate(isolate, literals, elements, false, |
- kHasNoFunctionLiteral); |
+ return CreateObjectLiteralBoilerplate(isolate, literals, elements, false); |
case CompileTimeValue::ARRAY_LITERAL: |
return Runtime::CreateArrayLiteralBoilerplate(isolate, literals, |
elements); |
@@ -233,7 +227,6 @@ RUNTIME_FUNCTION(Runtime_CreateObjectLiteral) { |
CONVERT_SMI_ARG_CHECKED(flags, 3); |
Handle<LiteralsArray> literals(closure->literals(), isolate); |
bool should_have_fast_elements = (flags & ObjectLiteral::kFastElements) != 0; |
- bool has_function_literal = (flags & ObjectLiteral::kHasFunction) != 0; |
bool enable_mementos = (flags & ObjectLiteral::kDisableMementos) == 0; |
RUNTIME_ASSERT(literals_index >= 0 && |
@@ -248,8 +241,7 @@ RUNTIME_FUNCTION(Runtime_CreateObjectLiteral) { |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
isolate, raw_boilerplate, |
CreateObjectLiteralBoilerplate(isolate, literals, constant_properties, |
- should_have_fast_elements, |
- has_function_literal)); |
+ should_have_fast_elements)); |
boilerplate = Handle<JSObject>::cast(raw_boilerplate); |
AllocationSiteCreationContext creation_context(isolate); |