OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 <iomanip> | 5 #include <iomanip> |
6 #include <sstream> | 6 #include <sstream> |
7 | 7 |
8 #include "src/v8.h" | 8 #include "src/v8.h" |
9 | 9 |
10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
591 PropertyDetails original_details = property_dictionary->DetailsAt(entry); | 591 PropertyDetails original_details = property_dictionary->DetailsAt(entry); |
592 int enumeration_index = original_details.dictionary_index(); | 592 int enumeration_index = original_details.dictionary_index(); |
593 DCHECK(enumeration_index > 0); | 593 DCHECK(enumeration_index > 0); |
594 details = details.set_index(enumeration_index); | 594 details = details.set_index(enumeration_index); |
595 property_dictionary->SetEntry(entry, name, value, details); | 595 property_dictionary->SetEntry(entry, name, value, details); |
596 } | 596 } |
597 } | 597 } |
598 } | 598 } |
599 | 599 |
600 | 600 |
| 601 bool Object::HasInPrototypeChain(Isolate* isolate, Object* target) { |
| 602 PrototypeIterator iter(isolate, this, PrototypeIterator::START_AT_RECEIVER); |
| 603 while (true) { |
| 604 iter.AdvanceIgnoringProxies(); |
| 605 if (iter.IsAtEnd()) return false; |
| 606 if (iter.IsAtEnd(target)) return true; |
| 607 } |
| 608 } |
| 609 |
| 610 |
601 Map* Object::GetRootMap(Isolate* isolate) { | 611 Map* Object::GetRootMap(Isolate* isolate) { |
602 DisallowHeapAllocation no_alloc; | 612 DisallowHeapAllocation no_alloc; |
603 if (IsSmi()) { | 613 if (IsSmi()) { |
604 Context* native_context = isolate->context()->native_context(); | 614 Context* native_context = isolate->context()->native_context(); |
605 return native_context->number_function()->initial_map(); | 615 return native_context->number_function()->initial_map(); |
606 } | 616 } |
607 | 617 |
608 // The object is either a number, a string, a symbol, a boolean, a SIMD value, | 618 // The object is either a number, a string, a symbol, a boolean, a SIMD value, |
609 // a real JS object, or a Harmony proxy. | 619 // a real JS object, or a Harmony proxy. |
610 HeapObject* heap_object = HeapObject::cast(this); | 620 HeapObject* heap_object = HeapObject::cast(this); |
(...skipping 15078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
15689 if (cell->value() != *new_value) { | 15699 if (cell->value() != *new_value) { |
15690 cell->set_value(*new_value); | 15700 cell->set_value(*new_value); |
15691 Isolate* isolate = cell->GetIsolate(); | 15701 Isolate* isolate = cell->GetIsolate(); |
15692 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 15702 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
15693 isolate, DependentCode::kPropertyCellChangedGroup); | 15703 isolate, DependentCode::kPropertyCellChangedGroup); |
15694 } | 15704 } |
15695 } | 15705 } |
15696 | 15706 |
15697 } // namespace internal | 15707 } // namespace internal |
15698 } // namespace v8 | 15708 } // namespace v8 |
OLD | NEW |