I'm getting vary. Does that mean that you want to change the semantics since ES5.1?
On Mon Feb 17 2014 at 5:12:24 PM, Mark S. Miller <[email protected]> wrote: > +1. > > > On Mon, Feb 17, 2014 at 2:06 PM, Allen Wirfs-Brock > <[email protected]>wrote: > > See > http://people.mozilla.org/~jorendorff/es6-draft.html#sec-delete-operator-runtime-semantics-evaluation > > > A better statement of the question would be can we agree that lexical > bindings created by eval are always non-deletable binding. Where or not is > throws which the various modes is already determined by the existing spec. > for delete based upon whether or not the binding is deletable. > > Allen > > > > > On Feb 17, 2014, at 1:16 PM, Mark S. Miller wrote: > > In this context, there are two things you might mean by "throws": > a) That this delete is an early error within the evaled program, and > therefore throws before any of the code in the evaled program executes. > b) That the delete is a dynamic error that happens when the delete > executes, and therefore that the evaled code prior to the delete has > executed before the error is thrown. > > -1 on #b. > > Assuming you mean #a, between #a and silence, I'm torn. Here are pros and > cons: > pro #a: The program is wrong. Silence fails to bring it to anyone's > attention, making the mistake less likely to be fixed. And making it more > likely the program's execution deviates from author's intent. > con #a: Silence on sloppy wrong programs are least surprise, and is > arguably the most vivid different between sloppy and strict. > > I doubt there's any sensible choices other than #a and silence. > > > > On Mon, Feb 17, 2014 at 12:52 PM, Allen Wirfs-Brock <[email protected] > > wrote: > > So, #3 appears to be the winner. > > Given that, can we also agree that this is throws (or at least that the > delete does nothing): > > eval ("let x=5; delete x;"); > > (bug https://bugs.ecmascript.org/show_bug.cgi?id=1111 ) > > Allen > > > > On Feb 17, 2014, at 8:02 AM, Erik Arvidsson wrote: > > I'm also fine with 3. > > On Mon Feb 17 2014 at 10:39:47 AM, Jeremy Martin <[email protected]> > wrote: > > Happy to concede to #3 on my end. Just wanted to be clear that it seems > to be optimizing for future happiness vs. least surprising behavior (which > isn't a bad thing). > > > On Mon, Feb 17, 2014 at 10:26 AM, Jorge Chamorro > <[email protected]>wrote: > > On 17/02/2014, at 13:42, Andreas Rossberg wrote: > > On 15 February 2014 06:10, Brendan Eich <[email protected]> wrote: > >> Allen Wirfs-Brock wrote: > >>> > >>> Another consideration in the back of my mind is that there may be > useful > >>> to implementors to knowing that let/const/class declaration are never > >>> dynamically added to a non-global environment. > >> > >> +lots, this should be front of mind. > >> > >> In a block, we want the bindings local to that block to be statically > >> analyzable. We want no non-local mode effects. So, #3 still wins. > > > > Strongly seconded. > > And even thirded. > > -- > ( Jorge )(); > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss > > > > > -- > Jeremy Martin > 661.312.3853 > http://devsmash.com > @jmar777 > > _______________________________________________ > 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 > > > > > -- > Cheers, > --MarkM > > > > > > -- > Cheers, > --MarkM >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

