Filed at https://bugs.ecmascript.org/show_bug.cgi?id=4532
On Wed, Aug 26, 2015 at 3:17 PM, Mark S. Miller <[email protected]> wrote: > On Wed, Aug 26, 2015 at 2:55 PM, Kevin Gibbons <[email protected]> > wrote: > >> See the following test262 test: >> https://github.com/tc39/test262/blob/master/test/language/expressions/assignment/S11.13.1_A5_T5.js >> (and related tests with update / compound assignment). >> >> In short, it is possible to have a Reference to a global variable which >> has been deleted. Normally, bare assignments to undeclared variables in >> strict mode cause ReferenceErrors. However, calling PutValue on a reference >> to a global variable which has been deleted since the reference was created >> does not throw a ReferenceError in strict mode, even though, *at the time >> of writing*, that variable does not exist. >> >> As far as I can tell, this is true in ES5 as well as ES6, but none of >> {V8, SpiderMonkey, JavaScriptCore, Nashorn} get it right. This is >> consistent and makes sense, but is it intentional? >> > > Hmmm, interesting. It was not the intention of the strict mode design to > allow this to slip by without a thrown error. If we had explicitly > considered this issue during the early strict mode design, we definitely > would have made this a thrown error of some sort. ReferenceError sounds > good to me, but I can't say that we would not have decided on TypeError. > Either seems plausible enough. > > I agree that the silent failure implied by the current spec is buggy. > Please file a bug against the ES6 spec. We should correct this at least in > the errata. > > > Thanks for raising this! > And thanks to André Bargull for writing that test case! I wish I was aware > of it earlier. > > -- > Cheers, > --MarkM > >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

