This is a bug in the spec, and has been previously discussed here:
https://mail.mozilla.org/pipermail/es5-discuss/2010-November/003839.html (Thanks, Jeff!) On 03/20/2011 11:22 PM, Jim Blandy wrote:
When executing this code: (function () { eval("var x=delete(x)") })()I think the assertion in the ECMAScript description of the declarative environment record's SetMutableBinding algorithm, 10.2.1.1.3 step 2, fails.* On entry to the function, we create a lexical environment with a declarative environment record (10.4.3). * When we enter the eval code, we create the binding for 'x' in that environment record (10.5, step 8.c.1). This is a deletable binding, as per 10.5 step 2. * When we evaluate the declaration, we produce a reference with that environment record as its base, delete the binding, and then call PutValue (12.2, VariableDeclaration : Identifier Initialiser semantics). * PutValue calls the environment record's SetMutableBinding concrete method (8.7.2 step 5.a). * SetMutableBinding's assertion fails, because 'x' is no longer bound in that environment record (10.2.1.1.3 step 2). Have I missed something? _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

