Le 19/12/2012 17:34, Brandon Benvie a écrit :
Also note that none of these properties are currently accessors so no one has come to rely on being able to extract their getters. So introducing them with neutered accessors would not have an impact on existing code.
I fully agree. I wasn't really worried about backward compat.

On Wednesday, December 19, 2012, Brandon Benvie wrote:

    It only has to be a handful of accessors, no? I was thinking
    basically of just the few things on the global object that need
    this treatment. location, document, window, navigator, maybe a few
    others?

Very good point.
We're not redefining what [Unforgeable] means, but only what it means for WindowProxy objects, so that's very few properties in the end.

    And location is the only one with a setter, so we're mostly just
    talking about getters on the global object. Since it's the global
    object, you could just call the getter directly and `this` will
    implicitly be the correct receiver when called inside the context.

I always use strict mode, so it wouldn't work for me. But since these getter/setter are special, I wouldn't be shocked if they were bound functions.

    So the remaining situations in which it's difficult are in the
    parent frame when you want to do this one of the handful of
    properties that have this treatment.

    An option that might have uses in other places as well is a kind
    of primitive version of call, bind, and apply that have the null
    prototype, frozen treatment. They could be singletons over the
    entire runtime, across realms, and be attached to any function in
    any realm (including these accessors) without leaking anything.

I think that was what Brendan called "null realm". It has the problem that if someone adds new things to Function.prototype or Object.prototype, your "null realm" getters/setters wouldn't benefit from it.

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

Reply via email to