It may be wise to wrap with parens, only if command starts with '{', at 
least newcomers (to JavaScript) may be puzzled to find not valid code 
giving strange success results.

-- 
Mariusz Nowak
https://github.com/medikoo

On Friday, June 15, 2012 6:26:37 PM UTC+2, Isaac Schlueter wrote:
>
> It's a feature! :) 
>
> Seriously, though, it's universally annoying for {foo: "bar"} to 
> resolve to "bar" rather than {foo: "bar"}.  In their haste, Netscape 
> released Brendan's creation into the wild before it was fully 
> finished, and in the organic iteration process, we came to have object 
> literals using syntax that is indistinguishable from blocks (which do 
> nothing) and labels (which also do nothing).  The only way out of the 
> mess is to wrap in parens, and it has this weird effect on function 
> calls, or implement a smarter parser than eval(), and that's much more 
> complicated, or try to be clever about when you wrap and when you 
> don't, which also adds complexity for little benefit. 
>
> It's ok how it is, really. 
>
>
> On Fri, Jun 15, 2012 at 12:29 AM, Adam Blackburn <regal...@gmail.com> 
> wrote: 
> > I just discovered a really magical bug, that may not be significant 
> enough 
> > to care about. 
> > 
> > If you open your node repl and run: 
> > 
> >     > console.log)("oh hai" 
> > 
> > It will happily greet you without any syntax errors. 
> > 
> > I found the issue is here, where it wraps your command in parens. So it 
> > really runs (console.log)("oh hai"). 
> > 
> > Thoughts? Worth caring about? 
> > 
>

Reply via email to