On Thu, Jan 5, 2012 at 3:14 PM, Cameron McCormack <cam@mcc.id.au> wrote:
> Cameron McCormack:
>
> Right, I don't think either of my proposals Travis quoted will work now,
>> due to this bareword lookup problem.
>>
>
> I might be a bit wrong here. I forgot that [[HasProperty]] uses
> [[GetProperty]] to determine if there is a property on that object or on
> its prototype chain. That means, if my reading of the spec is right, the
> following document
>
> <!DOCTYPE html>
> <script>var toString; alert(toString)</script>
>
> should alert String(Object.prototype.**toString) and not "undefined".
> Firefox, Opera and IE alert "undefined". Chrome/Safari alert the function.
>
> So I don't know that we can make `var something;` shadow any properties
> without violating the ECMAScript spec.
>
I haven't heard opposition to shadowing. It seems the only problem that's
been brought up is figuring out how to spec it. Seems like an ES spec
change is in order since a) it doesn't match what browsers do and b)
shadowing is preferred in many cases.