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

Unified Diff: src/builtins.cc

Issue 1709563003: [builtins] Use JSObject::New in C++ builtins. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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));
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698