From:  Jan de Mooij <jdemooij@mozilla.com>
Date:  27 Dec 2016 17:12:52 Hong Kong Time
Newsgroup:  news.mozilla.org/mozilla.dev.tech.js-engine.internals
Subject:  

Value::isGCThing now does what you'd expect

NNTP-Posting-Host:  63.245.214.181

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.

Thanks,
Jan

[0] https://bugzilla.mozilla.org/show_bug.cgi?id=1325075