Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 9be16fb47bc869d54341ee49c2e2d71e573d1e67..37a23fe321104943163276ab56d17a2fadf9e144 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -11896,75 +11896,6 @@ |
} |
-namespace { |
- |
-bool CanSubclassHaveInobjectProperties(InstanceType instance_type) { |
- switch (instance_type) { |
- case JS_OBJECT_TYPE: |
- case JS_CONTEXT_EXTENSION_OBJECT_TYPE: |
- case JS_GENERATOR_OBJECT_TYPE: |
- case JS_MODULE_TYPE: |
- case JS_VALUE_TYPE: |
- case JS_DATE_TYPE: |
- case JS_ARRAY_TYPE: |
- case JS_MESSAGE_OBJECT_TYPE: |
- case JS_SET_ITERATOR_TYPE: |
- case JS_MAP_ITERATOR_TYPE: |
- case JS_ITERATOR_RESULT_TYPE: |
- return true; |
- |
- case JS_TYPED_ARRAY_TYPE: |
- case JS_DATA_VIEW_TYPE: |
- case JS_REGEXP_TYPE: |
- case JS_SET_TYPE: |
- case JS_MAP_TYPE: |
- case JS_PROXY_TYPE: |
- case JS_FUNCTION_PROXY_TYPE: |
- case JS_WEAK_MAP_TYPE: |
- case JS_WEAK_SET_TYPE: |
- case JS_ARRAY_BUFFER_TYPE: |
- case JS_FUNCTION_TYPE: |
- return false; |
- |
- case JS_GLOBAL_PROXY_TYPE: |
- case JS_GLOBAL_OBJECT_TYPE: |
- case FIXED_ARRAY_TYPE: |
- case FIXED_DOUBLE_ARRAY_TYPE: |
- case ODDBALL_TYPE: |
- case FOREIGN_TYPE: |
- case MAP_TYPE: |
- case CODE_TYPE: |
- case CELL_TYPE: |
- case PROPERTY_CELL_TYPE: |
- case WEAK_CELL_TYPE: |
- case SYMBOL_TYPE: |
- case BYTECODE_ARRAY_TYPE: |
- case HEAP_NUMBER_TYPE: |
- case MUTABLE_HEAP_NUMBER_TYPE: |
- case SIMD128_VALUE_TYPE: |
- case FILLER_TYPE: |
- case BYTE_ARRAY_TYPE: |
- case FREE_SPACE_TYPE: |
- case SHARED_FUNCTION_INFO_TYPE: |
- |
-#define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ |
- case FIXED_##TYPE##_ARRAY_TYPE: |
-#undef TYPED_ARRAY_CASE |
- |
-#define MAKE_STRUCT_CASE(NAME, Name, name) case NAME##_TYPE: |
- STRUCT_LIST(MAKE_STRUCT_CASE) |
-#undef MAKE_STRUCT_CASE |
- // We must not end up here for these instance types at all. |
- UNREACHABLE(); |
- // Fall through. |
- default: |
- return false; |
- } |
-} |
- |
-} // namespace |
- |
- |
void JSFunction::EnsureHasInitialMap(Handle<JSFunction> function) { |
if (function->has_initial_map()) return; |
Isolate* isolate = function->GetIsolate(); |
@@ -12039,27 +11970,25 @@ |
// Finally link initial map and constructor function if the original |
// constructor is actually a subclass constructor. |
if (IsSubclassConstructor(new_target->shared()->kind())) { |
- // TODO(ishell): v8:4531, allow ES6 built-ins subclasses to have |
- // in-object properties. |
+// TODO(ishell): v8:4531, allow ES6 built-ins subclasses to have |
+// in-object properties. |
+#if 0 |
InstanceType instance_type = constructor_initial_map->instance_type(); |
- Handle<Map> map; |
- if (CanSubclassHaveInobjectProperties(instance_type)) { |
- int internal_fields = |
- JSObject::GetInternalFieldCount(*constructor_initial_map); |
- int pre_allocated = constructor_initial_map->GetInObjectProperties() - |
- constructor_initial_map->unused_property_fields(); |
- int instance_size; |
- int in_object_properties; |
- new_target->CalculateInstanceSizeForDerivedClass( |
- instance_type, internal_fields, &instance_size, |
- &in_object_properties); |
- |
- int unused_property_fields = in_object_properties - pre_allocated; |
- map = Map::CopyInitialMap(constructor_initial_map, instance_size, |
- in_object_properties, unused_property_fields); |
- } else { |
- map = Map::CopyInitialMap(constructor_initial_map); |
- } |
+ int internal_fields = |
+ JSObject::GetInternalFieldCount(*constructor_initial_map); |
+ int pre_allocated = constructor_initial_map->GetInObjectProperties() - |
+ constructor_initial_map->unused_property_fields(); |
+ int instance_size; |
+ int in_object_properties; |
+ new_target->CalculateInstanceSizeForDerivedClass( |
+ instance_type, internal_fields, &instance_size, &in_object_properties); |
+ |
+ int unused_property_fields = in_object_properties - pre_allocated; |
+ Handle<Map> map = |
+ Map::CopyInitialMap(constructor_initial_map, instance_size, |
+ in_object_properties, unused_property_fields); |
+#endif |
+ Handle<Map> map = Map::CopyInitialMap(constructor_initial_map); |
JSFunction::SetInitialMap(new_target, map, prototype); |
map->SetConstructor(*constructor); |