Commit Graph

448 Commits

Author SHA1 Message Date
강동윤
3d63798c9e
Handle dynamic imports in non-es6 modules (#1028) 2020-09-04 16:18:57 +09:00
강동윤
8a01e2b7b6
Fix spack (#1016)
swc_ecma_transforms:
 - Add tests for #898 
 - dce preserves `export * from 'foo';`

swc_bundler:
 - Fix some concurrency bugs
 - Run dce only once
 - Handle `export * from 'foo'`
 - Handle namespace imports with computed key
 - Add some unit tests for `plan`
 - Handle export default decl
 - Handle simple coomon dependencies properly
2020-09-03 22:45:42 +09:00
강동윤
a2960810ac
Add BigInt literal type (#1020) 2020-09-03 10:50:13 +09:00
강동윤
578d64a398
Support jsx pragma (#1015)
swc_ecma_transforms
 - Support jsx pragma (#107, #838)
2020-08-30 20:32:45 +09:00
LongYinan
b443a1e372
Test Reflect.metadata existed before use it (#1011)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-30 13:30:50 +09:00
강동윤
99981f70c7
Add customizable api (#1006) 2020-08-27 20:35:28 +09:00
강동윤
b25ccc006c
Improve performance (#993) 2020-08-26 20:50:18 +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
강동윤
0a83809b2a
Improve type resolver (#994) 2020-08-24 18:48:54 +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
강동윤
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
강동윤
e2e5f5eba3 Bump version 2020-08-14 15:09:09 +09:00
강동윤
01aeec39ca
hygiene: No ref-ref conflict (#963)
swc_ecma_transforms:
 - Allow referencing global idents even when it's injected (Closes #962)
2020-08-14 15:08:36 +09:00
강동윤
7204b104a7
Decorators on parameter properties (#961)
swc_ecma_transforms:
 - Support parameter decorators on properties without a value (#960)
2020-08-13 23:13:21 +09:00
강동윤
a62af5f38f
Allow optional constructor property parameters (#959)
swc_ecma_transforms:
 - Handle optional constructor property parameters properly (#958)
2020-08-13 11:47:33 +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
LongYinan
4ab3c58f6a
Strip TypeScript class properties without value assigned (#956)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-11 01:58:45 +09:00
LongYinan
dde9defbe4
Fix typescript strip in class properties pass (#954)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-10 20:33:25 +09:00
강동윤
e1f5d681e3
Fix typescript class properties pass (#951) 2020-08-10 01:22:15 +09:00
강동윤
1315d58059
Fix bugs (#949)
swc_ecma_parser:
 - Allow `in` in class properties (#944)
 - Make `delete` with optional chaining valid (#947)

swc_ecma_transforms:
 - Add a `typescript_class_properties` pass (#930)
2020-08-09 16:45:00 +09:00
LongYinan
26f49099aa
Fix metadata emitted in parameters decorator (#948) 2020-08-09 14:18:15 +09:00
LongYinan
f92516867f
Fix parameters decorator metadata (#946)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-08 11:34:26 +09:00
강동윤
951d52ec55
Fix target, target (#945) 2020-08-08 01:30:15 +09:00
강동윤
0989e73a99
Metadata for typescript decorator (#939)
swc_ecma_transforms:
 - Allow emitting decorator metadata (#666, #919)

swc:
 - change order of passes to allow decorator using type informations
2020-08-06 21:23:34 +09:00
강동윤
969fe6ec32
Spack (#937)
spack:
 - Always inline `NODE_ENV` before analyzing imports
 - implements conditional requires (#884)
2020-08-06 14:55:16 +09:00
강동윤
42554d1194
Fix fixer (#933)
swc_ecma_transforms:
 - fixer: Preserve paren around computed constructor (#931)
2020-08-04 12:15:38 +09:00
강동윤
2de59759de
Reduce size (#928)
Reduce binary size and make some dependencies optional for deno
2020-08-04 01:33:23 +09:00
강동윤
54e0bfd878
Update swc_ecma_utils (#927) 2020-08-03 00:47:23 +09:00
강동윤
d2b8916f9f
Fix more typescript bugs (#924)
swc_ecma_parser:
 - Fix parsing of binding identifier `await`

swc_ecma_transforms:
 - More tests for typescript::strip
 - Handle export declare class properly
 - Remove declared variables
 - Fix enums in if statement
 - Fix sequence expression in class member key
 - Fix await in extend-clause
 - Fix optional array pattern
 - Fix optional object pattern
2020-08-02 15:06:22 +09:00
강동윤
db0a56514d
Remove TsIndexSignature from typescript::strip (#922) 2020-08-01 21:32:11 +09:00
LongYinan
0a7f3a28ee
super() should be first (#918)
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-08-01 00:55:13 +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
강동윤
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
강동윤
ecd7b4decc
Implement more methods for codegen (#902)
swc_ecma_codegen:
 - implement emit_private_property (Closes #903)
2020-07-27 22:58:42 +09:00
강동윤
ea885df521
Fix bugs (#901)
swc_ecma_parser:
 - Accept `export type * from '../typings'` (#896)

swc_ecma_transforms:
 - Ensure that swc does not duplicate classes (#879)
2020-07-27 20:21:52 +09:00
강동윤
53b09aa356
Fix decorators (#899)
swc_ecma_transforms:
 - typescript::strip: Preserve a class property if it has decorators
 - decorators::legacy: Implement parameter decorator.
2020-07-26 17:07:24 +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
강동윤
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
강동윤
92ce023171
Handle catch parameters in regenerator (#854) 2020-06-18 23:11:06 +09:00
강동윤
ff440157a0
Fix regenerator (#851)
swc_ecma_transforms:
 - Fix regenerator scoping issue.
2020-06-18 17:04:49 +09:00
강동윤
66d42adf7e
spack: modules (#848)
spack:
 - Better es6 module detection
 - Recursive merging
 - Support for common js modules
 - Support for node js core modules
 - Inject helpers

swc_ecma_transforms:
 - Fix dce
2020-06-17 23:48:34 +09:00
강동윤
31020e46d8
spack: enhancement (#845)
- Handle modules (via swcrc)
 - swc.bundle([conf1, conf2])
 - Correct chunking
2020-06-15 23:28:15 +09:00
강동윤
fcef201695
spack: super-fast bundler (#825)
Version is alpha as it's not complete
2020-06-13 23:09:45 +09:00
강동윤
5022999600
regenerator: Handle yield* correctly (#833) 2020-06-10 19:39:12 +09:00
강동윤
3b1ebdd2e9
Allow using properties with legacy decorators (#824) 2020-06-06 15:30:40 +09:00
강동윤
c7e4783837
Fix ts enums (#821) 2020-06-04 01:45:23 +09:00
강동윤
291251e2df Bump version 2020-06-02 20:13:18 +09:00
강동윤
0efba88e3f
Improve typescript parser (#811) 2020-06-02 19:22:41 +09:00
강동윤
e62ea09935
Test with real-world codes (#806)
The purpose of the commit is to prevent my mistake like the one in `v1.1.49`.
2020-05-28 22:23:53 +09:00
강동윤
9b316e68b6
Fix new reserved_words pass (#805) 2020-05-28 17:01:01 +09:00
강동윤
2b2e1c13cd
FIx block scoping pass (#803) 2020-05-28 13:08:05 +09:00
강동윤
283825c91a
Fix typescript_strip and handle reserved word (#802) 2020-05-28 12:00:34 +09:00
강동윤
f117fedad8
typescript_strip: Handle types used only in casts (#794) 2020-05-23 14:03:17 +09:00
강동윤
51a2913ae2
Improve typescript stripper (#792) 2020-05-21 22:59:06 +09:00
강동윤
5cc3efa851
resolver: Handle body of arrow functions correctly (#790) 2020-05-21 19:24:05 +09:00
강동윤
ce88b8c777
Type used in typescript type casting are treated as type 2020-05-21 14:40:44 +09:00
강동윤
71ea61e6c4
Make require of regenerator use global mark (#780) 2020-05-18 23:25: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
강동윤
ddc5ace570
dce: Separate phase for dropping imports (#764) 2020-05-09 12:22:45 +09:00
강동윤
14f5212d3d
Wasm (#691) 2020-05-07 18:17:57 +09:00
강동윤
37bfb79b02
Fix dead code elimination pass (#762) 2020-05-05 20:10:30 +09:00
강동윤
8615d69ac3
Fix bugs (#758)
swc_ecma_transforms:
 - Module passes resolver pass now shares 'global' context (Closes #724)
 - TypeScript enums are treated as concrete (Closes #757)
2020-04-30 23:48:52 +09:00
강동윤
cdf1772bf1
Fix declare (#747) 2020-04-10 22:26:29 +09:00
강동윤
648e87c28d
Fix exponential operator (#746) 2020-04-05 20:45:55 +09:00
강동윤
09279432c4
Do not depend on hashbrown (#744) 2020-04-03 10:33:35 +09:00
강동윤
706ae00523
Fix deeply nested optional chaining (#735)
- Handle deeply nested optional chaining expression correctly (Closes #732)
2020-03-28 11:59:45 +09:00
Muslim Guseinov
6a6013b14c
Fix enum default value transform (#730) 2020-03-26 10:53: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
강동윤
e5a818aabd
Fix resolver and block_scoping (#700) 2020-03-04 16:07:17 +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
강동윤
99b5018ba6
Fix ts enum with initializer (#694) 2020-02-29 14:54:10 +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
강동윤
363b8353cf
resolver: handle hoisting correctly (#689) 2020-02-25 21:29:52 +09:00
강동윤
1cf86b059d
Fix bugs (#687)
- stript type-only export default
- allow `continue` in a for loop
2020-02-22 14:49:04 +09:00
강동윤
cb43a69e02
implement { Hash, Eq } for ast nodes (#684)
As NaN is`IIdent` not `Number`, we can use implement Hash and Eq for ast nodes.
2020-02-21 12:47:06 +09:00
강동윤
e3ca8e5d13
Fix bugs (#683)
- Fix block_scoping (Fix #682)
 - Handle new.target in susbscript position (Fix #675)
2020-02-20 13:06:28 +09:00
강동윤
f79223e98c
resolver: Handle method property correctly (#679) 2020-02-19 19:49:58 +09:00
강동윤
53d09d448e
Handle await-for loop just like babel (#676) 2020-02-18 12:27:13 +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
강동윤
1fc09caa2f
type-only import, exports (#662) 2020-02-13 22:56:13 +09:00
강동윤
f344caa4fa
Reduce binary size (#663)
This pr add two helper macros to prevent folding type unnecessarily.
This reduces the binary size by 3MB on linux.
2020-02-13 21:55:54 +09:00
강동윤
f26ef0cfb7
Fix optimizer (#661) 2020-02-13 15:03:38 +09:00
강동윤
348052b017
Improve optimizer (#660)
Although it's quite naive at the moment, I added two optimization passes.

 - dead code elimination (Closes #607)
 - inlining
2020-02-13 11:45:14 +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
Hyeon Kim
226336b38b
Fix version of regenerator-runtime (#644)
7.7.7 is version of @babel/runtime, not regenerator-runtime. Looks like
the intended version was "0.11.0" as you can see in the yarn.lock:

    regenerator-runtime@^0.11.0:
      version "0.11.1"
      resolved "https://registry.yarnpkg.com/regenerator-runtime/-/re...
      integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT9...

Reference:
  https://github.com/swc-project/swc/commit/05be89c19
2020-02-10 03:23:10 +09:00
kdy1
f8c358c9ac Strip type-only imports (#641)
Fixes #640
2020-02-09 11:35:33 +00:00
강동윤
26eb4e3206
Collect all comments (#633)
- Comments are now appended
 - pin dashmap's version
2020-02-07 14:32:43 +09:00
강동윤
05be89c198
Smaller runtime (#631)
Replace babel-runtime with regenerator-runtime
2020-02-07 11:19:23 +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
kdy1
01659585e4 Fix parsing of jsx attribute values (#616)
Closes #614.
Closes #615.
2020-01-29 06:24:35 +00:00
kdy1
480015d407 block_scoping: handle variable infection (#610)
Handle variable infection in the block scoping pass. 

i.e. In the code below, v is 'infected' by i.
```js
var functions = [];
for (let i = 0; i < 10; i++) {
   let v = i;
   functions.push(function() {
       return v;
   });
}
functions[0]() // should print 0
```

Closes #609.
2020-01-24 12:29:57 +00:00
kdy1
0ebda3c33e hygiene / block scoping improvement (#608)
`hygiene` pass had a bug related to globally defined variables like `Object` or `undefined`. This pr make hygiene to utilize use-bind conflict to resolve global objects correctly.
Closes #605.

block_scoping pass had a bug with closure in for statement with let or const. This pr fixes it by extracting a loop body as a variable.
Closes #604.
2020-01-24 05:54:52 +00:00
kdy1
9be9ea2c43 hygiene: fix handling of special identifiers (#603)
The identifiers are `arguments`, `undefined`, `NaN`.

Closes #602.
2020-01-23 14:23:24 +00:00
kdy1
20e37eae5d regenerator: allow nested finally block (#601)
Previously, 

```js
function *foo() {
    try {
    } finally {
        try {
        } finally {
             throw new Error('foo');
        }
    }
}

```

make swc panic

Closes #600.
2020-01-23 01:04:08 +00:00
강동윤
8ecbe14207
hygiene: handle use-use conflict (#599)
Note that as we don't care about emitting a clean code, the renamed output may not match it of bind-bind conflict or bind-use conflict.
2020-01-22 10:43:59 +09:00
erikdesjardins
08ce8d0293 fix as_bool treating bitor like bitand (#596) 2020-01-20 08:22:52 +09:00
강동윤
8e476d8a83
Make parser work identically in release mode (#577)
swc_ecma_parser:
 - parser behaves identically on debug mode and release mode

swc:
 - run all tests on travis ci
 - use nvm on travis ci

swc_ecma_transforms:
 - make async_to_generator understand hoisting
2020-01-17 18:44:51 +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
David Sherret
0d67d5d855 Fix JSX opening, closing, spread child, and expression container spans (#582)
swc_ecma_parser:
 - fix opening and closing jsx spans.
 - fix JSX expression.
 - fix JSX spread child.
2020-01-14 12:37:29 +09:00
강동윤
b7f8282eb1
resolver: handle methods correctly (#579)
swc_ecma_transform:
 - handle a class method in child scope (#578)
2020-01-11 13:29:31 +09:00
강동윤
5503cde085
Extract utils from swc_ecma_transforms (#575)
swc_ecma_transforms:
 - extract utils
2020-01-08 10:55:22 +09:00
erikdesjardins
3e0f4a5bd7 dce: preserve nested if statement (#565)
swc_ecma_transforms:
  - preserve nested if statements

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-01-05 09:51:40 +09:00
David Sherret
c43bc471dd Fix span for patterns with a type annotation (#558)
swc_ecma_parser:
* fix span for patterns with a type annotation.

Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-01-03 14:37:48 +09:00
David Sherret
5acf557e35 GetterProp - Add type_ann (#557)
swc_ecma_ast:
 - add type_ann to GetterProp

swc_ecmascript_parser:
 - parse type annotation after a getter property
2020-01-03 13:08:27 +09:00
강동윤
806a6d97da
Regenerator (#554)
swc_ecma_transforms:
 - implement regenerator pass
 - add regenerator pass to es2015 preset

swc_ecma_preset_env:
 - add regenerator
2020-01-02 20:53:06 +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
강동윤
aa2a394f7d
Fix #542 (#543)
swc_ecma_transforms:
 - preserve space after a jsx element
2019-12-30 00:05:43 +09:00
강동윤
702800e0d9
Attach comments to correct node (#541) 2019-12-28 22:02:58 +09:00
강동윤
3cf1caa4b1 Bump version 2019-12-28 14:05: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
강동윤
31a5bed497
Legacy decorator for class and class members (#531) 2019-12-25 19:30:16 +09:00
강동윤
ac3f69acd0
Split tests to reduce compile time (#530) 2019-12-24 22:53:48 +09:00
강동윤
e2764e997b Transform for nullish coalescing operator.
Fixes #526.
2019-12-24 18:01:27 +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
강동윤
6186af04a9
Fix handling of jsx texts (#519)
swc_ecma_transforms:
 - Fix handling of jsx texts (#517)
2019-12-21 16:59: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
3ec395ba75 Improve performance & update rustfmt (#504) 2019-12-13 06:21:25 +00:00
강동윤
6fc91f2017 Remove #[inline(never)] 2019-12-13 08:47:46 +09:00
강동윤
126b6bc761 Add a test for #503 2019-12-13 08:35:32 +09:00
kdy1
0df908fdb4 ast & parser improvement (#502)
Parser can now parse typescript source code and rxjs.

Closes #468.
2019-12-11 14:28:35 +00:00
강동윤
1a48efa4e4
ES3 (#498)
* Add a test for #496
 - Better error message for TS1056
 - Allow using dynamic import with es3 target
2019-12-11 13:35:15 +09:00
강동윤
30869dc340 Fix template_literal in a script 2019-12-10 11:57:22 +09:00
강동윤
ae6de87abb
Add more tests (#489) 2019-12-09 21:02:51 +09:00
강동윤
69e768e6bd
Fix codegen of typescript enum (#488)
swc_ecma_trnsnofrms
 - Handle export enum
2019-12-04 10:08:17 +09:00
강동윤
b4e93f2b53
Handle catch clause properly (#484)
swc_ecma_transforms
 - Fix #483
2019-12-03 11:50:33 +09: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