On 9/18/13 10:11 PM, Brendan Eich wrote:
Boris is working on Proxy-based form objects.

Not working on.  They've been shipping for multiple Firefox releases now.

Of more interest than forms is the fact that "window" and "document" are both proxies. So document.getElementById is a method call on a proxy, for example.

Also, foo.style is a proxy. Method calls on that are rare, but getter/setter invocations are common, of course.

Now in practice SpiderMonkey has some special-casing already for these proxies internally. For example, we know, with just a shape guard on the "target" that foo.style.display will in fact end up calling a getter on the proto and just bypass the proxy hooks altogether for that get. We have similar things for the Document object. Invoking DOM methods on it still has about 2x the overhead of invoking them on normal DOM objects, but I expect we'll be able to fix that.

For non-built-in stuff ("expandos"), of course, things are slow on document.

And "window" is a special snowflake in all sorts of ways, of course...

Your CPython argument is suspect, but the real data we seek is a
JS-specific perf bake-off, more than Shumway but at least that: some
significant macro-benchmark suite that exercises method calls and
methods as funargs, and that is not synthetic or based on old/rare real
world code.

Sure would be nice.  ;)

-Boris
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to