Hi, everyone,
During some recent discussion in Chinese JS community, I've noticed
several case which JS behave out of user's expect if omitting the
semicolon.
See the following code:
--------------------------------------------
var a = this.a //!!!! here no semicolon will be auto inserted
[1,2,3].forEach(function(){
// do something
})
--------------------------------------------
(function(){
//do something
})() //!!!! here no semicolon will be auto inserted
(function(){
//do something else
})()
--------------------------------------------
I was thinking that if we could change some grammar rules to make it
behave as most user's expect. Just adding several [no LineTerminator
here] will do so:
--------------------------------------------
CallExpression :
MemberExpression [no LineTerminator here] Arguments
CallExpression [no LineTerminator here] Arguments
CallExpression [no LineTerminator here] [ Expression ]
CallExpression . IdentifierName
--------------------------------------------
Though some of you might consider omitting the semicolon as a bad
style, but its used by several group and company (including zepto.js
and npmjs). I think this change will benefit them a lot with very
small side effect.
/Shaofei
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss