| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide |
| 6 * | 6 * |
| 7 * V8 is Google's open source JavaScript engine. | 7 * V8 is Google's open source JavaScript engine. |
| 8 * | 8 * |
| 9 * This set of documents provides reference material generated from the | 9 * This set of documents provides reference material generated from the |
| 10 * V8 header file, include/v8.h. | 10 * V8 header file, include/v8.h. |
| (...skipping 556 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 | 567 |
| 568 /** | 568 /** |
| 569 * Marks the reference to this object independent. Garbage collector is free | 569 * Marks the reference to this object independent. Garbage collector is free |
| 570 * to ignore any object groups containing this object. Weak callback for an | 570 * to ignore any object groups containing this object. Weak callback for an |
| 571 * independent handle should not assume that it will be preceded by a global | 571 * independent handle should not assume that it will be preceded by a global |
| 572 * GC prologue callback or followed by a global GC epilogue callback. | 572 * GC prologue callback or followed by a global GC epilogue callback. |
| 573 */ | 573 */ |
| 574 V8_INLINE void MarkIndependent(); | 574 V8_INLINE void MarkIndependent(); |
| 575 | 575 |
| 576 /** | 576 /** |
| 577 * Marks the reference to this object partially dependent. Partially dependent | |
| 578 * handles only depend on other partially dependent handles and these | |
| 579 * dependencies are provided through object groups. It provides a way to build | |
| 580 * smaller object groups for young objects that represent only a subset of all | |
| 581 * external dependencies. This mark is automatically cleared after each | |
| 582 * garbage collection. | |
| 583 */ | |
| 584 V8_INLINE V8_DEPRECATED( | |
| 585 "deprecated optimization, do not use partially dependent groups", | |
| 586 void MarkPartiallyDependent()); | |
| 587 | |
| 588 /** | |
| 589 * Marks the reference to this object as active. The scavenge garbage | 577 * Marks the reference to this object as active. The scavenge garbage |
| 590 * collection should not reclaim the objects marked as active. | 578 * collection should not reclaim the objects marked as active. |
| 591 * This bit is cleared after the each garbage collection pass. | 579 * This bit is cleared after the each garbage collection pass. |
| 592 */ | 580 */ |
| 593 V8_INLINE void MarkActive(); | 581 V8_INLINE void MarkActive(); |
| 594 | 582 |
| 595 V8_INLINE bool IsIndependent() const; | 583 V8_INLINE bool IsIndependent() const; |
| 596 | 584 |
| 597 /** Checks if the handle holds the only reference to an object. */ | 585 /** Checks if the handle holds the only reference to an object. */ |
| 598 V8_INLINE bool IsNearDeath() const; | 586 V8_INLINE bool IsNearDeath() const; |
| (...skipping 7720 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8319 static const int kFalseValueRootIndex = 8; | 8307 static const int kFalseValueRootIndex = 8; |
| 8320 static const int kEmptyStringRootIndex = 9; | 8308 static const int kEmptyStringRootIndex = 9; |
| 8321 | 8309 |
| 8322 static const int kNodeClassIdOffset = 1 * kApiPointerSize; | 8310 static const int kNodeClassIdOffset = 1 * kApiPointerSize; |
| 8323 static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; | 8311 static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; |
| 8324 static const int kNodeStateMask = 0x7; | 8312 static const int kNodeStateMask = 0x7; |
| 8325 static const int kNodeStateIsWeakValue = 2; | 8313 static const int kNodeStateIsWeakValue = 2; |
| 8326 static const int kNodeStateIsPendingValue = 3; | 8314 static const int kNodeStateIsPendingValue = 3; |
| 8327 static const int kNodeStateIsNearDeathValue = 4; | 8315 static const int kNodeStateIsNearDeathValue = 4; |
| 8328 static const int kNodeIsIndependentShift = 3; | 8316 static const int kNodeIsIndependentShift = 3; |
| 8329 static const int kNodeIsPartiallyDependentShift = 4; | |
| 8330 static const int kNodeIsActiveShift = 4; | 8317 static const int kNodeIsActiveShift = 4; |
| 8331 | 8318 |
| 8332 static const int kJSObjectType = 0xbc; | 8319 static const int kJSObjectType = 0xbc; |
| 8333 static const int kJSApiObjectType = 0xbb; | 8320 static const int kJSApiObjectType = 0xbb; |
| 8334 static const int kFirstNonstringType = 0x80; | 8321 static const int kFirstNonstringType = 0x80; |
| 8335 static const int kOddballType = 0x83; | 8322 static const int kOddballType = 0x83; |
| 8336 static const int kForeignType = 0x87; | 8323 static const int kForeignType = 0x87; |
| 8337 | 8324 |
| 8338 static const int kUndefinedOddballKind = 5; | 8325 static const int kUndefinedOddballKind = 5; |
| 8339 static const int kNullOddballKind = 3; | 8326 static const int kNullOddballKind = 3; |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8615 | 8602 |
| 8616 template <class T> | 8603 template <class T> |
| 8617 void PersistentBase<T>::MarkIndependent() { | 8604 void PersistentBase<T>::MarkIndependent() { |
| 8618 typedef internal::Internals I; | 8605 typedef internal::Internals I; |
| 8619 if (this->IsEmpty()) return; | 8606 if (this->IsEmpty()) return; |
| 8620 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), | 8607 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), |
| 8621 true, | 8608 true, |
| 8622 I::kNodeIsIndependentShift); | 8609 I::kNodeIsIndependentShift); |
| 8623 } | 8610 } |
| 8624 | 8611 |
| 8625 | |
| 8626 template <class T> | |
| 8627 void PersistentBase<T>::MarkPartiallyDependent() { | |
| 8628 typedef internal::Internals I; | |
| 8629 if (this->IsEmpty()) return; | |
| 8630 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), | |
| 8631 true, | |
| 8632 I::kNodeIsPartiallyDependentShift); | |
| 8633 } | |
| 8634 | |
| 8635 | |
| 8636 template <class T> | 8612 template <class T> |
| 8637 void PersistentBase<T>::MarkActive() { | 8613 void PersistentBase<T>::MarkActive() { |
| 8638 typedef internal::Internals I; | 8614 typedef internal::Internals I; |
| 8639 if (this->IsEmpty()) return; | 8615 if (this->IsEmpty()) return; |
| 8640 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), true, | 8616 I::UpdateNodeFlag(reinterpret_cast<internal::Object**>(this->val_), true, |
| 8641 I::kNodeIsActiveShift); | 8617 I::kNodeIsActiveShift); |
| 8642 } | 8618 } |
| 8643 | 8619 |
| 8644 | 8620 |
| 8645 template <class T> | 8621 template <class T> |
| (...skipping 1046 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9692 */ | 9668 */ |
| 9693 | 9669 |
| 9694 | 9670 |
| 9695 } // namespace v8 | 9671 } // namespace v8 |
| 9696 | 9672 |
| 9697 | 9673 |
| 9698 #undef TYPE_CHECK | 9674 #undef TYPE_CHECK |
| 9699 | 9675 |
| 9700 | 9676 |
| 9701 #endif // INCLUDE_V8_H_ | 9677 #endif // INCLUDE_V8_H_ |
| OLD | NEW |