Microsoft/TypeScript
Auf GitHub ansehencommonjs export binding produces invalid code for increment/decrement in PrefixUnaryExpression
Open
#35.879 geöffnet am 27. Dez. 2019
BugDomain: JS EmitHelp Wanted
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
TypeScript Version: 3.7.2
Search Terms: export increment decrement syntax error
Code
// @module: commonjs
let foo = 1;
export { foo };
while (!--foo) { }
Expected behavior:
while (!(exports.foo = --foo)) { }
Actual behavior:
Because the module-transform uses onSubstituteNode, it doesn't use the auto-parenthesizing that's done by the factory API.
while (!exports.foo = --foo) { } // SyntaxError: `!exports.foo` is no valid assignment target
Playground Link: https://www.typescriptlang.org/play/?target=99&module=1&ssl=3&ssc=19&pln=1&pc=1#code/DYUwLgBAZg9jEF4IEYDcAoEAPADjATpAN7RwQC+GA7gBYCWoEAFAIQC0bsMAlBCeUA
Related Issues: #33044