Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Removing JSRESOLVE_WITH

19 views
Skip to first unread message

Jeff Walden

unread,
May 24, 2012, 11:47:36 PM5/24/12
to
It turns out that JSRESOLVE_WITH, added to SpiderMonkey a few years ago because of a bizarre special-case in Gecko, is no longer needed by it. (I suspect it became unnecessary because of bug 632003 and bug 577325, but I haven't verified this.) It's rather hackish, and it would be truly wicked sweet to remove it. Is anyone somehow using this? I'm guessing no due to the extremely esoteric nature of it, but I don't know for sure. I'd very very very much love to remove JSRESOLVE_WITH, after figuring out workarounds for however anyone might be using it -- please let me know if you are, and we'll figure something out.

Jeff

Blake Kaplan

unread,
May 25, 2012, 11:29:38 AM5/25/12
to
Jeff Walden <jwald...@mit.edu> wrote:
> It turns out that JSRESOLVE_WITH, added to SpiderMonkey a few years ago
> because of a bizarre special-case in Gecko, is no longer needed by it. (I

I'm curious where your conclusion comes from. As far as I can tell,
JSRESOLVE_WITH is still used in nsDOMClassInfo.cpp in order to disable the
"fast expando" optimization on the window when the window is being used as the
object in a "with" statement (see bug 463997 for details).
--
Blake Kaplan

Jeff Walden

unread,
May 25, 2012, 2:21:34 PM5/25/12
to
On 05/25/2012 08:29 AM, Blake Kaplan wrote:
> I'm curious where your conclusion comes from.

It comes from running JS tests with the patch I just posted to bug 758499, using |make jstestbrowser|, and seeing that the test mentioned as failing in bug 463997 does not fail with JSRESOLVE_WITH removed.

Jeff

Blake Kaplan

unread,
May 25, 2012, 5:53:47 PM5/25/12
to
Jeff Walden <jwald...@mit.edu> wrote:
> It comes from running JS tests with the patch I just posted to bug 758499, using |make jstestbrowser|, and seeing that the test mentioned as failing in bug 463997 does not fail with JSRESOLVE_WITH removed.

I talked to Waldo on IRC about this and he pointed out that we no longer set
JSRESOLVE_ASSINGING when we're running a bindname operation. This means that
the fast expando optimization won't happen for the with case any more. The
side effect of all this, of course, is that Waldo is exactly right and we can
nuke JSRESOLVE_WITH from orbit.
--
Blake Kaplan
0 new messages