4 ms·
Interesting. It's worth noting that semicolons are generally optional in javascript, and there's a growing contingency of folks who actively do not use them and
by rco8786 10y ago
Interesting. It's worth noting that semicolons are generally optional in javascript, and there's a growing contingency of folks who actively do not use them and rely on their build tools to inject where necessary. Sounds like it would lead to subtle bugs but I guess it works ok.
Anyway, nice work in general! Assuming this only works with 'let' to avoid the weirdness around 'var' scoping?
- pretodor 10y agoRegarding the semicolons, due to the insertion mechanism JavaScript uses, lines starting with '[', '(', or '`' will get merged with the previous statement. So the example in the repo will get parsed in JavaScript as: x = 10; y = 20[x, y] = [y, x]; Your assumption is correct. NodeScript defaults to let-declarations. This leaves you with a block-scoped language and prevents leakage of global variables. If you want to make a global variable, you will have to explicitly write it as a property of the global object. Thanks for the kind words. I really appreciate it.
- sucrose 10y agoRegarding semicolons, here's an interesting previous discussion: https://news.ycombinator.com/item?id=3842713 https://news.ycombinator.com/item?id=3842713
- krapp 10y ago> Sounds like it would lead to subtle bugs but I guess it works ok. It does lead to subtle bugs. The same kind of people who leave semicolons out of javascript write C but leave out the braces in statements wherever it's allowed - which also leads to subtle bugs. I guess looking pretty and saving a couple of keystrokes is preferable to being explicit and not having to just trust that the compiler/browser/whatever is able to intuit what you want the code to be as opposed to what you wrote.
- pretodor 10y ago> It does lead to subtle bugs. Have you encountered any bugs so far while testing NodeScript out? I thought I have taken care of all the gotchas when it comes to semicolons.