It is obviously not a parsing issue, sensu stricto, both because the distinction between - - and -- is lexical, and because, as you point out, the runtime evaluator suffers no such problem when its input is correct. The question that needs to be answered in diagnosing the problem, than, is what could cause the space between the two hyphen-minuses to be elided (or otherwise ignored)? If it is not the minification logic that apparently runs during full-file upload, I'll be surprised. What else is empowered to remove spaces? Why else would the error message actually quote maltransformed input? Why else would the problem vanish on paths where minification is not performed?
I think the key insight here is that the expression 1--1is erroneous (semantically, because 1 is not an lvalue, and syntactically, because -- is not an infix operator), but it is not what was written in the source.
I'm sure other explanations are possible, but for now my money is definitely on the assumptions made by the minifier.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
It is obviously not a parsing issue, sensu stricto, both because the distinction between
- -
and--
is lexical, and because, as you point out, the runtime evaluator suffers no such problem when its input is correct. The question that needs to be answered in diagnosing the problem, than, is what could cause the space between the two hyphen-minuses to be elided (or otherwise ignored)? If it is not the minification logic that apparently runs during full-file upload, I'll be surprised. What else is empowered to remove spaces? Why else would the error message actually quote maltransformed input? Why else would the problem vanish on paths where minification is not performed?I think the key insight here is that the expression
1--1
is erroneous (semantically, because1
is not an lvalue, and syntactically, because--
is not an infix operator), but it is not what was written in the source.I'm sure other explanations are possible, but for now my money is definitely on the assumptions made by the minifier.