summaryrefslogtreecommitdiffstats
path: root/Source/JavaScriptCore/runtime/WeakGCMap.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/runtime/WeakGCMap.h')
-rw-r--r--Source/JavaScriptCore/runtime/WeakGCMap.h5
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)