4 ms·
if(foo) doX() doY()
by z3t4 7y ago
if(foo)
doX()
doY()
- slimed 7y agoFor the benefit of the rest of us, can you explain what issues this causes and where/how you are running this code?
- NoInputSignal 7y agoIntuitively this becomes: if(foo) doX() doY(); Intuitively, as a someone who uses C style languages, this becomes: if(foo) doX(); doY(); Can someone confirm which intuition is correct? I ask because, to me: it not being intuitive is a problem--even if it is not classified as ambiguous. It being only contextually intuitive, also seems somewhat problematic--but maybe excusable if it is assumed you know some similar language going into it and it behaves similarly to that other language.
- fenomas 7y agoNo idea what GP was trying to say, but the C style intuition is correct. The bug in that code is due to omitted brackets, it has nothing to do with semicolons/ASI.
- z3t4 7y agoMy point was that its hard to tell where the semicolon will be inserted. As well as the intention of the programmer. Here is another example: if(x) return "foo" return callback (1,2,3,4)
- fenomas 7y agoI think I see what you're saying, but the context here was asking for cases where omitting semicolons causes non-obvious bugs. I mean: if(x) return "foo" clearly there's a bug there, but adding in semicolons wouldn't change the code's behavior. So it doesn't affect the "is it bad to omit semicolons?" debate either way.
- z3t4 7y agoif(y) return "bar" The linter will tell you there should be a semicolon, and you are like, - no it shouldn't.