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? > > >