On 2008-09-10, at 13:36EDT, Mark S. Miller wrote:

>>> Or we could say that the property is looked up after wrapping, but a
>>> method call proceeds with the original unwrapped value. In other  
>>> words
>>>
>>>   "foo".capture()
>>>
>>> should be equivalent to
>>>
>>>   Object("foo").capture.call("foo")
>>>
>>> given the original bindings for Object and Function.call.
>>
>> It occurs to me that the latter case (looking up after wrapping)
>> trades a single wrapping at function entry against potentially
>> multiple wrappings that may occur inside the function.
>
> If we adopt the no-this-coercion rule and use wrapping only to explain
> the lookup, then the implied allocation above is unobservable and can
> easily be optimized away. By contrast, the allocation implied by the
> current spec can only sometimes be optimized away, and only by doing
> an escape analysis.

Will it be a problem that then `this` might sometimes not be an Object  
in a function?  If not, this is a clever refinement.
_______________________________________________
Es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to