Index: src/builtins.cc |
diff --git a/src/builtins.cc b/src/builtins.cc |
index 8da5e92ddec8071302fa14f2ce6a490655cd031b..d28516e1413a36b920d6e44595e82f7ec4a5d6da 100644 |
--- a/src/builtins.cc |
+++ b/src/builtins.cc |
@@ -1539,8 +1539,7 @@ MaybeHandle<JSFunction> CompileString(Handle<Context> context, |
// ES6 section 18.2.1 eval (x) |
BUILTIN(GlobalEval) { |
HandleScope scope(isolate); |
- DCHECK_LE(1, args.length()); |
- Handle<Object> x = args.at<Object>(1); |
+ Handle<Object> x = args.atOrUndefined(isolate, 1); |
Handle<JSFunction> target = args.target(); |
Handle<JSObject> target_global_proxy(target->global_proxy(), isolate); |
if (!x->IsString()) return *x; |
@@ -2041,7 +2040,6 @@ BUILTIN(FunctionPrototypeBind) { |
BUILTIN(FunctionPrototypeToString) { |
HandleScope scope(isolate); |
Handle<Object> receiver = args.receiver(); |
- |
if (receiver->IsJSBoundFunction()) { |
return *JSBoundFunction::ToString(Handle<JSBoundFunction>::cast(receiver)); |
} else if (receiver->IsJSFunction()) { |
@@ -2067,9 +2065,8 @@ BUILTIN(GeneratorFunctionConstructor) { |
// ES6 section 19.4.1.1 Symbol ( [ description ] ) for the [[Call]] case. |
BUILTIN(SymbolConstructor) { |
HandleScope scope(isolate); |
- DCHECK_EQ(2, args.length()); |
Handle<Symbol> result = isolate->factory()->NewSymbol(); |
- Handle<Object> description = args.at<Object>(1); |
+ Handle<Object> description = args.atOrUndefined(isolate, 1); |
if (!description->IsUndefined()) { |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, description, |
Object::ToString(isolate, description)); |
@@ -2082,9 +2079,6 @@ BUILTIN(SymbolConstructor) { |
// ES6 section 19.4.1.1 Symbol ( [ description ] ) for the [[Construct]] case. |
BUILTIN(SymbolConstructor_ConstructStub) { |
HandleScope scope(isolate); |
- // The ConstructStub is executed in the context of the caller, so we need |
- // to enter the callee context first before raising an exception. |
- isolate->set_context(args.target()->context()); |
THROW_NEW_ERROR_RETURN_FAILURE( |
isolate, NewTypeError(MessageTemplate::kNotConstructor, |
isolate->factory()->Symbol_string())); |
@@ -2102,11 +2096,6 @@ BUILTIN(ObjectProtoToString) { |
} |
-namespace { |
- |
-} // namespace |
- |
- |
// ES6 section 26.2.1.1 Proxy ( target, handler ) for the [[Call]] case. |
BUILTIN(ProxyConstructor) { |
HandleScope scope(isolate); |
@@ -2123,9 +2112,6 @@ BUILTIN(ProxyConstructor_ConstructStub) { |
DCHECK(isolate->proxy_function()->IsConstructor()); |
Handle<Object> target = args.atOrUndefined(isolate, 1); |
Handle<Object> handler = args.atOrUndefined(isolate, 2); |
- // The ConstructStub is executed in the context of the caller, so we need |
- // to enter the callee context first before raising an exception. |
- isolate->set_context(args.target()->context()); |
Handle<JSProxy> result; |
ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, |
JSProxy::New(isolate, target, handler)); |