| 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 |