If you want a class prototype, you should ask for it specifically. Asking specifically gives us more freedom in how we store prototypes (and constructors, for now) in the global object, and it's cleaner and more readable than having to know what a |key| variable could be when it's used in a centralized method. There are a few different methods for getting an original prototype in use in jstracer.cpp; this bug will fix the one that accepts a JSProtoKey to determine what prototype to get.
Created attachment 531374 [details] [diff] [review] Add operator-> to DebugOnly<T> It turns out that DebugOnly<T> isn't so hot when T is a pointer type right now.
Created attachment 531375 [details] [diff] [review] Ask for specific prototypes, not for a prototype specified key-wise
http://hg.mozilla.org/tracemonkey/rev/c2315c604e7c for DebugOnly<T>::operator->, but the main patch here still remains to be reviewed/committed.
cdleary-bot mozilla-central merge info: http://hg.mozilla.org/mozilla-central/rev/c2315c604e7c Note: not marking as fixed because fixed-in-tracemonkey is not present on the whiteboard.
Comment on attachment 531375 [details] [diff] [review] Ask for specific prototypes, not for a prototype specified key-wise Sure, ok.
And this, to fix compiler warnings that gcc 4.6.1 is apparently smart enough (or conservative enough) to not emit: https://hg.mozilla.org/integration/mozilla-inbound/rev/e13c356c0a45