Commit Graph

618 Commits

Author SHA1 Message Date
강동윤
2c477780f0
fix(es): Fix bugs (#2222)
swc_ecma_parser:
 - Don't panic on `typeof import(T)`. (#2198)
 - Fix parsing of ternary. (#2196)

swc_ecma_transforms_base:
 - `fixer`: Handle unary in lhs of an exponentation expression. (#2191)

swc_ecma_transforms_compat:
 - Use variable for `this` in arrow expressions. (#2212)

swc_ecma_visit:
 - Add a trait `InjectVars`.

node_swc:
 - Increease recursion limit while deserializing. (#2223)
2021-09-09 20:45:20 +09:00
강동윤
b4796d9d54
fix: Fix simple bugs (#2220)
swc_ecma_utils:
 - Don't panic on jsx.

swc_ecma_transforms_typescript:
 - Drop type-only reexports. (#2219)
2021-09-09 05:06:03 +00:00
Kitson Kelly
87f30b21a3
feat(common): Add variants to FileName (#2202) 2021-09-03 13:55:31 +09:00
강동윤
77be9f63b9
fix(swc): Improve rust apis (#2197)
swc_ecma_transforms_testing:
 - Make `expected` not affect source map of input.

swc:
 - Accept `before` pass.
2021-09-01 23:34:37 +00:00
강동윤
cb2b0c671f
fix(es/transforms/base): Optimize hygiene (#2193)
swc_ecma_transforms_base:
 - `hygiene`: Don't rename if not required. (#1600)

swc_ecma_minifier:
 - Remove `hygiene_optimizer`.
2021-09-01 13:11:55 +00:00
강동윤
a8cb554be5
feat: Expose .take() (#2190)
swc_common:
 - Add `Take`. (#2189)

swc_ecma_ast:
 - Implement `Take` for ast nodes. 

swc_ecma_transforms_base:
 - Remove `MapWithMut`.
2021-08-31 14:45:48 +00:00
David Sherret
99c35ff980
refactor(es): Use BlockStmt instead Vec<Stmt> for static blocks. (#2188)
swc_ecma_ast:
 - Use `BlockStmt` instead of `Vec<Stmt>` for static blocks.

swc_ecma_parser:
 - Fix span of static blocks.
2021-08-31 16:12:18 +09:00
David Sherret
2f2e35af69
fix(es/parser): Remove static_blocks from TsConfig (#2186) 2021-08-31 14:52:51 +09:00
강동윤
11fe35dbd1
feat(es/minifier): Implement static evaluator (#2176)
swc_ecma_minifier:
 - Add an api to evaluate constants statically.
2021-08-30 05:21:38 +00:00
강동윤
ee16139a19
fix(es/transforms): Fix bugs (#2181)
swc_ecma_transforms_compat:
 - `regenerator`: Fix variable hoisting for for-in/of loops. (#2164)
 - Ensure #2071 is fixed. (#2071)
2021-08-30 04:08:24 +00:00
강동윤
c0b0337d1d
fix(es): Fix easy bugs (#2178)
swc_ecma_parser:
 - Fix parsing of complex arrow expressions in a conditional expression. (#2174)
 - Report an error for wrong jsx, instead of `panic!`. (#2173)

swc_ecma_transforms_react:
 - `jsx`: Handle fragment with single child correctly. (#2177)

swc:
 - Ensure that #2170 is an invalid issue. (#2170)
2021-08-29 20:40:52 +00:00
Sosuke Suzuki
a10118c90f
feat(es/parser, es/codegen, es/visit): Support static blocks in classes (#2130)
swc_ecma_ast:
 - Add support for static blocks in classes.
2021-08-30 00:03:14 +09:00
강동윤
97514a7549
fix(es): Fix some easy bugs (#2166)
swc_ecma_parser:
 - Fix parsing of typescript generics in jsx context. (#2161)

swc_ecma_transforms_base:
 - `fixer`: Handle assignment with patterns in arrow body. (#2163)

swc_ecma_utils:
 - `as_bool`: Handle assignment with operator correctly. (#2165)
2021-08-27 06:03:06 +00:00
강동윤
8c5daeec2a
fix(es/transforms/base): Fix await expressions. (#2157)
swc_ecma_transforms_base:
 - Preserve parenthesis in `await (a || b)`. (#2155)
2021-08-26 13:19:12 +09:00
강동윤
c78baef2cc
fix(es/transforms/compat): Implement new.tartet (#2129)
swc_ecma_transforms_compat:
 - Handle `new.target`. (#1179)
2021-08-22 06:56:49 +00:00
Sosuke Suzuki
e3e2908139
feat(es/parser): Report an early error for await used in wrong contexts (#2098) 2021-08-21 04:46:22 +09:00
Sosuke Suzuki
33bdff0957
feat(es/parser): Emit an error for top-level await in script (#2094)
swc_ecma_parser:
 - Report an error for a top-level await statements.
2021-08-18 00:17:59 +09:00
muji
e84ed13ffe
feat(es/loader): Support more types for browser in package.json (#2060) 2021-08-16 17:34:53 +09:00
강동윤
0e30deba1a
feat(es/minifier): Implement more rules (#2058)
swc_ecma_minifier:
 - Enable some sequential merging if `collapse_vars` is set.
 - Enable sequential merging for top level items.
 - `if_return`: Don't inject `void` if it's not exact function body. (#2072)
 - `sequences`: Add some condition for aborting. (#2078)

swc_ecma_utils:
 - Add `collect_decls`.
 - Add `collect_decls_with_ctxt`.

swc_ecma_transforms_optimization:
 - `inline_globals`: Don't replace if a binding exists. (#1294)
2021-08-15 13:09:21 +00:00
강동윤
f6aabfce9c
perf: Use ahash instead of sip hash (#2073)
swc_common:
 - Add `AHashMap`.
 - Add `AHashSet`.
2021-08-14 10:33:16 +00:00
강동윤
b0c41bb3f2
chore: Cleanup codes for fixture testing (#2070) 2021-08-14 06:34:04 +00:00
강동윤
1b9584cfc0
fix(swc): Fix bugs (#2067)
swc_ecma_transforms_compat:
 - Fix optional chaining. (#2063)

node/swc:
 - Fix definition of `ImportDeclaration`. (#2059)

testing:
 - Allow using `testing` with stable `rustc`.

testing_macros:
 - Add `#[inline(never)]`.
2021-08-13 10:57:25 +00:00
강동윤
883c1ac4e4
fix(bundler): Prepare renaming of bundler (#2066)
- Rename `spack` crate to `swc_node_bundler`. (#1113)
2021-08-13 10:03:04 +00:00
LongYinan
fe2a063525
perf(node/swc): Use mimalloc (#2068) 2021-08-13 18:39:13 +09:00
강동윤
72c9f4373a
fix(es): Fix bugs (#2055)
swc_ecma_parser:
 - Fix panic from span assertion. (#2040)

swc_ecma_transforms_compat:
 - Fix handling of `await for`. (#1918)

swc_ecma_transforms_base:
 - Allow using decorator metadata even if `reflect-metadata` is not imported. (#1362)
2021-08-12 12:28:58 +00:00
muji
cfc3725dbb
feat(bundler): Support paths (#2054)
swc_ecma_ast:
 - Implement more traits for `TargetEnv`.

swc_ecma_loader:
 - `NodeModulesResolver`: Support aliasing.
2021-08-12 14:30:49 +09:00
Iron Lu
a26071f99d
feat(es/transforms): Improve module transform (#2053)
swc_ecma_transforms_module:
 - Make output mockable. (#2049)
2021-08-11 15:32:21 +09:00
muji
2151366b93
feat(es/loader): Support target runtime environment. (#2045)
swc_ecma_ast:
 - Add `TargetEnv`.

swc_ecma_loader:
 - Support specifying target environment.
2021-08-10 15:36:10 +09:00
강동윤
2c52021ed4
fix(es/transforms/module): Fix paths bug. (#2043)
swc_ecma_preset_env:
 - Update compat data.

swc_ecma_transforms_module:
 - Fix `paths`. (#1934, #1935)
2021-08-09 19:21:24 +00:00
강동윤
53b031b019
fix(swc): Fix bugs (#2034)
swc_ecma_transforms_base:
 - `resolver`: Handle constructor properties correctly. (#2021)

swc_ecma_transforms_compat:
 - `block_scoping`: Handle arrows in loops. (#2027)
 - `block_scoping`: Handle nested for loops with function between them. (#2027)
 - `regenerator`: Handle rhs of `||` correctly. (#2024)

swc:
 - Add a test for #1734. (#1734)
2021-08-09 07:38:46 +00:00
강동윤
4cdb45ff2e
feat(swc): Improve swc as a crate (#2026)
]swc_ecmascript:
 - Expose `swc_ecma_preset_env`.

swc:
 - Expose `swc_atoms`.
 - Expose `swc_common`.
 - Expose `swc_ecmascript`.
2021-08-07 02:41:50 +09:00
Iron Lu
403f647752
fix(es/transforms/classes): Fix a bug related to super property access (#1960)
swc_ecma_transforms_classes:
 - Fix super access. (#1959)
2021-08-06 23:20:02 +09:00
강동윤
eb45760697
fix(es/transforms/react): Handle escape correctly (#2014)
swc_ecma_transforms_react:
 - Handle escapes properly. (#2013)
2021-08-05 08:34:28 +09:00
Sosuke Suzuki
a086a203dd
feat(es/parser): Report an error for import.meta in script (#1999) 2021-08-04 14:38:07 +09:00
강동윤
81abfe55d6
fix(es): Fix bugs (#2004)
swc_ecma_codegen:
 - Fix codegen of regexp where `minify` = `true`. (#2000)

swc_ecma_transforms_react:
 - Respect `@jsxImportSource` in `classic` mode. (#1933)

swc:
 - Upgrade `base64`.
2021-08-04 04:58:10 +00:00
강동윤
f44e25c3af
fix(es/minifier): Improve output of minifier (#1990)
swc_common:
 - Add `Span.has_mark`.

swc_ecma_codegen:
 - Emit `1e3` for `1000`.
 - Optimize output. (#1986)

swc_ecma_minifier:
 - name mangler: Don't use keywords as an id.
 - `properties`: Optimize member expression with string properties.
 - `inline`: Inline some function expressions even if it's not fn-local.
 - `analyzer`: Track reassignment correctly.
 - `analyzer`: Track fn-local correctly.
 - `sequences`: Inject `void` if required.
 - `inline`: Inline function declarations correctly.
 - `sequences`: Merge expressions into test of if statements.
 - `sequences`: Reduce calls to an assigned variable.
 - Use `Marks` instead of `&dyn Comments`.


swc_ecma_transforms_optimization:
 - `expr_simplifier`: Fix infinite loops.

node/swc:
 - Ensure that `.transform` performs minification. (#1989)
2021-08-04 00:52:47 +09:00
강동윤
e916b35dd2
feat(node/swc): Support sourceFileName (#1976)
swc:
 - Support `sourceFileName`.
2021-08-03 00:49:34 +09:00
강동윤
b02e189d07
feat(es/minifier): Implement more rules (#1871)
swc_ecma_codegen:
 - Fix codegen of `U+0028` and `U+0029`. 

swc_ecma_minifier:
 - Implement MVP.

swc_ecma_transforms_base:
 - `fixer`: Handle seq/await in rhs of for-of.
2021-07-30 10:11:27 +09:00
David Sherret
d64aa6f80d
fix(es/transforms): Strip out private method overloads (#1977)
swc_ecma_transforms_typescript:
 - `strip`: Remove private method overloads. (denoland/deno#11550)
2021-07-30 08:02:50 +09:00
nuintun
ef4bb314b9
fix(es/codegen): Remove extra space of import decl (#1975)
swc_ecma_codegen:
 - Remove extra space from import declarations. (#1690)
2021-07-29 18:56:59 +09:00
강동윤
4011703af5
fix(testing): Allow using it with stable rustc (#1974)
testing_macros:
 - Make `#[fixture]` relative to cargo manifest dir.
2021-07-29 14:18:21 +09:00
OJ Kwon
af4cbbae23
fix(es/transforms/base): Fix hygiene (#1964)
swc_ecma_transforms_base:
 - `hygiene`: Fix handling of class method parameters. (#1948)
2021-07-26 19:16:39 +09:00
강동윤
85a216ef56
feat(es/parser): Allow stripping out typescript parser (#1962)
swc_ecma_parser:
 - Add a cargo feature to remove typescript parser.
2021-07-25 09:37:59 +00:00
강동윤
204a71ca94
fix(es/transforms): Fix bugs (#1950)
swc_ecma_trasnsforms_base:
 - `fixer`: Don't de-optimize `++foo || bar`.

swc_ecma_trasnsforms_typescript:
 - Allow using properties from a decorated class. (#1869)

swc_ecma_transforms_optimization:
 - Fix infinite loop. (#1901, #1946)
2021-07-22 07:33:00 +00:00
강동윤
ebdd04d7c7
fix(es/transforms/typescript): Fix typescript stripper (#1945)
swc_ecma_transforms_typescript:
 - Fix usage detection logic. (denoland/deno#10684)
2021-07-21 14:24:57 +00:00
강동윤
21848ce2ea
fix(es/transforms): Fix passes related to optimizations (#1942)
swc_ecma_transofrms_base:
 - `fixer`: Handle `in`.
 - `fixer`: Handle `in` in the head of for statements.
 - `fixer`: Optimize `- (1 / 0)`.
 - `fixer`: Optimize `void 0 === a`.
 - `fixer`: Optimize `a-- && b = c`.
 - `fixer`: Don't de-optimize if statements.
 - `fixer`: Fix handling of if statements.

swc_ecma_transforms_optimization:
 - `dead_branch_remover`: Preserve `var`s in dropped switch cases.
2021-07-20 11:07:36 +00:00
OJ Kwon
de24ff275d
fix(es/transforms/module): Allow namespace import with default import (#1940)
swc_ecma_transforms_module:
 - Allow using a namespace import specifier with a default import specifier. (#1938)
2021-07-20 18:00:27 +09:00
강동윤
ff47e2539e
fix(swc): Fix bugs (#1932)
swc_common:
 - Fix handling of input source map. (#1930)

swc:
 - Respect `paths`. (#1858)

node:
 - Fix typings of `paths`.
2021-07-17 11:16:00 +00:00
강동윤
a26a18989f
fix(es/transforms): Allow using rest pattern in arrow functions. (#1926)
swc_ecma_transforms_compat:
 - `parameters`: Allow using rest pattern within arrow functions.
2021-07-16 07:05:00 +00:00
강동윤
7a8ad8826a
fix(es/transforms): Fix fixer (#1919)
swc_ecma_transforms_base:
 - `fixer`: Allow using await expressions as a callee of a new expression.
2021-07-14 22:43:17 +09:00