391: Simplify: `left.rhs * right` is only safe when operators are the same r=kdy1 a=erikdesjardins
Some counterexamples:
```js
var x = 2**32 - 1;
var y = x & ~3;
(x * 2) & 2; // 2
x * (2 & 2); // 8589934590
(y & 1) | 2; // 2
y & (1 | 2); // 0
(y | 1) & 2; // 0
y | (1 & 2); // -4
```
Co-authored-by: Erik Desjardins <erikdesjardins@users.noreply.github.com>
swc_ecma_transforms:
- fix hygiene for decorators (#367)
- add test for react with common js module (#351)
swc_ecma_parser:
- add test for string escape problem (#350)
swc_common:
- don't emit `loc` for dummy spans
swc_ecma_transforms:
- prevent hygiene from changing key in object pattern (#369)
- fix module tests (iteration order of FxHashSet is changed)
swc_ecma_parser:
- fix parsing of arrow function (#370)
363: Don't emit octal escape for null character followed by digit r=kdy1 a=erikdesjardins
Fixes#361
Co-authored-by: Erik Desjardins <erikdesjardins@users.noreply.github.com>
swc_ecma_parser:
- fix parsing of type query (#338)
- fix parsing of `in` in a let / const declaration (#337)
swc_ecma_transforms:
- string literal is computed (#336)
- modules: handle imports in lhs of assignment correctly (#335)
swc_ecma_parser:
- add a test to ensure that \r\n is lexed correctly (#316)
swc_ecma_transforms:
- destructuring pass now handle variable exports correctly (#317)
- es2017::async_to_generator now handles module items. Fix#319.
- prevent hygiene pass from de-exporting class and funcrion (#315)
swc_ecma_transforms:
- block_scoped_fn: don't fold self-modifing functions. (#288).
- fixer: fix assignment in conditional expression (#293)
- make resolver work with self modifying function (#292)