OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/string-stream.h" | 5 #include "src/string-stream.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 | 8 |
9 #include "src/handles-inl.h" | 9 #include "src/handles-inl.h" |
10 #include "src/prototype.h" | 10 #include "src/prototype.h" |
(...skipping 463 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
474 Add("%o", f); | 474 Add("%o", f); |
475 Add("/* warning: no JSFunction object or function name found */ "); | 475 Add("/* warning: no JSFunction object or function name found */ "); |
476 } | 476 } |
477 } | 477 } |
478 | 478 |
479 | 479 |
480 void StringStream::PrintPrototype(JSFunction* fun, Object* receiver) { | 480 void StringStream::PrintPrototype(JSFunction* fun, Object* receiver) { |
481 Object* name = fun->shared()->name(); | 481 Object* name = fun->shared()->name(); |
482 bool print_name = false; | 482 bool print_name = false; |
483 Isolate* isolate = fun->GetIsolate(); | 483 Isolate* isolate = fun->GetIsolate(); |
484 if (receiver->IsNull(isolate) || receiver->IsUndefined(isolate) || | 484 if (receiver->IsNullOrUndefined(isolate) || receiver->IsTheHole(isolate) || |
485 receiver->IsTheHole(isolate) || receiver->IsJSProxy()) { | 485 receiver->IsJSProxy()) { |
486 print_name = true; | 486 print_name = true; |
487 } else if (isolate->context() != nullptr) { | 487 } else if (isolate->context() != nullptr) { |
488 if (!receiver->IsJSObject()) { | 488 if (!receiver->IsJSObject()) { |
489 receiver = receiver->GetPrototypeChainRootMap(isolate)->prototype(); | 489 receiver = receiver->GetPrototypeChainRootMap(isolate)->prototype(); |
490 } | 490 } |
491 | 491 |
492 for (PrototypeIterator iter(isolate, JSObject::cast(receiver), | 492 for (PrototypeIterator iter(isolate, JSObject::cast(receiver), |
493 kStartAtReceiver); | 493 kStartAtReceiver); |
494 !iter.IsAtEnd(); iter.Advance()) { | 494 !iter.IsAtEnd(); iter.Advance()) { |
495 if (iter.GetCurrent()->IsJSProxy()) break; | 495 if (iter.GetCurrent()->IsJSProxy()) break; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
532 MemCopy(new_space, space_, *bytes); | 532 MemCopy(new_space, space_, *bytes); |
533 *bytes = new_bytes; | 533 *bytes = new_bytes; |
534 DeleteArray(space_); | 534 DeleteArray(space_); |
535 space_ = new_space; | 535 space_ = new_space; |
536 return new_space; | 536 return new_space; |
537 } | 537 } |
538 | 538 |
539 | 539 |
540 } // namespace internal | 540 } // namespace internal |
541 } // namespace v8 | 541 } // namespace v8 |
OLD | NEW |