Miles, well I'm not entirely sure my example is 100% correct. I was hoping
to get some answers as well. (I also made a typo with `auto *` D:)
I went digging through some Mozilla/JSAPI code on the DXR to see how it is
used, and put that together with some info from StackOverflow.
I think I can answer your question about Heap/Handle. I believe Handles are
always for Rooted Objects, which are on the stack. Heap and Stack Objects
are handled differently, so you would have to root it before use.
Again, I'm trying to learn these things myself. These are good questions.