From:  Jan de Mooij <>
Date:  27 Dec 2016 17:12:52 Hong Kong Time

Value::isGCThing now does what you'd expect


Hey all,

I landed a JS::Value change that might affect some embedders. JS::Value
used to have the following methods:

* isMarkable(): returned true iff the Value was a GC thing (object, string,
symbol, private GC thing).
* isGCThing(): returned true if isMarkable() *or NullValue*.

Unsurprisingly, most callers of isGCThing actually wanted isMarkable (we
had some DOM code for instance where we took a slower path if isGCThing()
returned true).

Bug 1325075 [0] (in Firefox/SpiderMonkey 53) fixed this footgun. Now
there's just isGCThing and it returns true iff the Value is a GC thing. The
isMarkable and toMarkablePointer methods are gone.