From:  Terrence Cole <>
Date:  25 May 2016 06:55:18 Hong Kong Time

HeapPtr is now GCPtr, long live HeapPtr


Remember how we have both JS::Heap and js::HeapPtr and they have
dangerously different semantics? And how we also have a
js::RelocatablePtr and it has similar semantics to JS::Heap, but not
js::Heap? Neither can anyone else!

On inbound, as of a few minutes ago, HeapPtr is now GCPtr and
RelocatablePtr is now HeapPtr. This makes the rules quite simple:

If your pointer is stored on the GC heap, use GCPtr. If you pointer is
stored on the C Heap, use HeapPtr. If you are outside SpiderMonkey, use

It is the GC team's hope that these names will be more memorable and result
in fewer "what exactly does relocatable even mean?" on IRC. Please feel
free to ask if you have any questions about the change.