Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index 11fccdf023999ff3c3a8acf425c669be29cae54c..a4a665dccbc7cb317d125441ede9b5e977d4ad4d 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -5447,6 +5447,7 @@ class Internals { |
static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; |
static const int kNodeStateMask = 0xf; |
static const int kNodeStateIsWeakValue = 2; |
+ static const int kNodeStateIsPendingValue = 3; |
static const int kNodeStateIsNearDeathValue = 4; |
static const int kNodeIsIndependentShift = 4; |
static const int kNodeIsPartiallyDependentShift = 5; |
@@ -5662,8 +5663,10 @@ template <class T> |
bool Persistent<T>::IsNearDeath() const { |
typedef internal::Internals I; |
if (this->IsEmpty()) return false; |
- return I::GetNodeState(reinterpret_cast<internal::Object**>(this->val_)) == |
- I::kNodeStateIsNearDeathValue; |
+ uint8_t node_state = |
+ I::GetNodeState(reinterpret_cast<internal::Object**>(this->val_)); |
+ return node_state == I::kNodeStateIsNearDeathValue || |
+ node_state == I::kNodeStateIsPendingValue; |
} |