Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index a4f8e1c6d11240383334ee14e397c2c553dde4e4..474b76fc15567de1f04c4dfe65a5aa8edcb4143f 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -2344,13 +2344,11 @@ BUILTIN(BooleanConstructor_ConstructStub) { |
Handle<JSFunction> target = args.target<JSFunction>(); |
Handle<JSReceiver> new_target = Handle<JSReceiver>::cast(args.new_target()); |
DCHECK(*target == target->native_context()->boolean_function()); |
- Handle<Map> initial_map; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, initial_map, |
- JSFunction::GetDerivedMap(isolate, target, new_target)); |
- Handle<JSValue> result = Handle<JSValue>::cast( |
- isolate->factory()->NewJSObjectFromMap(initial_map)); |
- result->set_value(isolate->heap()->ToBoolean(value->BooleanValue())); |
+ Handle<JSObject> result; |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ JSObject::New(target, new_target)); |
+ Handle<JSValue>::cast(result)->set_value( |
+ isolate->heap()->ToBoolean(value->BooleanValue())); |
return *result; |
} |
@@ -3730,22 +3728,20 @@ BUILTIN(ArrayBufferConstructor_ConstructStub) { |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewRangeError(MessageTemplate::kInvalidArrayBufferLength)); |
} |
- Handle<Map> initial_map; |
- ASSIGN_RETURN_FAILURE_ON_EXCEPTION( |
- isolate, initial_map, |
- JSFunction::GetDerivedMap(isolate, target, new_target)); |
+ Handle<JSObject> result; |
+ ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
+ JSObject::New(target, new_target)); |
size_t byte_length; |
if (!TryNumberToSize(isolate, *number_length, &byte_length)) { |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewRangeError(MessageTemplate::kInvalidArrayBufferLength)); |
} |
- Handle<JSArrayBuffer> result = Handle<JSArrayBuffer>::cast( |
- isolate->factory()->NewJSObjectFromMap(initial_map)); |
SharedFlag shared_flag = |
(*target == target->native_context()->array_buffer_fun()) |
? SharedFlag::kNotShared |
: SharedFlag::kShared; |
- if (!JSArrayBuffer::SetupAllocatingData(result, isolate, byte_length, true, |
+ if (!JSArrayBuffer::SetupAllocatingData(Handle<JSArrayBuffer>::cast(result), |
+ isolate, byte_length, true, |
shared_flag)) { |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewRangeError(MessageTemplate::kArrayBufferAllocationFailed)); |