Commit graph

54 commits

Author SHA1 Message Date
Boshen
678db1d955
feat(transformer): ES2020 Nullish Coalescing Operator (#1004)
The test runner needs an update for reading options.jon, which I'll work
on in the up coming PR.
2023-10-16 21:45:58 +08:00
Boshen
db5417f9a9
refactor(clippy): allow clippy::too_many_lines 2023-10-16 15:18:11 +08:00
Boshen
eaeb63072f
refactor(clippy): allow struct_excessive_bools 2023-10-16 15:18:07 +08:00
Boshen
110059ffb7
refactor(rust): change RefCell.clone().into_inner() to RefCell.get() 2023-10-16 11:26:38 +08:00
Boshen
0f72066f2e
feat(transformer): finish 2016 exponentiation operator (#996) 2023-10-16 09:30:04 +08:00
Boshen
47872200e5
refactor(ast): clean up some methods 2023-10-15 10:49:35 +08:00
Boshen
2e2b7587ac
feat(playground): add transform and minify (#993) 2023-10-14 19:49:58 +08:00
Boshen
e0ca09b1c9
feat(codegen): implement the basics of non-minifying codegen (#987) 2023-10-13 13:34:21 +08:00
Boshen
ce79bc12ab
feat(transform_conformance): move Formatter to codegen (#986) 2023-10-12 15:13:14 +08:00
Boshen
903854dac0
refactor(ast): fix the lifetime annotations around Vist and VisitMut (#973) 2023-10-10 17:05:48 +08:00
Boshen
ef8aaa7bf1
feat(minifier): re-enable mangler (#972) 2023-10-10 14:32:58 +08:00
Boshen
14e1dacd0a
feat(minifier): reenable minifier tests (#969) 2023-10-09 11:25:29 +08:00
Boshen
55b2f031df
feat(minifier): partially re-enable minifier (#963)
closes #949
closes #950
closes #951

All minifier tests are disable from this PR.

We are going to fix the compilation errors first, then the behavioral
errors.
2023-10-08 11:06:42 +08:00
Don Isaac
027a67d94c
feat(minifier): constant addition expression folding (#882)
Fold constant addition expressions. Handles string concatenation and
addition, both with implicit casting.

For example,
```ts
let x = 1 + 1
let y = "hello " + "world"
```
now becomes
```ts
let x = 2
let y = "hello world"
```

## Extra Goodies
- test(minifier): add `test_snapshot` helper to perform snapshot tests
with `insta`
- up(hir): implement `std::ops::Add` for `NumericValue`
- up(span): impl `TryFrom<Cow<'_, &str>>` for `Atom`
2023-09-11 10:38:35 +08:00
阿良仔
e090b560be
feat(minifier): initialize conditions folding (#658)
related: #401
2023-07-30 01:02:32 +08:00
Boshen
b34ef4f07a chore: reformat 2023-07-27 13:11:46 +08:00
Matthew "strager" Glazar
318d55806f refactor: format code
Removing uses of let_chains now allows rustfmt to format some files.
Run 'cargo fmt' to reformat these files.
2023-07-27 09:44:57 +08:00
Matthew "strager" Glazar
ad00720d75 refactor: avoid unstable let_chains
The let_chains Rust feature is unstable, preventing Oxc from using a
stable Rust compiler. Refactor the code to avoid let_chains.
2023-07-27 09:44:57 +08:00
阿良仔
3c76cef11c
feat(minifier): fold NaN comparison (#580) 2023-07-21 11:00:21 +08:00
Don Isaac
2591194dba
feat(minifier): drop console statements and exprs (#552) 2023-07-16 14:41:51 +08:00
阿良仔
f0495ef924
feat(minifier): fold string number comparison (#538) 2023-07-11 21:50:51 +08:00
阿良仔
2d984f0401
feat(minifier): fold bigint number comparison (#536) 2023-07-10 23:11:28 +08:00
Don Isaac
fd899be4a9
feat(minifier): compress undefined variable declarations (#532) 2023-07-10 10:33:42 +08:00
Wenzhe Wang
9e24dbb0fa
chore(minifier): remove unused param (#494) 2023-06-28 20:21:26 +08:00
Wenzhe Wang
a32320646d
feat(minfier): try fold and or operator (#472) 2023-06-28 14:58:55 +08:00
阿良仔
1182985bb0
feat(minifier): implement try_fold_shift (#478)
* feat: implement `try_fold_shift`

* update minsize
2023-06-27 04:44:23 +08:00
Wenzhe Wang
cb94937ba6
feat(minifier): fold string string comparison (#471) 2023-06-26 22:37:50 +08:00
阿良仔
26c3ece37c
feat: handle UnaryOpsWithBigInt (#475) 2023-06-25 22:37:36 +08:00
Wenzhe Wang
b8f5e3ad92
feat(minifier): try reduce void (#457) 2023-06-23 00:10:46 +08:00
Wenzhe Wang
a5ccc7da30
feat(minifier): port undefined_comparison1 (#458) 2023-06-20 22:25:28 +08:00
Boshen
d30735677b
refactor(semantic): merge semantic2 crate into semantic crate (#460) 2023-06-19 20:20:59 +08:00
Boshen
c4008d8014
perf(manger): use RefCell<SymbolId> instead of roundtrip with BTreeMap (#455) 2023-06-16 21:15:30 +08:00
Wenzhe Wang
5d10f96051
feat(minifier): try fold unary expression (#430) 2023-06-16 00:08:14 +08:00
Wenzhe Wang
7c79fbc026
feat(minifier): try fold typeof (#408) 2023-06-07 10:44:28 +08:00
Boshen
f8125af850 feat(minimizer): print parentheses 2023-06-01 22:45:26 +08:00
Yagiz Nizipli
63c0491ec2 refactor: remove paranthesis expression from printer 2023-06-01 22:45:26 +08:00
Boshen
c01df484db
refactor(hir,syntax): define Precedence for hir expressions 2023-05-29 14:15:14 +08:00
Boshen
6ffc348e34
feat(minifier): initialize constant folding (#393)
Co-authored-by: Wenzhe Wang <mysteryven@gmail.com>
2023-05-28 11:32:10 +08:00
Boshen
b22c62de4f
refactor(minifier): rename expect to test 2023-05-27 13:54:46 +08:00
Boshen
8ea9e38ee5
feat(minifier): remove redundant curly braces from block statements (#390) 2023-05-27 10:52:15 +08:00
Boshen
c4a67b6cfb
feat(minifier): fold return undefined to return (#387) 2023-05-25 22:37:55 +08:00
Boshen
6811d67eb3
refactor(ast): move NumberBase to oxc_syntax; add NumberBase::Float 2023-05-24 18:33:19 +08:00
Boshen
dee09da60b
feat(minifier): implement peephole reorder constant expression from closure compiler (#376) 2023-05-23 12:29:29 +08:00
Boshen
ad33954f52
refactor(ast): remove redundant prefix field from UnaryExpression 2023-05-22 22:32:47 +08:00
Boshen
009fc5f285
feat(minifier): minify Infinity 2023-05-21 22:01:47 +08:00
Boshen
60fc7334db
feat(hir): remove EmptyStatement from hir 2023-05-21 20:20:03 +08:00
Boshen
f8828db68c
feat(semantic2): slot based mangler (#364) 2023-05-20 19:00:57 +08:00
Wenzhe Wang
e6737fdc48
fix(minifier): continue compress left expr (#356) 2023-05-14 13:03:34 +08:00
Wenzhe Wang
7b834d4bd9
fix(minifier): not merge different kinds of declarations. (#353) 2023-05-13 10:51:10 +08:00
Boshen
65a445f512
refactor: move operator to oxc_syntax (#341) 2023-05-08 15:35:01 +08:00