Atlas: Updated wxJS to latest SVN version. Made the JS runtime have a greater lifetime than all the wx windows, to avoid garbage collection problems.
IGUIObject: Cache the JSObject*, to prevent some frequent allocation while running GUI scripts.
JSInterface_IGUIObject: Fixed garbage collection issues.
JSInterface_IGUIObject, ScriptGlue: Changed to the JS_THREADSAFE form of JS_GetClass.
Util: Avoid startup warnings on Linux caused by using unimplemented cpu_* functions that aren't needed for anything important yet.
sysdep/unix: Changed to native line endings.
Is this still (or has it ever been) actually the case?
Seems like they are associated with the runtime as opposed to the JSContext.
These roots can be used in heap-allocated data structures, so they are not associated with any particular JSContext or stack. They are registered with the JSRuntime itself, without locking, so they require a full JSContext to be initialized, not one of its more restricted superclasses.
Maybe I am misunderstanding something here?
Ah yes, I was already equating JSRuntime with JSContext https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/Releases/45#Future_Direction
The patch to change it to JS::Heap is simple, but measuring the memory leak isn't.