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

Side by Side Diff: src/messages.cc

Issue 1589323002: [runtime] Unify the ToObject handling. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/messages.h" 5 #include "src/messages.h"
6 6
7 #include "src/api.h" 7 #include "src/api.h"
8 #include "src/execution.h" 8 #include "src/execution.h"
9 #include "src/isolate-inl.h" 9 #include "src/isolate-inl.h"
10 #include "src/string-builder.h" 10 #include "src/string-builder.h"
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 if (accessors->IsAccessorPair()) { 216 if (accessors->IsAccessorPair()) {
217 Handle<AccessorPair> pair = Handle<AccessorPair>::cast(accessors); 217 Handle<AccessorPair> pair = Handle<AccessorPair>::cast(accessors);
218 return pair->getter() == *fun || pair->setter() == *fun; 218 return pair->getter() == *fun || pair->setter() == *fun;
219 } 219 }
220 } 220 }
221 return false; 221 return false;
222 } 222 }
223 223
224 224
225 Handle<Object> CallSite::GetMethodName() { 225 Handle<Object> CallSite::GetMethodName() {
226 MaybeHandle<JSReceiver> maybe = Object::ToObject(isolate_, receiver_); 226 if (receiver_->IsNull() || receiver_->IsUndefined()) {
227 Handle<JSReceiver> receiver; 227 return isolate_->factory()->null_value();
228 if (!maybe.ToHandle(&receiver) || !receiver->IsJSObject()) { 228 }
229 Handle<JSReceiver> receiver =
230 Object::ToObject(isolate_, receiver_).ToHandleChecked();
231 if (!receiver->IsJSObject()) {
229 return isolate_->factory()->null_value(); 232 return isolate_->factory()->null_value();
230 } 233 }
231 234
232 Handle<JSObject> obj = Handle<JSObject>::cast(receiver); 235 Handle<JSObject> obj = Handle<JSObject>::cast(receiver);
233 Handle<Object> function_name(fun_->shared()->name(), isolate_); 236 Handle<Object> function_name(fun_->shared()->name(), isolate_);
234 if (function_name->IsName()) { 237 if (function_name->IsName()) {
235 Handle<Name> name = Handle<Name>::cast(function_name); 238 Handle<Name> name = Handle<Name>::cast(function_name);
236 if (CheckMethodName(isolate_, obj, name, fun_, 239 if (CheckMethodName(isolate_, obj, name, fun_,
237 LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR)) 240 LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR))
238 return name; 241 return name;
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 builder.AppendCharacter(*c); 400 builder.AppendCharacter(*c);
398 } 401 }
399 } 402 }
400 403
401 return builder.Finish(); 404 return builder.Finish();
402 } 405 }
403 406
404 407
405 } // namespace internal 408 } // namespace internal
406 } // namespace v8 409 } // namespace v8
OLDNEW
« src/builtins.cc ('K') | « src/execution.cc ('k') | src/objects.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698