In Bug 641910 I added code to prevent marked JS objects from being added to the cycle collector graph, so I removed the corresponding check for these objects from nsXPConnect::Traverse. Unfortunately, I forgot that when WANT_ALL_TRACES is enabled, marked JS objects are still added to the cycle collector graph. In a non-DEBUG_CC build of Firefox, WANT_ALL_TRACES is only enabled when there is a listener, so the main consequence of this change is that it breaks the cycle collector graph dumping code added by Bug 466157.
This could be fixed by adding in some kind of check for WantAllTraces into the test, but I think it makes more sense to just back out the changes I made to nsXPConnect::Traverse, because the mark bit checking should be quick.
Created attachment 527826 [details] [diff] [review]
fix WANT_ALL_TRACES CC by reverting nsXPConnect changes
I made a try server push against the latest mozilla-central.
Everything passed, except a couple of Android and JP tests that don't seem to be visible on m-c, and for whatever reason Windows opt hasn't even finished building yet.
Mochitest 1 failed on WinXP opt, but otherwise the Windows opt builds passed. I guess I should figure out what the deal is with that.
I reran the Windows opt Mochitest 1 and they both came out clean, so I think this patch is good to go.