Commit Graph

283 Commits

Author SHA1 Message Date
강동윤
0d130f8103
fix(bundler): Prevent hanging (#1369)
swc_bundler:
 - Prevent infinite loop.
2021-01-30 13:35:07 +09:00
강동윤
93a19140a8
fix(es): Fixes for type checker (#1359)
swc_ecma_codegen:
 - Print type parameters of a class method.

swc_ecam_transforms_base:
 - `ts_resolver`: Handle type parameter constraints correctly.
2021-01-26 22:05:30 +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
강동윤
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
강동윤
613a5a45dd
fix(es): Fixes for the type checker (#1331)
swc_ecma_codegen:
 - Fix codegen of typescript interfaces.

swc_ecma_transforms_base:
 - ts_resolver: Handle ts module declarations.
2021-01-15 21:12:16 +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
강동윤
a9bf9bb9e1
fix(swc): Fix bugs (#1300)
swc_ecma_codegen:
 - Handle unicode escape sequences when target is es5. (#1227, #1326)

swc_ecma_transforms_compat:
 - Handle template literals correctly. (#1314)
 - Handle private class properties correctly. (#1306)

swc:
 - Don't panic on `export * as foo from 'foo'`. (#1307)
2021-01-14 21:56:25 +09:00
강동윤
842b6f953c
fix(ecmascript/transforms): Fix dce (#1301)
swc_bunder:
 - Fix `keywords` pass.

swc_ecma_codegen:
 - Ensure that the code generator handles unicode characters properly. (denoland/deno#8925)

swc_ecma_parser:
 - Ensure that the parser handles unicode characters properly. (denoland/deno#8925)

swc_ecma_transforms:
 - Fix dce.
2021-01-05 18:45:26 +09:00
강동윤
254efc4d54 Bump version 2020-12-29 13:04:20 +09:00
Maxime Guerreiro
9063908528
feat(ecmascript/codegen): fix and use omit_trailing_semi (#1298)
swc_ecma_codegen:
- Use omit_trailing_semi in 'assert_min' tests, to identify bugs. Before this,
  no code was using this method - and it had some serious bugs.
- Omit semicolons when writing punctuation, as it's permitted to do so.
- Use two macros ('semi', 'formatting_semi') to distinguish between required
  semicolons, as used in for(...), and optional ones that are used between
  statements.

This commit does not enforce the use of omit_trailing_semi when cfg.minify is
used (except in tests using assert_min), and as such should not modify the
behavior of existing apps. This is confirmed by the Test262 suite passing
without changes.

Co-authored-by: 강동윤 <kdy1@dudy.kr>
2020-12-29 11:56:38 +09:00
강동윤
6941f29943
fix(swc): Fixes for typescript type checker (#1146)
swc_ecma_codegen:
 - Fix codegen of `TsConstructorSignature`.
 - Fix codegen of `TsIndexSignature`.
 - Fix codegen of type parameters in arrow expressions.
 - No panic on dummy span.

swc_ecma_parser:
 - Parse optoinal method correctly.

swc_ecma_transforms:
 - resolver: Handle type parameters in arrow expressions.
2020-12-27 18:18:30 +09:00
강동윤
8a8db58f1c
fix(ecmascript): Fix bugs related to string literals (#1287)
swc_ecma_ast:
 - Add `Str.kind`.

swc_ecma_transforms:
 - Fix quotes in template literals. (#1280)

swc_ecma_codegen:
 - Fix escape of single quotes. (#1259)
 - Fix codegen of wrong escapes. (#1276)

swc:
 - Ensure that #1271 is about napi's deserialization.
2020-12-22 04:27:18 +09:00
Liam Murphy
576fb6a532
fix(ecmascript/lexer): Normalize \r\n and \r to \n in template literals (#1286)
swc_ecma_parser:
 - Normalize \r\n and \r to \n in template literals.

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-12-21 17:56:17 +09:00
Liam Murphy
b760c7c9c7
fix(ecmascript/codegen): TsQualifiedName has trailing dot (#1268)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-12-20 22:27:31 +09:00
강동윤
2e29d78281
fix: Decorator metadata (#1248)
swc_ecma_transforms:
 - Emit proper typename for `design:type` used with enum. (#1160)
2020-12-04 05:03:26 +09:00
강동윤
faa1c5f4e5
Fix bugs (#1241)
swc_ecma_codegen:
 - Print multiline string correctly. (#1233)

swc_ecma_transforms:
 - `optional_chaining`: Ensure that #1149 is fixed. (#1149)
 - `async_to_generator`: Remove method parameters. (#1215, #1235)
 - `regenerator`: Don't emit useless expressions. (#1125)
 - `regenerator`: Track `finally` properly. (#1125)

spack:
 - LRU cache for resolver.
2020-11-30 19:20:21 +09:00
강동윤
ea6beaa06d
Fix bundler (#1242)
swc_ecma_codegen:
 - Fix codegen of unicode escapes. (denoland/deno#8541)

swc_bundler:
 - Allow importing a module multiple time. (denoland/deno#8530)
2020-11-30 18:21:34 +09:00
강동윤
6888c69bda
Fix codegen: preserve input (#1221)
swc_ecma_codegen:
 - Preserve input. (#1204)
2020-11-21 02:04:29 +09:00
Brad Dunbar
4327d91fe3
BigInt literal keys (#1192) 2020-11-15 01:22:35 +09:00
Pig Fang
11dbc1406c
TypeScript 4.1: intrinsic keyword (#1193)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-29 18:37:22 +09:00
Pig Fang
5ef993d9b2
TypeScript 4.1: template literal type (#1190)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-29 17:27:35 +09:00
강동윤
a368f66e77 Bump version 2020-10-29 15:44:12 +09:00
강동윤
32b3bbd50b
Emit only ascii (#1191)
swc_ecma_codegen:
 - Emit only ascii characters. (#1187, #1188)
2020-10-29 14:33:33 +09:00
강동윤
b2aec35eb6
Fix issues (#1189)
swc_bundler:
 - Support emitting iife. (Closes #1184)

swc_ecma_parser:
 - Auto-detect script / module (Closes #1164)
 - lexer: Error recovery for strict mode and module mode.
 - More error recovery logic for strict mode violation.
 - Fix panic on invalid input. (Closes #1170)
2020-10-28 21:20:11 +09:00
Brad Dunbar
667a8c72c0
Single argument arrow functions (#1186)
swc_ecma_codegen:
 - Remove parens from arrow functions when possible.
 - Remove space after prop keys when minifying.
 - Remove line break after expressions when minifying.
 - Remove space after generator `*` when minifying.
2020-10-27 15:08:05 +09:00
Brad Dunbar
6e9d06e95a
codegen: Preserve space for postfix unary operators (#1185)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-25 17:38:27 +09:00
Brad Dunbar
26c530b133
Invalid template escape in ES2018+ (#1175)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-20 00:17:20 +09:00
강동윤
a5e6242601 Bump version 2020-10-14 14:39:51 +09:00
Juho Vepsäläinen
ea091337d8
fix(jsx): Drop extra spaces around jsx attributes (#1121)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-10-02 17:06:02 +09:00
강동윤
688d16f228
Import assertion / json modules (#1100)
swc_atoms:
 - Add "assert".

swc_ecma_ast
 - Add a field to an import declaration.

swc_ecma_parser:
 - Parse assertions in import statements.
 - Parse assertions in top-level dynamic imports.
 - Parse assertions in non-top-level dynamic imports.

swc_ecma_transforms:
 - Fix compilation.
2020-09-23 14:27:27 +09:00
강동윤
7e8ff1d342
codegen: Fix for jsx (#1097) 2020-09-22 19:56:59 +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
강동윤
2fff66d985
codegen: Don't emit newline after a block comment (#1062) 2020-09-11 15:09:35 +09:00
강동윤
eb2162cbd2
Fix stack overflow (#1032)
swc_ecma_codegen:
 - Fix codegen of large binary expressions.

swc_ecma_parser:
 - Fix stack overflow while parsing large binary expressions.

swc_ecma_transforms:
 - typescrip::strip: Fix stack overflow while handling large binary operations.
 - hygiene: Fix stack overflow by migrating it to `VisitMut`.
 - hygiene: Improve performance.
 - fixer: Fix stack overflow by migrating it to `VisitMut`.
 - resolver: Migrate to `VisitMut`.
2020-09-06 15:09:02 +09:00
강동윤
a2960810ac
Add BigInt literal type (#1020) 2020-09-03 10:50:13 +09:00
강동윤
511dc54961
Fix codegen of VisitMut for Option (#996)
swc_visit:
 - Fix codegen of VisitMut for Option
2020-08-25 16:29:11 +09:00
강동윤
e3faea25b6
Improve performance of swc (#992)
swc_ecma_parser:
 - Make macros uses match instead of `PartialEq`

swc_ecma_codegen:
 - Move panic condition
2020-08-24 10:42:12 +09:00
강동윤
c475ab7f92 Bump versions 2020-08-21 20:06:37 +09:00
강동윤
e6191447fe
Typescript 4.0 (#982)
swc_ecma_parser:
 - Add support for optional tuple element (#978)
2020-08-21 19:31:46 +09:00
강동윤
53338fc0c3
Resolver for types (#979)
swc_ecma_transforms:
 - Add ts_resolver
2020-08-21 16:25:09 +09:00
강동윤
3262052e33
Improve performance and reduce binary size (#973)
spack:
 - Optimize resolver

swc_bunder:
 - Parallize merging of reexports
 - Remove useless `clone`s

swc_ecma_utils:
 - Migrate DropSpan to VisitMut

swc_ecma_transforms:
 - Migrate simple transforms to VisitMut
 - Ignore types to reduce binary size
 - Hide actual types so that we can optimize it in future without breaking change

swc_visit:
 - Apply transforms for vector in-place
 - Apply transforms for box in-place
2020-08-19 01:29:49 +09:00
Bartek Iwańczuk
7a13aabeb7
remove codegen::Handlers (#974) 2020-08-17 21:09:12 +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
Bartek Iwańczuk
9cb32cbb75
fix: readonly is not stripped from private prop (#916)
swc_ecma_codegen:
 - Fix printing logic of literals and template literals
 - Fix printing of hex

swc_ecma_parser:
 - Track raw string correctly

swc_ecma_transforms:
 - typescript: Handle class properties (readonly)
 - typescript: Handle enums inside function

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-07-30 22:40:43 +09:00
강동윤
ca43112d2a
codegen: Preserve quotes (#911) 2020-07-28 21:56:19 +09:00
강동윤
de1f967d32
Store span of ?. in an optional chaining expression (#907)
Add OptChainExpr.question_dot_token
2020-07-28 02:15:04 +09:00
강동윤
891092caf2
Fix typescript stripper (#905)
swc_ecma_codegen:
 - Fix codegen of optional catch parameters (#904)

swc_ecma_transforms:
 - Fix for nested catch clause
2020-07-28 00:55:28 +09:00
강동윤
c58b9c8649 Fix lint 2020-07-27 23:01:51 +09:00
강동윤
ecd7b4decc
Implement more methods for codegen (#902)
swc_ecma_codegen:
 - implement emit_private_property (Closes #903)
2020-07-27 22:58:42 +09:00
David Sherret
b72901b5e0
Support parsing declare properties (#897)
swc_ecma_ast:
 - ClassProperty.declare

swc_ecma_parser:
- Parsing for declare class props.
- Error when parsing a private property with a declare modifier.

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-07-26 12:53:41 +09:00
강동윤
a1d33d023a
Improve ux using swc as a rust library (#893)
swc_ecma_parser:
 - Improve parser's error reporting story
 - Replace `Session`, `Handler`, `Emitter` with Parser.take_errors()
 - Expose `Error`
 - Remove useless lifetime parameters
2020-07-25 20:26:04 +09:00
강동윤
c7a5d5fef9
Fix class hygiene issue related to class properties (#892)
swc_ecma_transforms:
  - fixed hygiene bug of class_properties pass
2020-07-24 22:02:29 +09:00
강동윤
9b8bfb2455
Use stable rustc (#886) 2020-07-24 02:18:22 +09:00
강동윤
c0917839a5
Add empty to class member (#875) 2020-07-05 20:10:33 +09:00
강동윤
38adc49e7e
Bugfixes (#873)
swc_common:
 - Fix new_source_file

swc_ecma_parser:
 - Fix parsing of paren expr in lhs of an assignment
2020-07-01 16:31:55 +09:00
강동윤
f500e9528c
Parser for TypeScript 4.0 (#867)
- Allow rest in non-last elements in tuple type
 - Allow labelled ts type element in tuple type
 - More operators
2020-06-29 16:23:33 +09:00
강동윤
cae9286af0 Bump versions 2020-06-20 17:43:24 +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
강동윤
fce0917016
Fix bigint literals (#837) 2020-06-11 17:49:40 +09:00
강동윤
3b1ebdd2e9
Allow using properties with legacy decorators (#824) 2020-06-06 15:30:40 +09:00
Vladimir Guguiev
ab7c9b1287
Implement codegen of export foo as Foo from foo; (#815)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-06-03 11:05:29 +09:00
강동윤
0efba88e3f
Improve typescript parser (#811) 2020-06-02 19:22:41 +09:00
Gurwinder Singh
5f261fcd5c
Rename Import and Export Node names (#777)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-05-17 19:15:31 +09:00
강동윤
65f2faa339
Reduce stack usage (#776) 2020-05-17 18:50:52 +09:00
강동윤
d74f74932e Support decorators on parameters (#775)
Co-authored-by: David Sherret <dsherret@users.noreply.github.com>
2020-05-16 22:36:52 +09:00
David Sherret
8b4fc59805
Support template literals in types (#767) 2020-05-16 17:19:48 +09:00
강동윤
09279432c4
Do not depend on hashbrown (#744) 2020-04-03 10:33:35 +09:00
강동윤
da97acca20 Bump 2020-03-10 00:35:53 +09:00
강동윤
e448a8910c
Fix bugs (#710)
- The parser now supports parsing optional patterns in .d.ts files (Closes #709)
 - The source map is handled properly (Closes #705, Closes #707)
2020-03-09 21:18:41 +09:00
강동윤
6e028696a5
Faster sourcemap generation for large files (#697)
We buffer operations related to source map and make it fast using an assumption that the byte positions always increment while emitting a file.
2020-03-02 20:49:08 +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
강동윤
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
강동윤
64ed0bd801
Validate sourcemap (#669) 2020-02-16 16:51:42 +09:00
kdy1
82e73b1121 Fix bugs (#659)
- Strip out const assertions (Closes #656)
 - Fix exclude of the file matcher (Closes #658) 
 - Automatic typescript detection (Closes #655)
2020-02-12 15:07:45 +00:00
강동윤
64f6e51b42
Unescape template literals before emitting. (#652)
Fixes #637.
Fixes #639.
2020-02-11 13:33:29 +09: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
kdy1
96e1dbe213 Improve hygiene and use JSXAttrValue (#592)
swc_ecmacript:
 - use JSXAttrValue (Fixes #584)

swc_ecma_transforms:
 - make hygiene pass check for exported vars (Fixes #591)
2020-01-17 05:45:33 +00:00
강동윤
1bcfcb741a
Fix #555 (#556) 2020-01-03 12:19:39 +09:00
David Sherret
288008091a Typo (#550) 2020-01-02 10:13:47 +09:00
강동윤
916858ae81
Bugfixes (#549)
swc_ecma_ast:
 - fix TsExprWithTypeArgs (closes #548)

swc_ecma_codegen:
 - allow using default import with namespace import (closes #546)

swc_ecma_parser:
 - parse import.meta (closes #545)
2020-01-01 06:57:34 +09:00
David Sherret
708efebac9 Fix comment line's end to be on same line (#544)
- fix comment line's end to be on same line.
2019-12-30 11:09:45 +09:00
강동윤
702800e0d9
Attach comments to correct node (#541) 2019-12-28 22:02:58 +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
강동윤
b1e4122b02
Nullish coalescing / optional chaining / comments (#529)
swc_ecma_ast:
 - rename `TsOptChain` to `OptChainExpr` (Fixes #525)
 - add `BinOp::NullishCoalescing`

swc_ecma_parser:
 - parse `??` (Fixes #526)

swc_ecma_transforms:
 - remap comments from fixer (Fixes #528)
2019-12-24 17:01:32 +09:00
강동윤
24b5c44ba3
Numeric separator & Bigint (#523)
swc_ecma_ast:
 - `BigInt` literal

swc_ecma_parser:
 - numeric separators. (#521)
 - parsing of bigint literal
2019-12-22 17:14:04 +09:00
강동윤
30af06bb70
Ast (#513)
swc_ecmascript:
 - add `ExprStmt`.
 - change type of regex.expression and regex.flags.
2019-12-16 18:08:21 +09:00
강동윤
332061f44d
Parser: respect jsc.target (#507)
swc:
 - make parser respect `jsc.target`.
2019-12-14 18:51:08 +09:00
kdy1
fa98c470d6 Program instead of Module (#499)
This pr adds an option to parse file as script, not module.


Related: https://github.com/swc-project/swc/issues/491
2019-12-11 06:07:21 +00:00
강동윤
b3a2ee8e9b
Fix bugs (#482)
swc_ecma_parser:
 - fix lexing of numbers like 9.09

swc_ecma_transforms:
 - jsx_text_to_str
 - use fxhash instead of ahash for exports
2019-12-02 20:19:15 +09:00
Zimon Dai
ec086a1dab use 2018 edition syntax (#479) 2019-12-02 17:10:05 +09:00
강동윤
a7a8a4a2e4
Plugin (#473)
swc_common:
 - apply patch from rust-lang/rust#59693

swc:
 - use &Options instead of Options
 - configures commons::CM
 - exposes `handler`
2019-11-29 23:46:06 +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
강동윤
fc9880e4f4 Bump parser's version 2019-11-24 14:42:08 +09:00
강동윤
b46c4ec300
Update dependencies (#464) 2019-11-24 14:17:27 +09:00
강동윤
3474c61a48
Fix codegen and parsing of template literal (#453)
- Fix codegen and parsing of template literal (#450)
2019-11-18 19:54:24 +09:00
강동윤
d074063867
Parser: Error recovery (#449)
Implement some error recovery logic to parser
2019-11-17 18:36:47 +09:00
Jasper De Sutter
716bfe05b2 Cleanup (#448)
- cargo fix
- update all crates to 2018 edition
2019-11-17 13:21:53 +09:00
강동윤
bc4a2976e5
Validate spans (#447)
- Add span validator to swc_ecma_transforms
2019-11-16 23:49:32 +09:00
강동윤
37b80dfd08
Optional chaining for typescript (#444)
Implement typescript 3.7's optional chaining
2019-11-15 14:34:48 +09:00
강동윤
96aa4796ea Fix #441 2019-11-15 14:23:39 +09:00
강동윤
d64d125996
Bugfixes (#440)
* Allow running swc on babel's output (#438)
* Print comments correctly (#439)
2019-11-10 18:21:28 +09:00
강동윤
167008de6f
Expose tokenizer (#437)
swc_common:
 - Added input::Input

swc_ecma_parser:
 - Made lexer public
 - Make input type of parser generic
 - Added example of using lexer
2019-11-06 13:14:44 +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
강동윤
2e5c81ee8e Fix parsing readonly array and tests
Closes #432
2019-10-23 20:20:17 +09:00
강동윤
34c3a0ece9 Fix lints 2019-10-19 12:47:25 +09:00
강동윤
9f1fca55ff Update rustc toolchain to nightly-2019-09-30 2019-10-02 13:53:56 +09:00
강동윤
2bd4475c5d Fix codegen tests 2019-09-20 23:39:19 +09:00
강동윤
c20176820e Fix #415 2019-09-20 23:07:24 +09:00
강동윤
4f8220329f publish 2019-09-20 13:41:11 +09:00
강동윤
eefdaaaa2f
Fold expressions in module item (#420)
* Fix #413
2019-09-20 13:20:37 +09:00
강동윤
7715c2626b
Issues (#404, #406, #407) (#408)
swc_ecma_transforms:
 - fix mis-referencing caused by destructuring (#404)
 - fix invalid code generated by comment on arrow functions (#406)
 - fix string concatation of template literal (#407)
 - hygiene: fix rewriting of object pattern
 - fix test module to prevent SIGILL
 - fix module import order (using IndexMap)
2019-09-18 14:40:22 +09:00
강동윤
a1c2538338 hashbrown & comment revamp 2019-06-25 09:41:58 +09:00
강동윤
ed64a60cb3 Publish ast / codegen /transforms 2019-05-02 15:50:21 +09:00
강동윤
2951546f77 Fix sourcemap.
Closes #349
2019-05-01 19:18:48 +09:00
강동윤
b329d34632 Fix codegen of async method property 2019-04-26 18:01:36 +09:00
Erik Desjardins
3cc2e3315d Don't emit octal escape for null character followed by digit 2019-04-09 19:37:43 -04:00
bors[bot]
48b2607b28 Merge #362
362: Fix #358 r=kdy1 a=kdy1

Fix #358

Co-authored-by: 강동윤 <kdy1@outlook.kr>
2019-04-07 14:10:29 +00:00
강동윤
fe451d5809 Fix #360 and update rustc 2019-04-05 12:19:18 +09:00
강동윤
adcc5954ee Fix #358 2019-03-25 12:11:15 +09:00
Michael Stewart
6f97012821 fix test imports for latest nightly (#355) 2019-03-23 13:18:55 +09:00
강동윤
ed100700f1
Make deserialization fast (#314)
swc_ecma_ast:
  - add deserialization benchmark

ast_node:
 - #[ast_node] on enum now implements faster deserialization
2019-03-05 23:16:45 +09:00
강동윤
a46804ab48 swc_ecma_ast:
- Split class member / property into separate types
2019-02-28 19:25:38 +09:00
강동윤
1e38d2e124 Handle sourcemap correctly 2019-02-27 17:44:11 +09:00
강동윤
a5bc5c1490
Publish (again) (#279)
- swc_ecma_codegen@0.6.1
 - swc_ecma_codegen_macros@0.3.0
 - swc_ecma_parser@0.9.1
 - swc_ecma_parser_macros@0.3.0
2019-02-27 10:48:02 +09:00
강동윤
10cb9a4b21
Publish (#278)
- swc_macros_common@0.2.0
 - ast_node@0.4.1
 - string_enum @0.2.0 
 - swc_ecma_ast@0.8.0
 - swc_ecma_parser_macros@0.3.0
 - swc_ecma_codegen_macros@0.3.0
 - swc_ecma_parser@0.9.1
 - swc_ecma_parser@0.6.1
2019-02-27 10:42:22 +09:00
강동윤
1b28766c26
Improve comment api (#277)
swc_ecma_parser:
 - parser now take comments by reference
2019-02-26 13:56:58 +09:00
강동윤
906d6a0625 Fix codegen of yield, break, continue. Fixes #275. 2019-02-25 11:42:50 +09:00
강동윤
dff2cb8f75
Implement deserialize for ast nodes (#274)
string_enum:
 - #[derive(StringEnum)] now derives `Deserialize`

swc_ecma_ast:
 - implement deserialize for ast nodes.
 - change ast to make it serialized / deserialized correctly

swc_ecma_parser:
 - jsx, test262, typescript tests now verify serialization and deserialization of module
2019-02-24 14:12:04 +09:00
강동윤
c1de0a5c86
Improve codegen of binary expression which contains unary expression. (#267)
swc_ecma_codegen:
 - improve codegen of binary expression which contains unary expression (#266)
2019-02-22 12:04:41 +09:00
강동윤
7d5316463d
Fixes (#241)
swc_ecma_transforms:
 - handle constructor from object_rest_spread pass (#239)
 - typescript::strip pass now removes signature-only constructor

swc_ecma_parser:
 - fix parsing of do while statement (#242)

swc_ecma_codegen:
 - fix codegen of do while statement (#242)
2019-02-19 15:20:02 +09:00
강동윤
2b7240c595
Support export * as Foo from 'foo'; (#228)
swc_ecma_parser:
 - support `export * as Foo from 'foo';` (Fix #226)

swc_ecma_transforms:
 - support `export * as Foo from 'foo';` (Fix #226)
2019-02-18 14:01:56 +09:00
강동윤
3fc360d870 Make sourcemap optional 2019-02-17 23:25:35 +09:00
강동윤
631eff9e8c
Bugfixes (#208)
swc_ecma_codegen:
 - fix codegen of shebang (#177)
 - add test for #197.

swc_ecma_transforms:
 - fix object rest spread pass (#162)
2019-02-14 13:24:01 +09:00
강동윤
b27829825e
Fix Bugs (#205)
swc_ecma_codegen:
 - escape characters (#204)

swc_ecma_parser:
 - fix parsing of `<!--`

swc_ecma_transforms:
 - promote VarCollector to crate-level utility
 - fix es3::member_expr_lits (#206)
 - fix es2015::duplicate_keys pass (#203)
 - improve fixer (paren for assignment) (#201)
 - improve fixer (arrow expression) (#207)
 - make typescript pass strip out type-only exports (#196)
2019-02-14 11:03:06 +09:00
강동윤
c647cf1bc0
Fix bugs (#193)
swc_ecma_parser:
 - fix lexer
 - better error reporting for jsx reference test

swc_ecma_codegen:
 - Update references
2019-02-13 16:03:38 +09:00
강동윤
2d062432a8
Shebang & small improvement for object rest spread (#184)
swc_ecma_ast:
 - handle shebang

swc_ecma_codegen:
 - handle shebang

swc_ecma_parser:
 - handle shebang

swc_ecma_transforms:
 - fix arrow expression used with object rest spread
2019-02-13 11:08:21 +09:00
강동윤
fc661f24f0
Bugfixes (#182)
swc_ecma_ast:
 - rename ast to be consistent
2019-02-13 08:18:19 +09:00
강동윤
227423d5f6
Export default from & fix codegen of imports (#168)
swc_ecma_ast:
 - Support `export v from 'foo';`

swc_ecma_parser:
 - Support `export v from 'foo';`

swc_ecma_codegen:
 - Fix codegen of side-effect imports
2019-02-12 15:30:11 +09:00
강동윤
7fe2245a3d
Cleanup (#152)
- replace Lrc with std::sync::Arc
swc_common:
 - make swc_common::sync private
 - improve MoveMap

swc_ecma_codegen:
 - fix codegen of import.

swc_ecma_transforms:
 - properly detect valid identifier.

swc_ecma_parser:
 - Fix parsing of cond expr inside paren.
2019-02-11 11:39:20 +09:00
강동윤
ab4f619257
Fix tests (#142) 2019-02-10 20:49:29 +09:00
강동윤
e1b83e594f Merge branch 'master' of ssh://github.com/swc-project/swc 2019-02-08 13:29:31 +09:00
강동윤
2c9fe1a555 Comments 2019-02-08 13:28:49 +09:00
강동윤
43d633b44d
Handle comments and improve codegen (#136)
swc_ecma_codegen:
 - Improve codegen
 - Handle comments

swc_ecma_parser:
 - Handle comments
2019-02-08 13:00:58 +09:00
강동윤
b516c19133
Update dependencies (#135) 2019-02-07 00:05:25 +09:00
강동윤
a1629d3997
Implement module transforms (#133)
swc_ecma_ast:
 - implement more `From<T>` for `Expr`

swc_ecma_transforms:
 - fnv -> fxhash
 - implement common js imports
 - improve fixer
 - use js_word! instead of &*sym
 - add noop pass
 - handle state correctly
 - ExprFactory::member(), computed_member()
2019-02-05 12:50:19 +09:00
강동윤
ba0c7c908c
Improve swc_ecma_trnasforms (#127)
# swc_ecma_ast
 - Add PrivateName to Expr

# swc_ecma_parser
 - Fix parsing of private name

# swc_ecma_transforms

## Hygiene
 - It correctly tracks `BindingIdentifer` / `IdentifierReference`
 - Preserve `IdentiferReference` if it conflicts with a `BindingIdentifier`

## Block scoping
 - It correctly tracks `BindingIdentifer` / `IdentifierReference`


## Fixer
 - It removes useless parens.
 - It removes useless `IdentiferReference`s in comma expressions.

## Classes properties
 - public prooperty
 - private property

## Class decorators
 - implemented
2019-01-29 23:56:16 +09:00