Actually, I take that back, FF Nightly is behaving differently this morning 
than it was earlier in the week. Go figure


> On Nov 7, 2015, at 12:06 PM, Caitlin Potter <[email protected]> wrote:
> 
> It should be reserved, logically — but the spec does not explicitly forbid 
> this. Unless you take Allen’s “it’s a bold sequence of characters, 
> therefore…” argument, which is all well and good, but is only really 
> explained in the spec in http://tc39.github.io/ecma262/#sec-grammar-notation 
> <http://tc39.github.io/ecma262/#sec-grammar-notation> in the first paragraph 
> — and then further, unicode escapes tend to be eagerly converted, so “appear 
> in a script exactly as written” can be misleading. Explicit static semantics 
> work a lot better for this sort of thing, as they can be easily referenced.
> 
> So, in that case, it’s SpiderMonkey with the bug in the case of accessor 
> methods, and Chrome without it, while Firefox behaves correctly with escaped 
> `new . target`, and Chrome doesn’t.
> 
>> On Nov 7, 2015, at 11:57 AM, Eric Suen <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> So escaped ReservedWords are not valid as ReservedWords nor
>> Identifier, what is it then?
>> 
>> And in export { IdentifierName }, why it's IdentifierName not
>> Identifier. since IdentifierName only valid as Property in
>> ObjectLiteral or Method in Class, is there any way to define
>> ReservedWords as local name?
>> 
>> 'get'/'set' is ContextuallyReservedIdentifier, maybe that's the reason?
>> 
>> 
>> On Sat, Nov 7, 2015 at 11:32 PM, Caitlin Potter <[email protected] 
>> <mailto:[email protected]>> wrote:
>>> That it works in Chrome is a bug, which will hopefully be fixed by Monday 
>>> or Tuesday!
>>> 
>>> Per http://tc39.github.io/ecma262/#sec-keywords 
>>> <http://tc39.github.io/ecma262/#sec-keywords>, “new” is a Keyword, which 
>>> makes it a ReservedWord.
>>> 
>>> Per 
>>> http://tc39.github.io/ecma262/#sec-identifiers-static-semantics-early-errors
>>>  
>>> <http://tc39.github.io/ecma262/#sec-identifiers-static-semantics-early-errors>,
>>>  under the
>>> “Identifier: IdentifierName but not ReservedWord” section, the second early 
>>> error applies here. This applies to
>>> `new`, which is always a reserved word. So whenever an Identifier is 
>>> expected, if it contains UnicodeEscapeSequences which result in the same 
>>> StringValue as a ReservedWord, it’s an error.
>>> 
>>> The spec is similarly explicit in saying that escaped ReservedWords are not 
>>> valid as ReservedWords. Browsers behave differently here (for instance, 
>>> http://jsfiddle.net/jd51pqae/ <http://jsfiddle.net/jd51pqae/> <<< at the 
>>> time of this writing Webkit Nightly prints the text, while other browsers 
>>> SyntaxError. in Chromes case, this is because it’s tokenized as an 
>>> Identifier, so the second Identifier “f” is unexpected when parsing a 
>>> MemberExpression. SpiderMonkey is doing a nice job of reporting clean 
>>> errors for this kind of thing, that are easier to understand.
>>> 
>>> There are some odd points though:
>>> 
>>> 1. ReservedWord restrictions never apply to `get` or `set`, even in 
>>> ObjectLiterals (though currently Chrome fails to treat `g\u{65}t` or 
>>> `s\u{65}t` as an accessor prefix, this is a bug).
>>> 
>>> 2. In the case of “new.target”, it’s technically legal to write 
>>> `new.t\u{61}rget`, but this mostly just seems like an oversight in the spec.
>>> 
>>>> On Nov 7, 2015, at 9:50 AM, Eric Suen <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> "The ReservedWord definitions are specified as literal sequences of
>>>> specific SourceCharacter elements. A code point in a ReservedWord
>>>> cannot be expressed by a \ UnicodeEscapeSequence." - what does it
>>>> mean?
>>>> 
>>>> The following code is valid in Chrome, but invalid in firefox and IE.
>>>> 
>>>> var \u006eew = 1; // \u006e = 'n'
>>>> 
>>>> and valid in Babel/Traceur, invalid in typescript/esprima...
>>>> 
>>>> --
>>>> ------------------------------------------------
>>>> Spket IDE - Development Tool for RIA.
>>>> 
>>>> http://www.spket.com <http://www.spket.com/>
>>>> _______________________________________________
>>>> es-discuss mailing list
>>>> [email protected]
>>>> https://mail.mozilla.org/listinfo/es-discuss
>>> 
>> 
>> 
>> 
>> --
>> ------------------------------------------------
>> Spket IDE - Development Tool for RIA.
>> 
>> http://www.spket.com <http://www.spket.com/>
> 

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to