Donny/강동윤
2156364121
fix(es/transforms/base): Fix hygiene
( #2282 )
...
swc_ecma_transforms_base:
- `hygiene`: Handle decl-ref conflict. (#2211 )
2021-09-22 06:56:04 +00:00
Donny/강동윤
e5f46a6800
fix(wasm): Fix bugs ( #2279 )
...
swc:
- Ensure that #2281 is fixed. (#2281 )
wasm:
- Fix `baseUrl` and `paths` support.
- Apply `hygiene` pass.
2021-09-21 15:24:03 +00:00
Pig Fang
4d500baaaa
fix(es/transforms/compat): Move the optional catch binding pass to ES2019 ( #2247 )
...
swc_ecma_transforms_compat:
- Move optional chaining pass to `es2019`.
Co-authored-by: Donny <kdy1997.dev@gmail.com>
2021-09-21 21:54:51 +09:00
Donny/강동윤
180dc31550
fix(es/transforms/base): Fix hygiene
pass ( #2266 )
...
swc_ecma_transforms_base:
- `hygiene`: Consider nested scopes correctly. (#2211 )
- `hygiene`: Fix handling of constructors.
2021-09-21 12:21:49 +00:00
Fábio Santos
3f306f0b79
fix(es/minifier): Don't drop used variables ( #2272 )
...
swc_ecma_minifier:
- Don't drop used variables. (#2262 )
Co-authored-by: Donny/강동윤 <kdy1997.dev@gmail.com>
2021-09-21 16:45:28 +09:00
Fábio Santos
406fa3fc78
feat(es/minifier): Add CLI for debugging ( #2273 )
...
swc_ecma_minifier:
- Add a binary to help development.
2021-09-20 15:25:51 +09:00
David Sherret
8e0a5450b1
fix(es/codegen): Emit static
before readonly
( #2271 )
2021-09-19 16:28:33 +09:00
강동윤
ce01b8a9b7
fix(es): Fix bugs ( #2256 )
...
swc_ecma_codegen:
- Fix source map of string literals. (#2253 )
swc_ecma_transforms_typescript:
- Allow using same name for a module with function. (#2243 )
2021-09-18 07:52:08 +00:00
강동윤
f087d1515b
fix(es/transforms/testing): Fix comparing logic ( #2263 )
...
swc_ecma_transform_testing:
- Fix comparing logic.
2021-09-16 20:21:09 +09:00
강동윤
e2d8465565
fix(es/codegen): Fix codegen of ` in synthesized template literals ( #2260 )
...
swc_ecma_codegen:
- Fix codegen of ` in synthesized template string literals.
2021-09-16 09:26:02 +00:00
강동윤
20ce326909
feat(es/minifer): Improve minifier ( #2229 )
...
swc_ecma_minifier:
- `if_return`: Allow side-effect-free statements to come after `if_return`.
- `collapse_vars`: Move variables without init to first.
- `analyzer`: Remove useless fields.
- Don't drop `return` tokens if there's a finally block.
- `drop_return_value`: Drop side-effect-free return arguments.
- `make_sequences`: Don't inject `void 0` to return args.
- `if_terminate`: Move to the pure optimizer.
- Fix a bug related to `RegExp`.
2021-09-16 04:23:33 +00:00
강동윤
6f33c327cb
fix(es/transforms): Fix bugs ( #2249 )
...
swc_ecma_transforms_compat:
- Fix `this` in class properties. (#2228 )
swc_ecma_transforms_typescript:
- Handle `import =` correctly. (#2234 )
- Ensure that #1653 is not the case anymore. (#1653 )
swc:
- Ensure that #2232 is not the case. (#2232 )
2021-09-15 07:46:03 +00:00
Iron Lu
6e12ef0306
fix(es/transforms/compat): Add new.target
to es5
( #2231 )
2021-09-13 15:51:17 +09:00
강동윤
9eafd0c6c4
fix(es/loader): Fix support for jsc.paths
. ( #2227 )
...
swc_ecma_loader:
- `TsConfigResolver`: Use `baseUrl`. (#2050 )
swc:
- Change type of `JscConfig.base_url` to `PathBuf`.
testing:
- Improve `NormalizedOutput::compare_to_file`.
2021-09-10 12:29:26 +00:00
강동윤
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
강동윤
c8b46bf6db
feat(es/minifier): Implement more rules ( #2183 )
...
swc_ecma_codegen:
- Don't panic on `Pat::Invalid`.
- Fix codegen of unary minus. (#2213 )
swc_ecma_minifier:
- Remove identifier of function expressions if a variable with same name exists.
- `sequences`: Merge into the argument of a throw statement.
- Use `ignore_return_value` for `void` expressions.
- Improve inlining.
- Drop last `return` if the return value is not used.
- `sequences`: Merge `c++; use(c)` as `use(++c)`.
- `sequences`: Merge assignments with an operator.
- `comparisons`: Optimize the comparison operator if type is equivalent.
- Fix `negate_cost`.
- `unused`: Fix order or variable initalizer when variables are dropped.
- Fix `top_retain` option.
- `if_return`: Don't merge nested if it's wrong to do so. (#2214 )
- Fix negation of `if_return`.
2021-09-08 09:45:39 +00:00
Sosuke Suzuki
cbc8230310
fix(es/parser): Fix parsing of static blocks ( #2200 )
...
swc_ecma_parser:
- Fix parsing of static blocks with line breaks. (#2195 )
2021-09-03 14:57:23 +09: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
muji
361bc70065
fix(es/loader): Improve handling of base_dir
( #2182 )
2021-08-30 21:21:52 +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
Sosuke Suzuki
b2c99719fd
feat(es/parser): Add tests for static blocks ( #2180 )
...
swc_ecma_parser:
- Add tests for multiple static blocks in a class.
2021-08-30 12:45:41 +09: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
muji
5d702835e8
fix(es/loader): Fix node resolver ( #2172 )
...
swc_ecma_module_loader:
- Use correct base directory.
2021-08-29 17:47:15 +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
David Sherret
3d58457027
refactor(es/dep_graph): Use dyn
instead of impl
( #2119 )
...
swc_ecma_dep_graph:
- Use `dyn` instead of `impl` in `analyze_dependencies`.
2021-08-27 13:08:48 +09: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
강동윤
427df9a979
fix(es/codegen): Fix sourcemap ( #2142 )
...
swc_ecma_codegen:
- Use span for `await` token.
- Use span for debugger statements.
- Use span for object literals.
- Use span for object patterns.
- Use span for array literals.
- Use span for `try`.
- Use span for `for`.
- Use span for `return`.
- Use span for `break`.
- Use span for `continue`.
- Use span for `this`.
- Use span for `switch`.
- Use span for `catch`.
- Use span for `case`.
- Use span for `function`.
- Use span for unary expressions.
swc_ecma_minifier:
- Normalize sequences expressions if the length is 1.
2021-08-25 08:23:55 +00:00
Shinobu Hayashi
78a7c6befe
chore(es/parser): Update an error message ( #2148 )
...
swc_ecma_parser:
- Update an error message to match one of `tsc`.
2021-08-25 17:02:14 +09:00
강동윤
584c44a490
feat(es): Reexport minifier from swc_ecmascript
( #2146 )
2021-08-24 20:38:16 +00:00
강동윤
838a7a8b33
fix(es/minifier): Make use of hygiene optimizer ( #2145 )
...
swc_ecma_ast:
- Implement `Display` for `Ident`.
swc_ecma_minifier:
- Expose `unique_scope`, which is required for `hygiene_optimizer`.
- Improve `hygiene_optimizer`.
swc:
- Use hygiene optimizer. (#1600 , #2137 )
- Add `jsc.experimental.optimizeHygiene`
2021-08-24 15:03:31 +00: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
강동윤
6896a83d54
fix(es/codegen): Fix codegen of ~
( #2104 )
...
swc_ecma_codegen:
- Emit pending semi on `~`. (#2091 )
2021-08-19 17:21:08 +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
강동윤
879a0f39a8
feat(swc): Implement format.comments
of terser ( #2095 )
...
swc:
- `minify`: Support `format.comments`.
- `process_js`: Support `jsc.minify.format.comments`.
2021-08-17 14:34:37 +00:00
강동윤
a309b36236
fix(es/transforms): Fix bugs ( #2089 )
...
swc_ecma_minifier:
- Expose hygiene optimizer.
- `mangle_names`: Handle private names in member expressions. (#2086 )
swc_visit:
- Make `Optional::new` const function.
swc:
- Make `es3` optional via cargo feature.
- Ensure that #1554 is already fixed. (#1554 )
2021-08-16 10:33:18 +00: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
강동윤
1b0ef756f2
fix(es/parser): Allow using parser with stable rustc ( #2084 )
...
swc_ecma_parser:
- Don't use `#![feature]` for non-test builds. (#2083 )
2021-08-15 10:01:08 +00:00
강동윤
949a4d9716
fix(es): Fix simple bugs ( #2077 )
...
swc_ecma_visit:
- Ensure that #1967 is wrong. (#1967 )
swc:
- Add a test for #1107 . (#1107 )
node:
- Make optional fields optional. (#1947 )
2021-08-14 18:34:14 +00:00
강동윤
b0067adb9c
fix(es/parser): Fix parsing of function
in property names ( #2076 )
...
swc_ecma_parser:
- Use correct token context when `function` is used as the name of a property. (#2075 )
2021-08-14 15:12:26 +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
강동윤
a7cb2aba9d
fix(es/minifier): Fix bugs of the minifier ( #2052 )
...
swc_ecma_minifier:
- Test mangler using execution test suite.
- `mangler`: Preserve `arguments`.
- `mangler`: Handle shorthand. (#2051 )
- `mangler`: Handle object pattern properties.
- `precompress`: Don't drop function declarations if the variable with same name is in different scope. (#2011 )
2021-08-11 07:24:52 +00: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
강동윤
71080dbd26
feat(es/minifier): Implement more rules ( #2039 )
...
swc_ecma_minifier:
- Remove useless `0` in sequence expressions.
- `analyzer`: Don't treat fn decl as fn expr.
- `sequences`: Use sequence expressions in front of `b`.
- `if_return`: Drop else token within same pass. (#2044 )
- Fix counting logic for `pass`. (#2044 )
- `analyzer`: Fix `ref_count`.
- `hygiene`: Implement `visit_prop_name`.
- `ignore_return_value`: Property access to function parameters may have side effects.
- `inline`: Treat `!0` as literal.
- Remove some dead codes if `unused` is enabled.
swc_ecma_utils:
- Fix `may_have_side_effects`.
2021-08-10 08:52:28 +00: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
강동윤
8cbbddb957
fix(es/parser): Recover from import.meta
in scripts ( #2042 )
...
swc_ecma_parser:
- Recover from `import.meta` in scripts. (#2041 )
- Allow `import.meta` when using `parse_program`.
2021-08-09 16:13:41 +00:00
Sosuke Suzuki
4ead801295
refactor(es/parser): Cleanup ( #2033 )
...
swc_ecma_parser:
- Use `tok!` macro.
2021-08-09 23:21:43 +09: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
강동윤
9793926cc8
fix(es/minifier): Fix bugs and implement more rules ( #2032 )
...
swc_ecma_minifier:
- Fix an infinite loop. (#2028 )
- Don't remove span hygiene. (#2022 )
swc_ecma_codegen:
- Fix codegen of `return` with `async` arrow. (#2020 )
swc:
- Respect `minify = false`. (#2019 )
2021-08-08 14:19:04 +00:00
Sosuke Suzuki
f4e0e91f64
feat(es/parser): Always enable features in ES spec ( #2029 )
2021-08-08 22:53:41 +09:00
강동윤
026c21ec68
feat(es/minifier): Make minifier parallel ( #2009 )
...
swc_ecma_minifier:
- Introduce `bundle` mode, which can be used to parallelize processing of bundled files.
- Add a function analyzer that checks if the function references something from the outer scope.
- Split out parellsizable passes.
- Split `optimzer` into pure / non-pure.
- Run pure optimizations in parallel.
2021-08-07 08:27:52 +00:00
Sosuke Suzuki
8a39c1db97
fix(es/parser): Use correct error message ( #2025 )
...
swc_ecma_parser:
- Use correct error message for import statements in a script.
2021-08-07 16:43:23 +09: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
강동윤
48bc26d3c9
fix(es): Fix codegen & minifier ( #2006 )
...
swc_ecma_codegen:
- Emit a semicolon before `!`.
- Emit a semicolon before `[`. (#2007 )
swc_ecma_minifier:
- Disable buggy passes.
- `iife`: Don't inline async functions. (#2007 )
2021-08-04 10:27:17 +00:00
강동윤
68608db0b3
fix(es/minifier): Improve output of minifier ( #2005 )
...
swc_ecma_minifier:
- Don't reorder import statements.
2021-08-04 07:20:02 +00: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
강동윤
a4fb114821
fix(ci): Fix CI ( #2003 )
2021-08-04 03:31:17 +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
강동윤
be23e66ca8
fix(es/minifier): Fix minifier ( #1985 )
...
swc_ecma_minifier:
- Don't create an identifier starting with number. (#1983 )
- Fix panic. (#1984 )
- Don't use time api on wasm. (#1982 )
2021-07-31 13:34:16 +00:00
강동윤
d1c481790c
feat(swc): Expose minifier api ( #1978 )
...
swc_ecma_codegen:
- Fix codegen of imports when minification is enabled.
swc_ecma_minifier:
- Mangle identifiers used by imports.
swc:
- Support specifing `jsc.minify`. (#704 , #1371 )
swc/node:
- Add `.minify()`.
- Add `.minifySync()`.
swc/wasm:
- Add `.minifySync()`.
2021-07-31 06:30:06 +00: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
강동윤
39ee7b962d
fix(es/codegen): Fix codegen of template literals ( #1936 )
...
swc_ecma_codegen:
- Fix codegen of template literals. (Closes #1791 )
2021-07-20 14:11:33 +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
David Sherret
6dc6d8a847
refactor(es/dep-graph): Remove SourceMap dependency ( #1908 )
2021-07-14 00:59:13 +09:00
Iron Lu
d13eff99d8
fix(es/transforms/proposal): Fix order of constructor statements ( #1914 )
...
swc_ecma_transforms_proposal:
- `decorators`: Fix order. (#1913 )
2021-07-13 22:32:45 +09:00
강동윤
104be9837b
fix(es/transforms): Fix transforms ( #1909 )
...
swc_ecma_transforms_compat:
- `regenerator`: Use es6 import while folding module. (#1641 )
- `typeof_symbol`: Handle `undefined` specially. (#1843 )
- `regenerator`: Do not create useless codes. (#1687 )
- `typeof_symbol`: Migrate to `VisitMut`.
swc_ecma_transforms_module:
- Add `import_hoister`.
- Improve import analyzer. (#1682 )
- Allow overriding `export *` wth named exports. (#1714 )
swc_ecma_transforms_testing:
- Add a hack for `regenerator-runtime`.
swc:
- Run import analyzer ahead of time. (#1682 )
misc:
- Downgrade rustc to the version rust-analyzer supports.
2021-07-10 11:18:28 +00:00
OJ Kwon
480287aec4
fix(es/transforms/compat): Fix regenerator ( #1906 )
...
swc_ecma_transforms_compat:
- `regenerator`: Handle labeled continue jumps. (#1892 )
2021-07-09 14:13:16 +09:00
강동윤
03be315921
fix(es/transforms): Fix decorator bugs ( #1905 )
...
swc_ecma_transforms_proposal:
- Initialze decorators lazily. (#1278 )
2021-07-08 20:48:07 +09:00
강동윤
69186eb74d
fix(es/transforms): Fix transforms ( #1900 )
...
node-swc:
- Use proper field name in `ObjectPattern`. (#1886 )
swc_ecma_codegen:
- Fix codegen of private properties. (#1898 )
swc_ecma_transforms_compat:
- Fix optional chaining expressions in a single-line arrow expression. (#1836 )
- `regenerator`: Preserve `ExportDefaultDecl`. (#1799 )
swc_ecma_transforms_module:
- Fix `export default function`. (#1799 )
2021-07-08 04:54:57 +00:00
강동윤
fe7f7b691b
fix(es/transforms/base): Fix ts_resolver ( #1903 )
...
swc_ecma_transforms_base:
- `ts_resolver`: Handle class declarations properly.
2021-07-07 15:45:45 +00:00
David Sherret
ed274b02f2
fix(es/parser): Fix parsing of file with onlly shebang ( #1896 )
2021-07-07 17:41:58 +09:00
OJ Kwon
6037332cb4
fix(es/transforms/compat): Handle nested optional chaining expression ( #1899 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-07-07 17:41:03 +09:00
강동윤
35af4c5186
chore: Publish v1.2.63 & Update rustc ( #1894 )
2021-07-05 12:51:09 +00:00
강동윤
211e208219
fix(node-swc): Fix visitor ( #1890 )
...
node/binding:
- Fix visitor methods for array elements. (#1819 , #1888 )
- Fix for const assertion. (#1625 )
- Verify object properties. (#906 )
2021-07-04 12:35:25 +00:00
Austaras
76341068d0
fix(es/ast): Fix handling of reserved words ( #1891 )
2021-07-04 19:44:33 +09:00
Simon Rask
14cee03a43
fix(es/parser): Allow using '>' and '<' in template literal types ( #1885 )
...
swc_ecma_parser:
- Allow using `<` and `>` in template literal types. (#1862 )
2021-07-03 20:44:06 +09:00
David Sherret
534c0b19c8
fix(es/parser): Make comments in empty file be in leading comments ( #1879 )
2021-07-03 12:19:30 +09:00
강동윤
ab161793a1
fix(es/transforms/optimization): Migrate to VisitMut ( #1880 )
...
swc_ecma_transforms_optimization:
- Migrate `expr_simplifier` to `VisitMut`.
- Migrate `dead_branch_remover` to `VisitMut`.
2021-07-02 12:20:24 +09:00
Austaras
1a01d0f2c5
fix(es/transform/react): Handle TypeScript declare module ( #1875 )
...
swc_ecma_transforms_module:
- Handle typescirpt declare module. (#1865 )
2021-07-02 10:07:34 +09:00
강동윤
33a43f85b1
feat(es/minifier): Implement more rules ( #1766 )
...
swc_ecma_minifier:
- Implement more rules.
swc_ecma_transforms_base:
- `resolver`: Fix syntax context of catch block.
swc_ecma_transforms_optimization:
- `expr_simplifier`: Fix a bug related to `this` of call expressions.
- `dead_branch_remover`: Don't reduce switch cases if test is now known.
- `dead_branch_remover`: Don't break `&&`.
2021-06-29 16:11:22 +09:00
Iron Lu
f8a3df8cc3
fix(es/transforms/module): Fix for duplicate export ( #1846 )
2021-06-29 15:12:18 +09:00
강동윤
eaaf32d806
feat(es/loader): Add more logics to tsconfig.paths handler ( #1860 )
2021-06-27 07:19:05 +00:00
Vladimir Guguiev
7488950f90
fix(es/parser): Fix span of ExportDefaultDeclaration ( #1818 )
2021-06-27 11:02:45 +09:00
강동윤
33f2ab2d79
fix(es/transforms): Fix transforms ( #1861 )
...
swc_ecma_transforms_compat:
- Organize logical assignment pass correctly.
swc_ecma_transforms_optimization:
- `dead_branch_remover`: Handle nullish coalescing operator correctly. (#1851 )
2021-06-26 16:02:15 +09:00
Moti Zilberman
5345c90989
fix(es/transforms/base): Fix fixer for the call in callee position ( #1857 )
2021-06-26 13:12:26 +09:00
강동윤
098e48b8f3
fix(es/codegen): Preserve more comments ( #1856 )
...
swc_ecma_codgen:
- Print more comments. (#1165 )
2021-06-26 02:07:11 +09:00
강동윤
737ce63b78
chore(es/ast): Bump version ( #1853 )
2021-06-25 08:19:15 +00:00
Maxime Guerreiro
c5f1c6b8ba
chore(es/ast): Upgrade arbitrary crate to v1 ( #1844 )
...
swc_ecma_ast:
- Upgrade arbitrary crate.
2021-06-25 14:40:51 +09:00
강동윤
4cd43375a5
feat(swc): Add import resolvers ( #1834 )
...
swc_ecma_loader:
- Add `Resolve`.
- Add `TsConfigResolver`.
swc_ecma_transforms_module:
- Use `Resolve` for remapping import paths.
- Add `ImportResolver`.
- Add `NodeImprortResolver`.
swc:
- Add `paths` to `.swcrc`.
- Use `paths`. (#379 , #702 )
- Canonicalize file names.
2021-06-24 06:32:09 +00:00
Andrew Bradley
a31ca40dbb
fix(es/transforms/module): Share usage data between passes ( #1829 )
...
swc_ecma_transforms_module:
- Share scope data between import analyzer and module passes.
2021-06-24 13:37:30 +09:00
강동윤
6ad3f7b90e
feat(es/visit): Groundwork to use VisitMut instead of Fold ( #1842 )
...
swc_ecma_transforms:
- Expose `VisitMut` if possible.
swc_ecma_visit:
- Implement `VisitMut` for` Folder<V>`.
- Implement `VisitMut` for `AndThen<A, B>`.
2021-06-23 04:18:41 +00:00
강동윤
6c492796d0
fix(es/parser): Fix parsing of abstract class over multiple lines ( #1837 )
...
swc_ecma_parser:
- Don't allow `abstract` and `class` to be on different lines.
2021-06-20 14:17:40 +00:00
Austaras
11f75dfdcd
fix(es/utils): Fix detection of used variables ( #1835 )
2021-06-20 14:33:19 +09:00
강동윤
5a6c4fd5a0
fix(swc): Fix sourcemap ( #1832 )
...
swc_common:
- `SourceMap`: Don't panic for dummy spans.
swc_ecma_codegen:
- Use span for `throw`. (#1685 )
- Use span for `var` / `let` / `const`.
- Use span for `new`.
- Use span for `if`.
- Add spans to braces of a block statement. (#1796 )
swc_ecma_transforms_compat:
- `parameters`: Don't drop the span of block statements. (#1796 )
swc:
- Allow specifying input source map in `.swcrc`.
- Ensure that the inline source map works properly. (#1713 )
2021-06-18 11:34:17 +00:00
Andrew Bradley
9ae8c47d9b
fix(es/transforms/module): Allow importing same module with multiple names ( #1830 )
2021-06-18 12:25:05 +09:00
강동윤
f9bdc7b227
fix(es/parser): Fix panic on debug mode ( #1828 )
...
swc_ecma_parser:
- Handle undefined unicode code point gracefully. (#1813 )
2021-06-16 15:55:20 +09:00
강동윤
b5a7a3f577
fix(es/transforms/optimization): Fix dead_branch_remover ( #1827 )
...
swc_ecma_transforms_optimization:
- Preserve side effects of a while statement even if it's a infinite loop. (#1825 )
2021-06-16 14:30:33 +09:00
강동윤
4c8d68bfe2
fix(es): Improve handling of typescript ( #1824 )
...
swc_ecma_codegen:
- Implement more code generator for typescript ast nodes.
swc_ecma_transforms_base:
- Mark LHS of typescript import equals as a variable instead of a type.
2021-06-15 01:13:06 +09:00
muji
8d8b2d10d4
fix(es/parser): Fix parsing of line terminators ( #1755 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-06-15 00:39:03 +09:00
강동윤
7fa4e1bea5
fix(es): Fix bugs for the type checker ( #1823 )
...
swc_ecma_codegen:
- Fix codegen of constructor signatures.
swc_ecma_parser:
- Fix lexing of long numeric literals.
2021-06-13 12:24:30 +09:00
강동윤
001af8637d
fix(es/parser): Fix lexing of numbers ( #1821 )
...
swc_ecma_parser:
- Fix lexing of long numeric literals.
2021-06-12 08:47:13 +00:00
강동윤
d3944f5203
fix(swc): Fix bugs ( #1820 )
...
swc_ecma_preset_env:
- [x] Rename directory to be consistant.
- [x] Add es2020::operators. (#1812 )
swc_ecma_transforms_react:
- [x] Don't escpae unicodes. (#1782 )
2021-06-12 15:39:39 +09:00
강동윤
3c3fb359ee
fix(es): Remove UB ( #1815 )
...
swc_ecma_parser:
- Remove UB.
swc_ecma_codegen:
- Remove codes related to the UB of the parser. (#1782 )
2021-06-12 05:17:09 +00:00
강동윤
97ef7c0553
fix(swc): Fix bugs ( #1811 )
...
swc_ecma_ast:
- Add `es2021`.
swc_ecma_transforms_compat:
- Handle `||=`. (#1788 )
2021-06-11 16:55:34 +09:00
강동윤
c56115793c
fix(es/parser): Fix parser ( #1808 )
...
swc_ecma_parser:
- Allow large numeric literals. (#1803 )
- Allow long numeric literals. (#1806 )
2021-06-09 23:02:13 +09:00
강동윤
7730a6ea5a
fix(es/transforms): Fix bugs ( #1795 )
...
swc_ecma_transforms_compat:
- `async_to_generator`: Handle await in async generators correctly. (#1752 )
swc_ecma_transforms_module:
- Don't panic on double import from one module. (#1757 )
2021-06-06 22:16:59 +09:00
강동윤
03db7adc9f
fix(es/transforms/base): Wrap binary operands of unary expressions. ( #1793 )
...
swc_ecma_transforms_base:
- `fixer`: Handle binary operands of unary expressions correctly. (#1789 )
2021-06-05 12:58:50 +00:00
강동윤
0bd2a3a07e
fix(es/transforms): Fix bugs ( #1783 )
...
swc_ecma_transforms_base:
- `fixer`: Wrap operand of a unary expression if it's a binary expression. (#1781 , #1789 )
swc_ecma_transforms_module:
- Allow multiple `export *` even if it has the same item. (#1780 )
2021-06-05 11:13:42 +09:00
강동윤
ad55711e45
fix(es/transforms): Fix bugs ( #1769 )
...
swc_ecma_transforms_optimization:
- `dce`: Mark references from decorator as usage. (denoland/deno#10789)
swc_ecma_transforms_proposal:
- Allow using `super` in decorated class methods. (#846 )
2021-05-30 19:52:51 +09:00
Shinobu Hayashi
5d219b8cd1
fix(es/codegen): Fix codegen of classes with minify enabled ( #1767 )
2021-05-30 15:05:14 +09:00
Shinobu Hayashi
65ffd87771
fix(es/parser): Report error for wrong declare keywords ( #1760 )
...
swc_ecma_parser:
- Report `TS1031`.
2021-05-29 16:51:52 +09:00
강동윤
99e738643a
feat(es/minifier): Implement rules and classify tests ( #1750 )
...
swc_ecma_minifier:
- Classify tests so we can focus on MVP.
2021-05-28 19:44:03 +09:00
강동윤
9fa878c1a6
fix(es/transforms/base): Fix ts_resolver ( #1761 )
...
swc_ecma_transforms_base:
- `ts_resolver`: Handle type-only imports properly. (denoland/deno_lint#705 )
2021-05-28 14:04:00 +09:00
강동윤
c79db252dc
fix(swc): Fix bugs ( #1753 )
...
swc_ecma_parser:
- Allow class members to be declared. (#1751 )
node-swc:
- Fix typescript type definitions. (#1746 )
2021-05-27 11:59:04 +09:00
강동윤
8726c9caf2
fix(swc): Fix bugs ( #1745 )
...
swc_ecma_codegen:
- Don't escape unicode characters for old targets. (#1744 )
swc_ecma_transforms_compat:
- `class_properties`: Preserve `this` for tagged template literals. (#1742 )
2021-05-26 01:24:58 +09:00
강동윤
ef6a745599
feat(es/minifier): Implement more rules ( #1735 )
...
swc_ecma_minifier:
- Implement `evaluate` partially.
- Store 'expected output' from terser along with our result.
swc_ecma_transforms_base:
- `fixer`: Don't wrap `+ (a % b)`.
swc_ecma_transforms_optimization:
- `expr_simplifier`: Preserve this in calls.
2021-05-25 16:39:07 +09:00
강동윤
d60c3242af
fix(swc): Fix bugs ( #1739 )
...
swc_bundler:
- Fix cycle detection for complex circular imports. (denoland/deno#10752 )
swc_ecma_transforms_typescript:
- Allow using large values for an enum variant.
2021-05-25 14:30:17 +09:00
강동윤
a795de7f43
fix(swc): Fix bugs ( #1732 )
...
swc_ecma_transforms_react:
- Escape some characters. (#1661 )
swc_ecma_transforms_compat:
- `regenerator`: Handle `||` properly. (#1684 )
2021-05-24 09:41:22 +00:00
강동윤
5e2db21e47
feat(es/minifier): Implement more rules ( #1731 )
...
swc_ecma_codegen:
- Don't panic while checking if 2 dots are required.
swc_ecma_minifier:
- Implement some rules related to the option `evaluate`.
- Implement some rules related to strings.
- Implement some rules related to numbers.
swc_ecma_transforms_base:
- `fixer`: Handle `- (1 / 0)`.
- `fixer`: Handle `(void 0)(0)`.
2021-05-23 15:39:59 +09:00