Donny/강동윤
e46a842e99
feat(es/parser, es/transform): Implement ergonomic brand checking ( #2079 )
...
swc_ecma_parser:
- Implement parsing of private properties in object literals.
swc_ecma_transforms_base:
- `fixer`: Handle `const [a = (b, c)]`.
swc_ecma_transforms_compat:
- `class_properties`: Support ergonomic brand checks. (#2064 )
swc_ecma_transforms_proposal:
- Implement ergonomic brand checks for private fields. (#2064 )
2021-09-27 08:03:48 +00:00
Donny/강동윤
ca0d6ddf2e
fix(es/parser): Fix bugs ( #2255 )
...
swc_ecma_parser:
- Treat `{` after an arrow as a brace stmt. (#2237 )
- Handle comments correctly while backtracking. (#2264 )
2021-09-23 11:32:40 +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
Heyang Zhou
b82702cf0f
fix(swc): Remove global side effects for rust users. ( #2270 )
...
swc:
- Don't enable `log/release_max_level_info`.
- Don't depend on `swc_node_base`.
2021-09-19 17:05:36 +09:00
강동윤
48d61039d2
fix(common, node/swc): Allow inlining sourcesContent
( #2245 )
...
swc_common:
- Allow setting `sourceContents` of source map files. (#2218 )
swc:
- Support `inlineSourceContents`. (#2244 )
2021-09-14 02:31:32 +00: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
강동윤
9ffe47106a
fix(swc): Fix target
( #2226 )
...
swc:
- Fix `target` option. (#2225 )
2021-09-10 15:43:14 +09: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
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
강동윤
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
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
강동윤
d975a197c9
fix(es): Fix source map ( #2159 )
...
swc:
- Fill `names` of sourcemap.
- Don't add `sourceContents` to sourcemap if `sources` is added.
node_swc:
- Handle source map for `minify` correctly.
- `minify`: Accept `{ filename: code }`.
2021-08-26 10:44:38 +00:00
강동윤
e468752ebc
fix(es/minifier): Fix usage via yarn resolution ( #2158 )
...
swc_common:
- Deprecate some unused types.
swc:
- `BoolOrObject`: Improve the error message for deserialization failure.
- `BoolOrObject`: Treat an empty object as `true`.
- `JsMinifyFormatOptions`: Add fields. (#2153 )
node_swc:
- Improve error message for deserialization failure.
2021-08-26 06:18:59 +00:00
강동윤
18e2232dbc
feat(plugin): Groundwork for rust plugin system ( #1893 )
2021-08-25 15:07:09 +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
강동윤
c05a724d84
feat(css): Port stylis ( #2131 )
...
swc_css_ast:
- Add `Value::Comma`.
swc_css_parser:
- Implement more `Parse<T>`.
- Fix parsing of values separated with comma.
swc_css_codegen:
- Fix escaping.
- Fix codegen of `!important`.
swc_stylis:
- Port prefixer.
2021-08-23 12:42:13 +00: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
강동윤
d39acd1d11
feat(css): Implement parser ( #2074 )
2021-08-19 05:16:32 +00: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
강동윤
f6aabfce9c
perf: Use ahash instead of sip hash ( #2073 )
...
swc_common:
- Add `AHashMap`.
- Add `AHashSet`.
2021-08-14 10:33:16 +00:00
강동윤
c6dce67494
fix(swc): Report error correctly ( #2065 )
...
swc_common:
- Add some utilities for `Handler`.
swc:
- Remove `Compiler.handler`.
- Accept `handler` for each operations. (#2035 )
2021-08-13 07:05:40 +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
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
강동윤
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
강동윤
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
강동윤
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
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
강동윤
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
강동윤
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
강동윤
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
강동윤
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
David Sherret
6dc6d8a847
refactor(es/dep-graph): Remove SourceMap dependency ( #1908 )
2021-07-14 00:59:13 +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
강동윤
19bcb06f73
fix(swc): Fix source path of a source map file ( #1902 )
...
swc:
- Use `output_path` to make sourcemap path relative to the `.map` file. (#1255 )
2021-07-08 07:32:06 +00:00
Austaras
76341068d0
fix(es/ast): Fix handling of reserved words ( #1891 )
2021-07-04 19:44:33 +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
강동윤
737ce63b78
chore(es/ast): Bump version ( #1853 )
2021-06-25 08:19:15 +00:00
강동윤
ff440d47a4
chore: Organize project ( #1849 )
2021-06-24 17:01:21 +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
강동윤
f4249574da
feat(ci): Track binary size and performance ( #1840 )
2021-06-23 10:50:27 +00: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
강동윤
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
강동윤
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
강동윤
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
강동윤
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
Pig Fang
1dbc3644a5
feat(es): Support type-only import equals declaration ( #1695 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-05-15 14:26:24 +09:00
Pig Fang
1548f6d799
feat(es/parser): Allow override
in parameter properties ( #1667 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-05-09 22:17:58 +09:00
Pig Fang
4aed9423de
fix(es/parser): Allow using override
with static
( #1663 )
2021-05-09 21:04:42 +09:00
Niklas Mischkulnig
f4d0e46cbb
feat(es/transforms/compat): Add pure comment to classes ( #1646 )
...
swc_ecma_transforms_compat:
- Add pure annotations while tranpiling classes.
2021-05-08 15:47:20 +09:00
강동윤
82ef06afb8
feat(babel/compat): Improve performance of babelify ( #1626 )
...
swc_babel_compat:
- Optimize.
swc:
- Improve performance of comment storage.
2021-05-06 14:56:54 +09:00
강동윤
d10671bbda
fix(swc): Fix various bugs. ( #1632 )
...
swc_ecma_transforms_typescript:
- Fix import analyzer. (denoland/deno#10462 )
2021-05-03 13:34:13 +09:00
강동윤
5a0bacb5b8
fix(swc): Fix various bugs ( #1613 )
...
swc_ecma_codegen:
- Fix codegen of `\x00`. (#1619 )
swc_ecma_preset_env:
- Fix order of core-js imports. (#1605 )
swc_ecma_transforms_react:
- Preserve ` `. (#1446 )
swc:
- Upgrade dashmap. (#1616 )
2021-04-28 14:49:21 +09:00
강동윤
46c3d62ebd
fix(swc): Fix bugs ( #1560 )
...
spack:
- Ensure that #1533 is fixed. (#1533 )
swc_ecma_parser:
- Support `async override` in classes. (#1558 )
swc_ecma_transforms_compat:
- `async_to_generator`: Preserve this in async object methods. (#1575 )
- `nullish_coaelscing`: Fix assignments. (#1570 )
- `export_namespace_from`: Preserve order of statements. (#1457 )
swc:
- Disable aes. (#1583 )
2021-04-17 06:00:14 +00:00
강동윤
246bdd5088
fix(bundler): Fix bugs ( #1572 )
...
swc_bundler:
- Ensure that denoland/deno#10141 is fixed.
- Run deno tests on ci.
- Support nested `export *`. (denoland/deno#10153, denoland/deno#10174)
swc_ecma_codegen:
- Remove `,` after rest elements. (#1573 , denoland/deno#10167 )
swc_ecma_transforms_optimization:
- Don't drop items used by the discriminant of a switch.
swc_ecma_transforms_typescript:
- Remove constructors without a body.
2021-04-14 14:00:33 +00:00
Devon Govett
8f5daa3bbb
feat(es/transforms/react): Add pure annotation comments ( #1564 )
...
swc_ecma_transforms_react:
- Add pure annotations for react.
2021-04-11 15:09:27 +09:00
강동윤
2211a9908a
fix(swc): Fix various bugs ( #1550 )
...
swc:
- Improve error message for invalid configs. (#1532 )
swc_common:
- Handle input source map correctly. (#1404 )
swc_ecma_parser:
- Fix parsing of generics type declarations when tsx is enabled. (#1526 )
swc_ecma_transforms_compat:
- Allow using carriage return. (#1549 )
2021-04-08 12:55:02 +00:00
Pig Fang
39e1e54ee4
fix(es/parser): Disallow override
in non-subclass ( #1552 )
...
swc_ecma_parser:
- Disallow `override` in classes without super class.
2021-04-07 15:38:24 +00:00
David Sherret
f1792708b4
fix(es/ast): Remove TsSignatureDecl ( #1531 )
2021-04-04 20:12:17 +09:00
강동윤
13a9d12c84
chore(ci): Configure github actions for rustdoc ( #1523 )
2021-03-31 13:09:10 +09:00
강동윤
51d0cef287
fix: Fix bugs ( #1516 )
...
swc_ecma_ast:
- Support TypeScript 4.3. (#1517 )
swc_ecma_parser:
- Support new syntaxes from typescript 4.3. (#1517 )
swc_ecma_transforms_compat:
- Fix '\\`' in template literals. (#1488 )
- `classes`: Fix super calls. (#1490 )
swc_ecma_transforms_module:
- Respect `esModuleInterop` for dynamic imports. (#1480 )
swc_ecma_transforms_typescript:
- `strip`: Remove `declare`-d namespaces. (#1508 )
2021-03-30 16:47:12 +09:00
강동윤
99f4f0f280
fix(swc): Fix bugs for v1.2.52 ( #1506 )
...
swc_ecma_parser:
- Support `private declare`. (#1503 )
- Recover `backtracking` state while doing some nested backtracking. (#1505 )
- Allow using `readonly` as the name of class properties. (#1514 )
swc_ecma_transforms_base:
- `hygiene`: Keep the name of class expressions. (#1507 )
swc_ecma_transforms_typescript:
- Allow a namespace and a class to have the same name. (#1515 )
swc:
- Disable `tsx` if the ext of a file is ts.
2021-03-29 20:48:48 +09:00
Nayeem Rahman
fa3d65cd58
fix(strip): Transform static class fields to assignments ( #1487 )
...
swc_ecam_transforms_compat:
- Deprecate `typescript_class_properties`.
swc_ecma_tranforms_typescript:
- Merge `typescript_class_properties` into `strip`.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-03-26 13:48:55 +09:00
David Sherret
da62c73239
refactor(es/ast): Change TaggedTpl to have a Tpl ( #1114 )
...
swc_ecma_ast:
- Make `TaggedTpl` have `Tpl`.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-03-25 20:09:36 +09:00
Nayeem Rahman
9bc074ed46
fix(strip): Combine typescript_class_properties() into strip() ( #1478 )
...
swc_ecma_utils:
- Use `&mut` for inject_after_super.
swc_ecma_transforms_typescript:
- Merge `typescript_class_properties` into `strip`.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-03-21 22:31:35 +09:00
강동윤
dcdac2db6f
fix(swc): Fix bugs ( #1453 )
...
swc_ecma_transforms_typescript:
- Add option to use define propert for `strip` pass. (#1472 )
node-swc:
- Fix `keepClassNames`. (Brooooooklyn/swc-node#335 )
2021-03-17 15:24:35 +09:00
강동윤
bc07215d4d
fix(es/parser): Fix lexing of template literals. ( #1450 )
...
swc_ecma_parser:
- Fix lexing of template literals. (denoland/deno#9620 )
- Ensure that denoland/deno#9650 is not a bug of parser.
2021-03-03 17:46:36 +09:00
강동윤
a3105428ba
fix(swc): Fix various bugs ( #1440 )
...
swc:
- Use `hygiene_with_config` instead. (#1279 )
- Allow enabling source map with `.swcrc`. (#1309 )
swc_ecma_transforms_base:
- `hygiene`: Add an option to preserve class names. (#1279 )
swc_ecma_transforms_compat:
- `block_scoping`: Allow using `break` in switch cases. (#1415 )
2021-03-01 17:19:37 +09:00
강동윤
c047e0e54d
fix(bundler): Fix bundler ( #1427 )
...
swc_bundler:
- Create variables for export while preparing a module. (denoland/deno#9560 )
- Fix order of statements.
- Invoke dce multiple time if required. (denoland/deno#9546 )
swc_ecma_transforms_optimization:
- dce: Track modifications correctly.
2021-02-26 18:21:42 +09:00
강동윤
7f5bfdcc00
fix(bundler): Fix bugs ( #1382 )
...
swc_bundler:
- Improve performance
- Use `Vec<AHashSet<usize>>` instead of `AHashSet<(usize, usize)>`.
- Fix statement orderings. (denoland/deno#9464 )
- Fix wrapped esm mixed with circular imports. (denoland/deno#8224 )
- Store content of wrapped esm at top level. (denoland/deno#8224 )
2021-02-22 17:27:40 +09:00
LongYinan
9d896c746e
feat(node-swc): Reduce binary size ( #1418 )
2021-02-20 17:07:58 +09:00
Yehuda Katz
db85d123b7
Fix a number of typos ( #1412 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-02-20 15:18:09 +09:00
강동윤
eaeffabf74
fix(es): Improve performance ( #1411 )
...
swc_ecma_ast:
- Add `BindingIdent`.
- Reduce size of `Ident`.
2021-02-19 15:34:22 +09:00
강동윤
0be20ff0ae
feat(es/transforms/react): New jsx transform ( #1408 )
...
swc_ecma_transforms_react:
- Implement new jsx transform. (#1103 , denoland/deno#7993 )
2021-02-19 14:32:53 +09:00
David Sherret
313f51fab1
feat(es/parser): Allow to look at the kind of an error ( #1396 )
...
swc_ecma_parser:
- Add a method to look at the kind of an error without destructuring it.
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2021-02-14 16:49:28 +09:00
강동윤
bf445a75c4
fix(swc): Fix bugs ( #1372 )
...
swc_ecma_ast:
- Support import assertions for exports.
swc_ecma_parser:
- Support import assertions for exports.
swc_ecma_transform_typescript:
- Strip `declare globals` correctly. (#1383 )
spack:
- Re-enable multi-entry tests.
2021-02-10 17:25:28 +09:00
강동윤
0d130f8103
fix(bundler): Prevent hanging ( #1369 )
...
swc_bundler:
- Prevent infinite loop.
2021-01-30 13:35:07 +09:00
강동윤
947161b43b
fix(bundler): Fix bugs ( #1349 )
...
swc_bundler:
- Fix deglobbing of imports. (denoland/deno#8985)
- Use correct syntax context while deglobbing imports. (denoland/deno#9212)
- Allow reexporting from wrapped esms. (denoland/deno#8959, denoland/deno#9200)
- Fix statement orderings. (denoland/deno#9250)
- Emit injected items as early as possible. (denoland/deno#9250)
- Respect `external_modules`. (#1338 )
- Fix cjs suppport. (#1328 )
swc_ecma_transforms_base:
- hygiene: Fix for hoisting. (denoland/deno#9212 )
2021-01-25 21:15:42 +09:00
강동윤
947f9c5641
fix(es/ast): Fix EqIgnoreSpan ( #1360 )
...
swc_ecma_ast:
- Make `EqIgnoreSpan` impl of` StrKind` always return true.
2021-01-25 18:14:34 +09:00
강동윤
2921b903d7
fix(es/ast): Compilation ( #1357 )
...
swc_ecma_ast:
- Fix compilation.
2021-01-25 11:32:09 +09:00
강동윤
b7ae896bbd
fix(es): Fix bugs ( #1353 )
...
swc_ecma_transforms_compat:
- Handle all accesses to private class properties. (#1333 )
- block_scoping: Inject variable correctly. (#1231 )
- Handle async arrow function correctly. (#1341 )
2021-01-23 20:52:53 +09:00
강동윤
d4df2cece8
fix(es): Fix bugs ( #1347 )
...
swc_ecma_parser:
- Do not emit strict mode error while backtracking. (#1252 )
swc_ecma_transforms_proposal:
- Handle decorator on methods with computed key.
2021-01-23 15:46:42 +09:00
강동윤
0469e3a33e
fix(es): Move and rename JscTarget ( #1343 )
...
swc_ecma_ast:
- Add `EsVersion`.
swc_ecma_parser:
- Remove `JscTarget`.
- Reexport `EsVersion` as `JscTarget`.
2021-01-20 19:43:56 +09:00
강동윤
17f17e82e6
fix(bundler): Fix bugs ( #1342 )
...
swc_bundler:
- Add a testing system for constant inliner.
swc_ecma_transforms_optimization:
- const_propagation: Handle export specifiers.
- const_propagation: Handle inlining of variables whose initializer is inlined.
- dce: Allow dropping identifiers used in `exported` part of export specifiers.
2021-01-20 16:10:12 +09:00
강동윤
ddc9492aed
fix(es/transforms): Handle enum in namespaces ( #1340 )
...
swc_ecma_transforms_typescript:
- Handle enums in namespaces. (#1329 )
swc:
- Exclude files based on .swcrc.
2021-01-18 23:00:53 +09:00
강동윤
3faefb5836
feat(es): TypeScript 4.2 ( #1330 )
...
swc_ecma_ast:
- Add `is_abstract` to constructor types.
swc_ecma_codegen:
- Fix codegen of `Bool`.
- Implement codegen for abstract constructors.
swc_ecma_parser:
- Inline tsc parser test suite.
- Implement parsing of abstract constructor types.
2021-01-15 19:30:44 +09:00
강동윤
76d9e2a9df
feat(ecmascript/transforms): Split into multiple crates. ( #1311 )
2021-01-05 14:29:52 +09:00
강동윤
0713f98e53
Specify version
2021-01-01 15:28:14 +09:00
강동윤
35cac79f48
Publish swc crate ( #1308 )
2021-01-01 13:30:35 +09:00
강동윤
4490e2551d
swc.rs ( #1085 )
...
Changes url from https://swc-project.github.io to https://swc.rs
2020-09-21 22:53:48 +09:00
강동윤
7ffb4c0bf9
Extension for jest ( #1081 )
2020-09-18 14:29:50 +09:00
강동윤
b25ccc006c
Improve performance ( #993 )
2020-08-26 20:50:18 +09:00
강동윤
28398280f7
Improve spack ( #972 )
...
swd_bundler:
- Handle reexports
spack:
- Do not transform files from node_modules
2020-08-17 15:04:08 +09:00
강동윤
bceda220fa
JsDoc parser ( #923 )
2020-08-14 18:20:25 +09:00
강동윤
2fedf32747
swc_bundler ( #943 )
...
swc_bundler:
- Splitted from spack
swc_ecma_parser:
- Fix unexpected eof problem which occurs if log level is trace
swc_ecma_transforms:
- Fix bugs of dce pass
spack:
- Support cyclic dependencies
2020-08-12 22:18:47 +09:00
강동윤
2de59759de
Reduce size ( #928 )
...
Reduce binary size and make some dependencies optional for deno
2020-08-04 01:33:23 +09:00
강동윤
0ac55ae68b
Improve ux for rust users ( #909 )
...
testing:
- Remove dependency on relative_path
swc_common:
- Span's byte positions are now self-contained and `GLOBALS` is not required while parsing.
- Changed `Comments` into a trait.
- Provide single-threaded implementation of `Comments`
- Cargo feature `tty-emiiter` (To remove tty related stuffs )
- Cargo feature `sourcemap` (To remove sourcemap for web assets)
- Removed dependency on dashmap
swc_ecma_parser:
- No duplicated comments.
- Removed dependency on once_cell and regex
- Add a test suite to visualize and test span of nodes.
swc_ecma_utils:
- Removed dependency on parser
swc:
- Remove dependency on derive_more and path-clean
- Add multi-threaded implementation of `Comments`
swc_ecmascript:
- A new crate contains `ast`, `codegen`, `parser`, `utils`, `visit`.
2020-07-31 18:49:07 +09:00
강동윤
9b8bfb2455
Use stable rustc ( #886 )
2020-07-24 02:18:22 +09:00
강동윤
fe260a02e2
ES2020 ( #855 )
...
Adapt es2020. API is not changed, but config for merged proposals are now noop.
2020-06-20 15:09:57 +09:00
강동윤
fcef201695
spack: super-fast bundler ( #825 )
...
Version is alpha as it's not complete
2020-06-13 23:09:45 +09:00
강동윤
eaa51a3124
No debug info on release
2020-05-23 15:36:04 +09:00
강동윤
3a372ad29a
Move node-swc into the repository ( #789 )
...
The commit will help
- Better testing
- Preventing regression like #785 .
- **Implementing spack** (It requires access to neon api because of the plugin system)
2020-05-22 20:36:39 +09:00
강동윤
14f5212d3d
Wasm ( #691 )
2020-05-07 18:17:57 +09:00
강동윤
09279432c4
Do not depend on hashbrown ( #744 )
2020-04-03 10:33:35 +09:00
강동윤
b279e7a815
Visitor for stable rust ( #743 )
2020-04-02 18:38:13 +09:00
강동윤
432d7993a3
Handle input source map ( #734 )
2020-03-27 14:40:01 +09:00
강동윤
c7b12cd408
Fix bugs ( #718 )
...
- Handle inline source map (Closes #706 )
- Fix parsing of conditional expression starting with async (Closes #706 )
2020-03-13 23:34:36 +09:00
강동윤
8f280c535c
Performance ( #696 )
...
- Parser performance is improved by ~15%
- Codegen performance is improved by ~90% (when comment and source map is enabled)
2020-03-01 20:05:03 +09:00
David Sherret
0e8c5a6c93
Fix assignment pattern start when there is a type annotation ( #693 )
...
- Update dashmap to 3.5.1
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-02-29 10:29:34 +09:00
강동윤
e709da9d55
Fix SourceMap ( #672 )
...
Previously, `SourceMap` (taken from rustc) has a bug which reuses start position when new_source_file is invoked concurrently.
2020-02-17 15:56:41 +09:00
강동윤
26eb4e3206
Collect all comments ( #633 )
...
- Comments are now appended
- pin dashmap's version
2020-02-07 14:32:43 +09:00
alubbe
45604fa6e7
Remove dependency renaming to enable WASM ( #625 )
...
This PR supercedes https://github.com/swc-project/swc/pull/621 and tries to remove dependency renaming to enable WASM, as discussed in https://github.com/swc-project/swc/issues/106
2020-02-05 11:20:25 +00:00
강동윤
8afa3413ea
Remove dependency on lazy_static and chashmap ( #617 )
...
- `lazy_static` is replaced by `once_cell`
- `chashmap` is replaced by `dashmap`
2020-01-30 23:29:12 +09:00
강동윤
6fa85b646f
preset-env ( #537 )
...
swc_ecma_preset_env:
- can inject polyfills automatically
- can apply transforms automatically
swc:
- added env config to .swcrc
2019-12-28 11:25:54 +09:00
강동윤
51d21af031
Fix #516
2019-12-19 13:08:52 +09:00
kdy1
3ec395ba75
Improve performance & update rustfmt ( #504 )
2019-12-13 06:21:25 +00:00
Zimon Dai
ec086a1dab
use 2018 edition syntax ( #479 )
2019-12-02 17:10:05 +09:00
강동윤
8c7005d7ab
More testing ( #469 )
...
swc:
- Move tests from node-swc to swc
- Add integration tests (webpack, rxjs, angular-core)
- Support `exclude`
swc_ecma_transforms:
- More span validation
- classes:
- Strip `TsIndexSignature`
swc_ecma_parser:
- Fix span of member expression
- Fix span of binary expression
- Fix span of unary expression
2019-11-26 10:08:48 +09:00
강동윤
b46c4ec300
Update dependencies ( #464 )
2019-11-24 14:17:27 +09:00
강동윤
8ec7a69572
Parser performance ( #459 )
...
- codegen-units = 1 for benchmarks
swc_ecma_parser:
- Add a benchmark for typescript lexer
- Remove dynamic dispatch in lexer
- Improve performance of typescript
2019-11-23 13:03:29 +09:00
강동윤
d074063867
Parser: Error recovery ( #449 )
...
Implement some error recovery logic to parser
2019-11-17 18:36:47 +09:00
강동윤
ae3326cd9d
Compiler apis & .swcrc improvement ( #434 )
...
- Expose high-level compiler apis (#431 )
- Support multiple entries in .swcrc (#414 )
2019-10-25 10:11:24 +09:00
강동윤
9361e96d5b
Move config from libswc to node-swc
2019-01-09 18:40:14 +09:00
강동윤
fc3a9d6180
.swcrc file for configuration ( #115 )
...
libswc:
- use config file
2019-01-08 16:34:35 +09:00
강동윤
4ff6d4ed4a
Performance & Node binding ( #84 )
...
swc_common:
- update rustc-ap crates to v313
swc_ecma_ast:
- use bool instead of Option<Span>
swc_ecma_parser:
- remove LexerInput
- use uncons_while
- assert only on debug mode
- use Visit instead of Fold while verifying
- replace debug! with trace!
- disable logging while benchmarking
- drop slog
swc_ecma_transforms:
- classes: fold Decl instead of Stmt
swc:
- add nodejs binding
2018-12-21 16:54:36 +09:00
강동윤
222bdc191f
Performance ( #82 )
...
`Map<T>` adds a method named `map` which is actually `Box<T>` -> `Box<T>` without reallocation.
swc_ecma_transforms:
- chain_at!(Type, passes)
This macro deeply joins path at 'Type' level.
2018-12-01 22:24:26 +09:00
강동윤
d3e14b6533
Parser & transformers ( #71 )
...
swc_ecma_transforms:
- implement es2015::arrow (without this support)
- implement basical scope analysis
- implement es2015::function_name
- new.target is supported
- implement untagged template literals
swc_ecma_parser
- make test to use load_file()
- fix eof handling
- bump version
2018-11-21 18:59:17 +09:00
강동윤
1d0c78de6c
More works ( #66 )
...
ecma_transforms:
- implement es2015::instanceof
- implement es2015::typeof_symbol
- implement inline_globals pass
ecma_parser:
- `PResult<T>` is now `Result<T, ()>` and `Err(())` means that an error is emitted.
- add docs
2018-11-18 14:00:07 +09:00
강동윤
fae7bfc2c7
Chores ( #54 )
...
- improve readme
- fix lints
- Enable lto
- better codegen (newline after stmts)
- add some docs
- implement `**=` transformer
- use `quote_ident!`
- use `.as_arg()` instead of constructing ExprOrSpread
- use `as_callee()`
- inject helpers
- fix imports
- split libswc
- don't mark! useless span
2018-11-15 13:29:44 +09:00
강동윤
9d7af34aab
Initial release ( #45 )
...
common:
- rename `Folder` to `Fold`
- folder.then()
- impl Fold for Box<F>
- impl Fold<T> for &mut F where F: Fold<T>
transforms:
- make Simplifier private
- organize compat
codegen:
- use `Mark` to avoid deoptimization
swc:
- upgrade rayon and use global thread pool instead
2018-11-10 17:44:35 +09:00
강동윤
eb2a2a7f15
Fix tests and lints ( #44 )
...
- Temporarilly ignored comment codegen tests.
- Split Simplify into SimplifyExpr and SimplifyStmt
- fix lints
2018-11-05 13:12:52 +09:00
강동윤
0a5f3f4ab5
rustup to 2018-08-29\ ( #39 )
...
- libswc is broken
2018-09-16 20:25:41 +09:00
강동윤
9c2bc94e56
Use cargo override for darling
2018-06-28 15:17:22 +09:00
강동윤
5d5f861b9d
Update dependencies
...
- rustc toolchain to "nightly-2018-05-30"
- rustfmt to 0.8.6
- rustc-ap-* to 150
- syn to 0.14
- proc-macro2 to 0.4
- quote to 0.6
2018-06-02 18:01:00 +09:00
강동윤
077e0c551f
implement #[span]
2018-03-04 15:17:52 +09:00