summaryrefslogtreecommitdiffstats
path: root/js/public/Proxy.h
diff options
context:
space:
mode:
authortrav90 <travawine@protonmail.ch>2018-04-07 12:24:30 -0500
committertrav90 <travawine@protonmail.ch>2018-04-07 13:11:38 -0500
commitbbd4001cb261cc54e2adf804ea7cbeb09078d7d9 (patch)
tree581523beea01c0b144051caebb6cb8a95539717a /js/public/Proxy.h
parentd960419686462067cb5745dcd1ad264abe0b1485 (diff)
downloadUXP-bbd4001cb261cc54e2adf804ea7cbeb09078d7d9.tar
UXP-bbd4001cb261cc54e2adf804ea7cbeb09078d7d9.tar.gz
UXP-bbd4001cb261cc54e2adf804ea7cbeb09078d7d9.tar.lz
UXP-bbd4001cb261cc54e2adf804ea7cbeb09078d7d9.tar.xz
UXP-bbd4001cb261cc54e2adf804ea7cbeb09078d7d9.zip
Fix Value::isGCThing footgun, stop returning true for NullValue
Diffstat (limited to 'js/public/Proxy.h')
-rw-r--r--js/public/Proxy.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/js/public/Proxy.h b/js/public/Proxy.h
index 3e95538db..5acb91b26 100644
--- a/js/public/Proxy.h
+++ b/js/public/Proxy.h
@@ -456,7 +456,7 @@ SetProxyExtra(JSObject* obj, size_t n, const Value& extra)
Value* vp = &detail::GetProxyDataLayout(obj)->values->extraSlots[n];
// Trigger a barrier before writing the slot.
- if (vp->isMarkable() || extra.isMarkable())
+ if (vp->isGCThing() || extra.isGCThing())
SetValueInProxy(vp, extra);
else
*vp = extra;
@@ -482,7 +482,7 @@ SetReservedOrProxyPrivateSlot(JSObject* obj, size_t slot, const Value& value)
MOZ_ASSERT(slot == 0);
MOZ_ASSERT(slot < JSCLASS_RESERVED_SLOTS(GetObjectClass(obj)) || IsProxy(obj));
shadow::Object* sobj = reinterpret_cast<shadow::Object*>(obj);
- if (sobj->slotRef(slot).isMarkable() || value.isMarkable())
+ if (sobj->slotRef(slot).isGCThing() || value.isGCThing())
SetReservedOrProxyPrivateSlotWithBarrier(obj, slot, value);
else
sobj->slotRef(slot) = value;