Complete ECMAScript 5th edition implementation

Dmitry A. Soshnikov dmitry.soshnikov at gmail.com
Fri Apr 9 01:33:00 PDT 2010


On 09.04.2010 10:39, Benjamin Jan Alexander Rosseaux wrote:
> Dmitry A. Soshnikov schrieb:
>> var x = 10;
>> alert(delete x);  // true, should be false (for [[Configurable]])
>> alert(x); // undefined
>>
>> But identifier resolution for "x" binding (which should be resolved in
>> the global object since it isn't deleted) from the function, says not 
>> "undefined", but "x" is
>> not defined. If do not use delete, it resolves to 10.
>>
>> (function () {
>>   alert(x);
>> })();
>>
> Hm, i've checked my DELETE operator + Object.Delete + EnvRec.Delete 
> code implementations against the ES5 final spec PDF again once more, 
> but all instruction steps between my implementation and  the PDF are 
> exactly equal.  Can you provide me more information to this, what you 
> does mean, what may be wrong?
>

See 10.5 (Declaration Binding Instantiation) step 2. So only in "eval" 
code binding can be deleted (for details see CreateMutableBinding, and 
exactly for global context -- 10.2.1.2.2 as it has Object Environment 
Record with Global object as Binding object).

But, yeah, as it was mentioned by David Herman, unfortunately such 
discussion is already off-topic for this ML; so maybe I'll contact to 
you later directly.

Good luck with your project.

> Anyway, a new version is available, where I've fixed some other small 
> bugs on other code locations.
> Benjamin

Yes, I'll check it later, I found some other bugs already.

Dmitry.



More information about the es-discuss mailing list