On 13-09-10 4:41 PM, Luke Wagner wrote:
Is the baseline JIT enabled in whatever sandbox/execution-environment these
addons using the addon SDK run in?
I don't know. But as Kannan says, the JITs still do the
__noSuchMethod__ thing in the common case.
Oh, I missed that, I was assuming we just never called it from the JIT call
paths.
So this all seems pretty grim for simple __noSuchMethod__-removal. If we
wanted to remove it, I still think we could using a similar plan to E4X:
- put it behind a pref, default on, announce to the addons mailing list that
it will be removed (and to test with the pref off)
- remove all in-tree and addon-sdk uses
- wait several releases
- flip the pref default to off
- wait several releases
- remove
All that effort was worth it for the terror that was E4X, perhaps not for
__noSuchMethod__. What do you think Kannan?
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
That's a reasonable path forward, but it doesn't help with the immediate
issue of the jits exhibiting incorrect behaviour, for which the fix is
unreasonably complex and compromised.
I think in addition to those steps, we could also change the semantics
of __noSuchMethod__ such that it only gets called for lookups of
non-existant properties, as opposed to all lookups which return a
primitive value. The interpreter would be changed to implement that
behaviour, and the jits basically stay the same as they are now.
How does that sound?
Kannan.
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals