diff options
Diffstat (limited to 'Source/JavaScriptCore/runtime/WeakGCMap.h')
-rw-r--r-- | Source/JavaScriptCore/runtime/WeakGCMap.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/runtime/WeakGCMap.h b/Source/JavaScriptCore/runtime/WeakGCMap.h index 98483c312..9e8db4d60 100644 --- a/Source/JavaScriptCore/runtime/WeakGCMap.h +++ b/Source/JavaScriptCore/runtime/WeakGCMap.h @@ -69,7 +69,10 @@ public: ExternalType get(const KeyType& key) const { - return HandleTypes<MappedType>::getFromSlot(const_cast<JSValue*>(&m_map.get(key)->jsValue())); + WeakImpl* impl = m_map.get(key); + if (!impl || impl->state() != WeakImpl::Live) + return ExternalType(); + return HandleTypes<MappedType>::getFromSlot(const_cast<JSValue*>(&impl->jsValue())); } void set(JSGlobalData&, const KeyType& key, ExternalType value) |