There is a hack in JSCompartment::wrap where we reparent wrappers to the current global whenever an existing wrapper is found in the crossCompartmentWrappers map. This apparently prevents hideous browser leaks. Fortunately, compartment-per-global should makes this code unnecessary since obj->getGlobal() will necessarily equal 'global'.
Created attachment 641708 [details] [diff] [review] patch So far, so green: https://tbpl.mozilla.org/?tree=Try&rev=b3e9b404dd35
Comment on attachment 641708 [details] [diff] [review] patch r=me if it's green.