강동윤
fb52c1052c
Folder for stable rust ( #773 )
2020-05-16 15:11:44 +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
David Sherret
5bd432f7de
Fix ZeroFillRShift tokenized as Gt ( #752 )
...
Fixes #751
2020-04-29 22:09:50 +09:00
David Sherret
80f81d8cd7
Fix parsing async generator method in object expression ( #749 )
2020-04-22 12:37:17 +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
강동윤
4d101a0ef7
Add metadatas
2020-04-02 18:41:02 +09:00
강동윤
b279e7a815
Visitor for stable rust ( #743 )
2020-04-02 18:38:13 +09:00
David Sherret
93ffb9700b
Increase swc_ecma_parser_macros version to 0.4.1 in swc_ecma_parser ( #736 )
2020-03-28 13:54:53 +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
강동윤
2225679ea7
Fix capturing ( #731 )
...
Fix token capturing (Closes #728 )
2020-03-26 14:56:54 +09:00
Muslim Guseinov
6a6013b14c
Fix enum default value transform ( #730 )
2020-03-26 10:53:35 +09:00
강동윤
ebc7070d1f
Fix parser ( #727 )
...
- Allow await in an yield expression (fixes #720 )
- Prevent duplicate tokens while capturing (fixes #726 )
2020-03-25 17:40:05 +09:00
David Sherret
b17b249fa6
Fix union and intersection type start ( #725 )
2020-03-22 11:02:41 +09:00
David Sherret
b677115702
Fix async arrow expression and TsIndexSignature param ident spans ( #721 )
...
- Fix async arrow expression start.
- Fix TsIndexSignature inner ident and type ann spans.
2020-03-15 08:18:28 +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
강동윤
dc2e2fabbd
Allow optional binding pattern in ambient context ( #715 )
2020-03-10 13:59:32 +09:00
David Sherret
2f47d41f2b
Fix tagged template start to include tag ( #714 )
...
Co-authored-by: 강동윤 <kdy1997.dev@gmail.com>
2020-03-10 12:35:42 +09:00
강동윤
6f4e534c88
Bump versions
2020-03-10 10:39:42 +09:00
David Sherret
5a2f9249b2
Fix class declaration with decorators start. ( #711 )
2020-03-10 10:38:56 +09:00
David Sherret
1e13299540
Fix arrow start in conditional expression. ( #712 )
2020-03-10 10:29:34 +09:00
강동윤
544090832d
Bump
2020-03-10 00:41:04 +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
강동윤
759d671df1
Don't print
2020-03-05 11:20:49 +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
강동윤
3911ab75b9
Bump version
2020-02-29 10:34: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
강동윤
087e768810
Bump version
2020-02-19 12:55:41 +09:00
David Sherret
0d17f014e3
Fix tagged template span to include tag. ( #677 )
2020-02-19 12:50:07 +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
강동윤
64ed0bd801
Validate sourcemap ( #669 )
2020-02-16 16:51:42 +09:00
강동윤
f17e49934c
Add { Load, Resolve }
2020-02-15 12:52:06 +09:00
David Sherret
4550f7e1af
Support type predicate "asserts" with no "is" ( #667 )
2020-02-15 10:44:02 +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
강동윤
64f6e51b42
Unescape template literals before emitting. ( #652 )
...
Fixes #637 .
Fixes #639 .
2020-02-11 13:33:29 +09:00
David Sherret
1bf81c6e85
Fix span of the ExportNamespaceSpecifer ( #651 )
2020-02-11 11:02:37 +09:00
강동윤
8fb7c516d7
Better error message for missing browserslist. ( #650 )
...
Better error message for missing brwoserslist.
Fixes #648
2020-02-10 19:27:56 +09:00
David Sherret
4b7222cbfe
Support export * as ns from "module"
( #647 )
2020-02-10 11:30:25 +09: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
David Sherret
530a5f34db
Support ecmascript private fields when parsing TypeScript. ( #642 )
2020-02-10 03:22:51 +09:00
kdy1
f8c358c9ac
Strip type-only imports ( #641 )
...
Fixes #640
2020-02-09 11:35:33 +00:00
kdy1
add63826bd
Allow await expression at other than expression statement ( #636 )
...
Fixes #635
2020-02-08 01:49:00 +00:00
dsherret
55c0258017
Remove empty expression in expression statement with top level await ( #630 )
...
Eats the semi-colon.
This doesn't compile (edit: doesn't compile the code in the tests) though because the target of that folder is ES2015. Also, this is kind of strange for me to put the tests in the "typescript" folder. Should we create something more general?
You can take over this PR if you'd like!
2020-02-07 05:33:26 +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
dsherret
bf5cff152b
Fix start position on class declarations with decorators ( #628 )
...
Fixes: https://github.com/swc-project/swc/issues/626#issuecomment-582567305
See #581
2020-02-06 00:20:19 +00: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
kdy1
94eac1de89
Top level await ( #627 )
...
Implements a top level await for es2017+, and allow it for typescript and ecmascript (ecmascript requires topLevelAwait: true).
Closes #626 .
2020-02-05 01:05:23 +00:00
kdy1
42373f975b
Fix parsing of declare ( #624 )
...
Previously all children in declare context were marked as `declare`. It's wrong, and I fixed to set declare: true only on the exact node
2020-02-04 02:12:55 +00:00
kdy1
196740cdcd
Allow optional chaining in ecmascript ( #619 )
...
Fixes #618
2020-01-31 15:59:47 +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
강동윤
e92923b467
Bump
2020-01-29 12:21:45 +09:00
kdy1
d06eeed352
Async generator ( #613 )
...
Change parser to accept async generator.
Closes #612 .
2020-01-29 02:59:25 +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
dsherret
d4fa2a6a96
Ensure semi-colon is eaten for dynamic imports and import meta found at the start of expression statements ( #595 )
...
Fixes #594 .
Also fixes span for "imports" identifier.
2020-01-18 04:51:20 +00:00
David Sherret
a55fced20b
Fix spans for "as" and const assertions ( #593 )
...
- Fix spans for "as" and const assertions
2020-01-18 12:33:01 +09:00
강동윤
2880250309
Manifest
2020-01-17 18:54:40 +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
David Sherret
e5004da87e
- Spans of class members and classes should include decorators. ( #581 )
...
- spans of class members and classes should include decorators.
- fix hi position for class parameter properties.
- fix span of members with accessibility.
2020-01-12 08:41:43 +09:00
David Sherret
b7b7fda982
Fix type predicate start position. ( #580 )
2020-01-12 08:38:58 +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
David Sherret
fea4c5bd63
TypePredicate - Parse the asserts modifier ( #567 )
...
swc_ecma_parser:
- add support for asserts modifier from typescript 3.7
2020-01-09 14:14:44 +09:00
강동윤
5503cde085
Extract utils from swc_ecma_transforms ( #575 )
...
swc_ecma_transforms:
- extract utils
2020-01-08 10:55:22 +09:00
kdy1
6eb066166f
Don't emit error messages while trying ( #574 )
...
swc_ecma_parser:
- don't emit error messages while trying (Closes #573 )
2020-01-07 12:36:51 +00:00
kdy1
02d4fb60f2
Make capturing fast ( #570 )
...
swc_ecma_parser:
- made capturing fast (Closes #533 )
2020-01-06 01:02:51 +00:00
dsherret
8e3827403e
Fix class and interface spans ( #566 )
...
The interface span for something like `interface Test {}` was `Test {}`. Also, for stuff like `export default abstract class Test{}` it was `class Test{}` instead of `abstract class Test {}`.
2020-01-06 00:08:59 +00: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
dsherret
9676a05853
Import type should have type arguments rather than type params ( #560 )
...
Just found another occurrence of this. Similar to #548 .
![image](https://user-images.githubusercontent.com/1609021/71735836-716b2d00-2e1d-11ea-8878-50d28da9fa5e.png )
I'm currently going through all the types right now so you might want to hold off on merging this or doing a breaking change release until I finish that.
2020-01-04 23:56:31 +00:00
강동윤
c0cc2185ea
Fix ci ( #561 )
...
- line endings are normalized
- switched to github actions from travis to check forked branches
2020-01-04 13:33:25 +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
강동윤
1bcfcb741a
Fix #555 ( #556 )
2020-01-03 12:19:39 +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
5f6b11348a
Fix span of the switch statement. ( #553 )
2020-01-02 16:46:56 +09:00
David Sherret
4f76cddebd
Fix span of await token in for/for-in/for-of stmts. ( #551 )
2020-01-02 10:18:20 +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
64bddebb2b
Fix parsing class properties as readonly ( #547 )
...
swc_ecma_parser
- parse readonly property correctly
2020-01-01 03:14:46 +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
강동윤
aa2a394f7d
Fix #542 ( #543 )
...
swc_ecma_transforms:
- preserve space after a jsx element
2019-12-30 00:05:43 +09:00
David Sherret
bde5341bd7
Fix string literal span on import/export specifiers to only include string literal ( #540 )
2019-12-29 16:18:14 +09:00
강동윤
31c1bc8a8a
Use browserslist by default if env is specified but targets are not specified
2019-12-28 23:43:23 +09:00
강동윤
a8d7482294
Revert "Run browserslist if the target is not specified"
...
This reverts commit f0c2021c5e
.
2019-12-28 23:08:02 +09:00
강동윤
f0c2021c5e
Run browserslist if the target is not specified
2019-12-28 23:06:39 +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
강동윤
8562d3fbfb
Fix parser ( #539 )
...
swc_ecma_parser:
- mark `declare` as `declare` (#538 )
- fix span of `export * from 'foo'` (#535 )
2019-12-28 12:19:44 +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
강동윤
b98f17b84d
Bump versions
2019-12-26 08:53:13 +09:00
David Sherret
32860576f2
Comment and TokenAndSpan - Implement Spanned ( #534 )
2019-12-26 08:35:43 +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
강동윤
d8541c4f63
Fix a bug
2019-12-23 14:37:25 +09:00
David Sherret
668c2713d9
Support numeric separator for typescript. ( #524 )
2019-12-23 14:35:58 +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
강동윤
ed8ba26ae6
Fix tests
2019-12-21 17:09:53 +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
강동윤
51d21af031
Fix #516
2019-12-19 13:08:52 +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
강동윤
f9a649ff7a
Bump version
2019-12-15 08:15:26 +09:00
David Sherret
fb9539df6f
Expose token module. ( #510 )
...
swc_ecma_parser:
- expose token module
2019-12-15 08:08:13 +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
강동윤
5076249c90
fixup! Add a test for #503
2019-12-13 08:38: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
강동윤
d53c94f1fb
Bump parser's version.
...
Closes #500
2019-12-11 15:56:27 +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
강동윤
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
Nurbol Alpysbayev
79128a1d1e
Typo ( #497 )
2019-12-11 07:09:45 +09:00
Nurbol Alpysbayev
2f4ce50d06
Fix the Wasm blocker for Parser ( #495 )
2019-12-11 00:02:39 +09:00
강동윤
30869dc340
Fix template_literal in a script
2019-12-10 11:57:22 +09:00
강동윤
ef45401a18
Update tests
2019-12-10 10:50:37 +09:00
강동윤
cd486288b7
Bump version
2019-12-10 07:23:27 +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
강동윤
bc19ee274b
Update parser test references
2019-12-02 17:12:53 +09:00
Zimon Dai
ec086a1dab
use 2018 edition syntax ( #479 )
2019-12-02 17:10:05 +09:00
강동윤
776e014a11
Fix tests ( #478 )
2019-12-01 18:11:59 +09:00
강동윤
153cf36168
Jsonify large pure object literals ( #477 )
...
swc_ecma_transforms:
- add `jsonify` transform
2019-12-01 17:32:44 +09:00
강동윤
3f2477196c
Fix typescript enum
2019-12-01 11:27:28 +09:00
강동윤
265eb9e30c
Improve performance of serialization and deserialization ( #475 )
2019-11-30 14:49:18 +09:00
강동윤
51558c6c36
Final groundwork for plugin ( #474 )
...
swc:
- add serialization tests
ast_node:
- handle `*` tag properly
swc_ecma_ast:
- update serialization of ExprOrSpread
2019-11-30 11:12:34 +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
강동윤
41c6941dc5
fixup! Don't omit empty values while serializing
2019-11-28 17:53:03 +09:00
강동윤
95a59338d3
Don't omit empty values while serializing
2019-11-28 17:49:51 +09:00
강동윤
5532e628b2
Don't run cargo clippy on push
2019-11-28 13:38:11 +09:00
강동윤
747a07f566
Update submodules
2019-11-26 20:42:41 +09:00
강동윤
b81200b1db
Update references
2019-11-26 11:31:16 +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
강동윤
7d4168f415
Parser performance ( #463 )
...
- Update string_cache from 0.7 to 0.8
- Update unicode_xid from 0.1 to 0.2
swc_ecma_parser:
- Add benchmarks for lexer
2019-11-23 23:03:19 +09:00
강동윤
fa941b3ea3
resolver: Handle arrow expression correctly ( #462 )
...
swc_ecma_transforms:
- resolver: Handle arrow expression correctly (#462 )
2019-11-23 19:14:52 +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
강동윤
4a80790d73
Add benchmark for typescript parser
2019-11-22 21:13:14 +09:00
강동윤
107c35fb41
Fix renaming bug related to import ( #457 )
...
- Fix renaming bug related to import (#456 )
- Add tests for common_js / umd / amd
2019-11-20 21:32:42 +09:00
강동윤
210686011d
Resolver: Handle hoisting ( #455 )
...
swc_ecma_transforms:
- resolver: Handle variable hoisting
- resolver: Handle function hoisting
2019-11-19 19:10:15 +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
강동윤
d50ab99ef0
Fix #451 ( #452 )
...
swc_ecma_parser:
- Fix parser of eval and arguments
swc_ecma_transforms:
- Improve fixer (#451 )
2019-11-18 18:19:25 +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
강동윤
350f609afd
Allow accessing same constant from static property and constructor ( #445 )
...
Fix #443 .
2019-11-15 18:36:43 +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
강동윤
25523f45bd
Remove unsafe
2019-11-13 20:00:21 +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
강동윤
076957661d
Fix a test
2019-11-10 15:23:40 +09:00
강동윤
264dcf0d7b
Fix #439
2019-11-10 13:21:44 +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
강동윤
2add7a08ef
fixup! Bump versions
2019-10-23 22:22:54 +09:00
강동윤
4a41140854
Bump versions
2019-10-23 22:20:00 +09:00
강동윤
7f5d3a4db1
Fix parsing of single untyped param in IIFE
...
Closes #433
2019-10-23 20:53:28 +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
강동윤
01b1cc1a5e
Update rustfmt
2019-10-19 12:21:56 +09:00
dependabot[bot]
2ca5aa5766
Bump js-yaml from 3.12.0 to 3.13.1 in /ecmascript/transforms ( #426 )
...
Bumps [js-yaml](https://github.com/nodeca/js-yaml ) from 3.12.0 to 3.13.1.
- [Release notes](https://github.com/nodeca/js-yaml/releases )
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md )
- [Commits](https://github.com/nodeca/js-yaml/compare/3.12.0...3.13.1 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:14:38 +09:00
dependabot[bot]
451f5938c9
Bump mixin-deep from 1.3.1 to 1.3.2 in /ecmascript/transforms ( #428 )
...
Bumps [mixin-deep](https://github.com/jonschlinkert/mixin-deep ) from 1.3.1 to 1.3.2.
- [Release notes](https://github.com/jonschlinkert/mixin-deep/releases )
- [Commits](https://github.com/jonschlinkert/mixin-deep/compare/1.3.1...1.3.2 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:14:26 +09:00
dependabot[bot]
2c9f2e1f68
Bump handlebars from 4.0.12 to 4.4.0 in /ecmascript/transforms ( #429 )
...
Bumps [handlebars](https://github.com/wycats/handlebars.js ) from 4.0.12 to 4.4.0.
- [Release notes](https://github.com/wycats/handlebars.js/releases )
- [Changelog](https://github.com/wycats/handlebars.js/blob/v4.4.0/release-notes.md )
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.0.12...v4.4.0 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:14:13 +09:00
dependabot[bot]
09e911bec8
Bump lodash from 4.17.11 to 4.17.15 in /ecmascript/transforms ( #427 )
...
Bumps [lodash](https://github.com/lodash/lodash ) from 4.17.11 to 4.17.15.
- [Release notes](https://github.com/lodash/lodash/releases )
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.15 )
Signed-off-by: dependabot[bot] <support@github.com>
2019-10-05 14:13:59 +09:00
강동윤
9f1fca55ff
Update rustc toolchain to nightly-2019-09-30
2019-10-02 13:53:56 +09:00
강동윤
3a637d4229
fix this
in async generator ( #425 )
...
swc_ecma_transforms:
- Don't delete test file when an execution test fails
- fix #400
2019-10-01 23:42:05 +09:00
강동윤
d7d22c2d5e
Optional try catch binding ( #422 )
...
swc_ecma_parser:
- Add test for optional try catch binding
swc_ecma_transforms:
- Implement optional catch binding (#411 )
2019-09-22 19:31:32 +09:00
강동윤
febe34e280
Publish swc_ecma_transforms
2019-09-22 17:55:35 +09:00
강동윤
2bd4475c5d
Fix codegen tests
2019-09-20 23:39:19 +09:00
강동윤
61a1367974
Fix #410
2019-09-20 23:35:45 +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
강동윤
c7abda95d4
typescript const assertion ( #419 )
...
Fixes #401 .
2019-09-18 22:54:12 +09:00
강동윤
bf70946546
Fix #417
...
process.env['X'] is now supported
2019-09-18 16:15:13 +09:00
강동윤
5a47c7a15c
Fix 1 - (1 - 1)
( #418 )
2019-09-18 16:05:36 +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
강동윤
54cf8fbb96
Fix ( #398 )
...
swc_ecma_transforms:
- Fix resolver (#396 )
- Add tests for #395
2019-06-16 10:22:15 +09:00
강동윤
0e1991f62d
Fix bugs ( #394 )
...
- Add a test case for #392
- Add tests for #389
- Fix #388
- Fix #387
- Add tests for #392
swc_ecma_parser:
- Make non-last rest paramters in object pattern error
- `...` must be followed by an identifier
2019-06-03 21:54:09 +09:00
Erik Desjardins
07bf194e61
Simplify: left.rhs * right
is only safe when operators are the same
2019-05-16 14:10:06 -04:00
강동윤
b5bbbc0cd6
publish atoms
2019-05-02 16:06:42 +09:00
강동윤
0b4f06027d
Version
2019-05-02 16:02:45 +09:00
강동윤
aa06bb7cc9
Bump version
2019-05-02 15:52:39 +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
강동윤
786117c16c
Fix #382
2019-04-30 22:32:06 +09:00
강동윤
b4dde98c09
Fix #380 ( #381 )
...
swc_ecma_parser:
- fix parsing of dot after dynamic imports (#380 )
- fix parsing of dynamic imports on top level
2019-04-29 23:36:30 +09:00
강동윤
0d52148dcd
Bugfixes ( #375 )
...
swc_ecma_transforms:
- fix hygiene for decorators (#367 )
- add test for react with common js module (#351 )
swc_ecma_parser:
- add test for string escape problem (#350 )
2019-04-28 14:58:52 +09:00
강동윤
b44da9dbe4
Fix #369 , #370 ( #373 )
...
swc_common:
- don't emit `loc` for dummy spans
swc_ecma_transforms:
- prevent hygiene from changing key in object pattern (#369 )
- fix module tests (iteration order of FxHashSet is changed)
swc_ecma_parser:
- fix parsing of arrow function (#370 )
2019-04-27 16:28:34 +09:00
강동윤
d40600fd46
Make span not optional
2019-04-26 20:33:34 +09:00
강동윤
b329d34632
Fix codegen of async method property
2019-04-26 18:01:36 +09:00
강동윤
0ffd075588
Strip bodyless functions.
...
Closes #357 .
2019-04-11 21:20:50 +09:00
강동윤
9e333a153c
Fix #366
2019-04-11 21:11:21 +09:00
강동윤
ca220342e0
Fix #365
2019-04-11 21:04:06 +09:00
강동윤
56be56acea
Fix lints
2019-04-11 21:01:29 +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
寧靜
84973890e7
Update util.rs ( #352 )
...
swc_ecma_parser:
- handle unicode_xid properly
2019-03-19 21:51:12 +09:00
강동윤
5114dc9e95
Extract resolver pass ( #344 )
2019-03-14 15:54:33 +09:00
강동윤
8674a1dae9
Chores ( #341 )
...
- add tests for #340 .
- add backer
2019-03-12 17:24:51 +09:00
강동윤
13bf89d08c
Fix bugs ( #339 )
...
swc_ecma_parser:
- fix parsing of type query (#338 )
- fix parsing of `in` in a let / const declaration (#337 )
swc_ecma_transforms:
- string literal is computed (#336 )
- modules: handle imports in lhs of assignment correctly (#335 )
2019-03-11 20:33:15 +09:00
강동윤
2025f20e8c
Handle imported stuffs in shorthand property. ( #333 )
...
swc_ecma_transforms:
- handle imported stuffs in shorthand property (#332 )
2019-03-10 22:17:08 +09:00
강동윤
a40518f667
v1.0.36 ( #330 )
...
swc_ecma_parser
- decorator_before_export is true for typescript. (#325 )
- fix parsing of dynamic imports. (#328 )
- fix parsing of conditional expression. (#327 )
2019-03-09 09:07:15 +09:00
강동윤
248a53ce7c
Make deserialization faster ( #324 )
...
swc_ecma_ast:
- make deserialization faster
2019-03-08 11:36:23 +09:00
강동윤
dd5f17463e
hygiene now handles class name correctly ( #323 )
2019-03-07 22:42:16 +09:00
강동윤
a311f42acf
Bugs ( #321 )
...
swc_ecma_parser:
- add a test to ensure that \r\n is lexed correctly (#316 )
swc_ecma_transforms:
- destructuring pass now handle variable exports correctly (#317 )
- es2017::async_to_generator now handles module items. Fix #319 .
- prevent hygiene pass from de-exporting class and funcrion (#315 )
2019-03-07 15:48:45 +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
강동윤
b4a391b3a7
es2015::destructuring pass ( #312 )
...
swc_ecma_transforms:
- es2015::destructuring pass now uses computed member if necessary. (#311 )
2019-03-05 17:44:47 +09:00
강동윤
5f16412273
Fix class properties pass ( #310 )
...
swc_ecma_transforms:
- Class properties pass handle nested scope correctly (#308 )
2019-03-03 17:01:23 +09:00
강동윤
b5d3b9a7c7
Initialize var to undefined in loops ( #306 )
...
swc_ecma_transforms:
- block_scoping: initialize var to undefined if it's declared in a loop (#305 )
2019-03-02 16:19:19 +09:00
강동윤
5dc4ba181d
Improve fixer ( #304 )
...
swc_ecma_transforms:
- fixer: handle member exprssion correctly
- fixer: handle binary expression correctly
- fixer: handle conditional expression correctly
- fixer: handle unary expression correctly
2019-03-01 22:50:43 +09:00
강동윤
1a0f1108a1
Bugs ( #303 )
...
swc_ecma_transforms:
- report error if jsx namespace is used (#301 )
2019-03-01 18:18:57 +09:00
강동윤
a2144bbbf5
Handle escapes in jsx attributes. Fix #299 .
2019-03-01 16:31:26 +09:00
강동윤
99e34ddbbd
Fix #295 ( #298 )
...
swc_ecma_transforms:
- hygiene::operator now handles export correctly (#295 )
- make function hoisting respect directives
2019-03-01 14:02:33 +09:00
강동윤
21f3f792d1
Fixes ( #294 )
...
swc_ecma_transforms:
- block_scoped_fn: don't fold self-modifing functions. (#288 ).
- fixer: fix assignment in conditional expression (#293 )
- make resolver work with self modifying function (#292 )
2019-02-28 23:07:31 +09:00
강동윤
f49fbea2af
Update referenes
2019-02-28 19:30:58 +09:00
강동윤
a46804ab48
swc_ecma_ast:
...
- Split class member / property into separate types
2019-02-28 19:25:38 +09:00
강동윤
8c1b773eec
Bug fixes ( #289 )
...
swc_ecma_transforms:
- fix assignment expression in callee position (#286 )
- don't name funtion if function's body reference function name (#288 )
2019-02-28 16:30:56 +09:00
강동윤
cdf4a09e65
Fixes ( #283 )
...
swc_ecma_transforms:
- Remove State / Clone
- Fix hygiene bug of labels (#281 )
- Fix sequence expression in unary expression (#282 )
2019-02-27 22:40:19 +09:00
강동윤
892b4f01cd
FIx #280
2019-02-27 18:56:12 +09:00
강동윤
ae91b724b7
Fix helpers
2019-02-27 18:46:34 +09:00
강동윤
74dc5582f1
Don't inject @swc/helpers if nothing is used
2019-02-27 18:31:30 +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
강동윤
a75dbdf2f2
Update references
2019-02-25 19:47:53 +09:00
강동윤
b6a4d1548a
FIx
2019-02-25 19:14:23 +09:00
강동윤
27cd169522
More works for ast node serialization
2019-02-25 19:07:20 +09:00
강동윤
3e2750ba5e
Make const_module pass parse expressions itself
2019-02-25 12:42:23 +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
강동윤
78f4b25480
Bug Fixes ( #273 )
...
swc_ecma_transforms:
- fix spread pass (#270 )
- add babel's fixture tests for spreads
- change order of passes (#271 )
- handle updates of private class fields (#272 )
2019-02-23 21:56:12 +09:00
강동윤
7dcb2e34af
Add test for #269 .
2019-02-22 15:55:04 +09:00
강동윤
a785ecc960
Add const_modules pass ( #268 )
...
swc_ecma_transforms:
- use fxhash for inline_globals pass
- handle member expression in inlne_globals pass
- add const_modules pass
2019-02-22 15:42:27 +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
강동윤
8f932c374e
Fix visibillity
2019-02-21 22:29:06 +09:00
강동윤
07e2cffb43
Fixes ( #265 )
...
swc_ecma_parsr:
- fix parsing of invalid utf8 characters (#261 )
- fix parsing of function body (#257 )
- fix parsing of () => (x = true) (#259 )
swc_ecma_transforms:
- fix default arguments in arrow expression (#254 )
- fix assignment pattern in array pattern (#260 )
- make amd / umd configurable. (#262 )
2019-02-21 22:21:48 +09:00
강동윤
e9b06c5de2
Improve fixer ( #263 )
...
swc_ecma_transforms:
- fixer does not breaks cast to boolean (#252 )
- fixer does not break conditional expression with comma expressions (#255 )
2019-02-21 14:49:13 +09:00
강동윤
162dee5518
Fix bugs ( #251 )
...
swc_ecma_transforms:
- don't convert typeof to _typeof if not necessary (#250 )
- fix imports of `@swc/helpers` (#248 ).
2019-02-20 20:02:22 +09:00
강동윤
601f0feb14
Hoist functions in block scoped function pass.
...
Fix #245 .
2019-02-20 12:10:28 +09:00
강동윤
76ce98b685
Implement serialize for ast nodes ( #244 )
...
swc_common:
- implement Serialize / Deserialize for span
swc_ecma_parser:
- use json instead of {:#?} while testing
- update test references
2019-02-20 11:35: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
강동윤
4fddea0bbd
swc_ecma_transforms:
...
- remove this parameter from typescript::strip pass (fixes #236 )
2019-02-19 14:30:26 +09:00
강동윤
4dc10d849e
Fixes ( #237 )
...
swc_ecma_transforms:
- handle pattern correctly in coomon_js pass (#235 )
- fix object rest in arrow expression (#233 )
2019-02-19 12:52:03 +09:00
Nate Mara
6fd789aa34
Remove dbg! macro call ( #232 )
2019-02-19 10:34:12 +09:00
강동윤
aa8940c1b0
Fix #226 .
...
Now parser works correctly when either
exportDefaultFrom and exportNamespace is enabled
2019-02-18 23:43:53 +09:00
강동윤
4917bbaf44
Fix test
2019-02-18 22:34:32 +09:00
강동윤
3252988e6a
Update fixer.
...
Fixes #231 .
2019-02-18 22:31:50 +09:00
강동윤
59f6a6ffb6
Handle react fragment in top level.
...
Fixes #229 .
2019-02-18 18:08:40 +09:00
강동윤
1368a4a281
Fix #227
2019-02-18 15:05:58 +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
강동윤
523307a5da
FIx #225
2019-02-18 12:19:40 +09:00
강동윤
d8f9101b30
Fix #227
2019-02-18 11:15:04 +09:00
강동윤
3fc360d870
Make sourcemap optional
2019-02-17 23:25:35 +09:00
강동윤
a00d281704
Make Optional
pass
2019-02-17 17:52:48 +09:00
강동윤
e419d7d378
Cache react config ( #224 )
...
swc_ecma_transforms:
- global codemap / parser session for config parsing
- cache parsing result of react pass
- InjectHelpers pass does not require source map
2019-02-17 17:11:21 +09:00
강동윤
bbfcca8f2b
External helpers ( #223 )
...
swc_ecma_transforms
- support extenal helpers (#155 )
2019-02-17 13:48:18 +09:00
강동윤
33ab0db712
Fix travis ( #222 )
...
swc_common:
- ignore copied doctests
swc_ecma_transforms:
- fox some tests
2019-02-16 18:58:29 +09:00
강동윤
046788cf78
Add option to disable module analyzer
2019-02-16 14:27:24 +09:00
강동윤
1a1889f437
Fix bugs ( #221 )
...
swc_ecmascript_parser:
- fix parsing of `export default from 'src';`
swc_ecmascript:
- add a pass which allows injecting helpers before the module pass
2019-02-16 14:18:22 +09:00
강동윤
9108ba7bb7
Don't inline process.env.x if x is not registered as global.
...
Fix #215 .
2019-02-15 14:06:16 +09:00
강동윤
ad49de35b3
Handle foo && yield bar
( #218 )
...
Fix #216 .
2019-02-15 13:58:10 +09:00
강동윤
1d865b9979
Strip type-only imports ( #217 )
...
swc_ecma_transforms:
- strip type-only imports (#179 )
2019-02-15 12:14:28 +09:00
강동윤
34fff56462
Add a test for #211 .
...
Closes #211 .
2019-02-14 21:17:01 +09:00
강동윤
9bd7a9c484
Perfect fixer ( #212 )
...
swc_ecma_transforms:
- test fixer using test262
- make fixer perfect
2019-02-14 21:12:05 +09:00
강동윤
b76c4f26e6
Fix #210 .
2019-02-14 17:46:22 +09:00
강동윤
e20998d69b
FIx #209
2019-02-14 16:06:54 +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
강동윤
c1a3cc53c1
React jsx / improve fixer ( #202 )
...
swc_ecma_parser:
- fix parsing of jsx
swc_ecma_transforms:
- fix fixer (#199 )
2019-02-13 19:12:00 +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
강동윤
fedfea4e09
Fix #190
2019-02-13 14:24:44 +09:00
강동윤
a13e6a09b5
Fix #185 ( #187 )
...
swc_ecma_transforms:
- handle imports correctly (in rhs of assignment)
2019-02-13 12:32:12 +09:00
강동윤
74858c3b66
Fix #167 ( #186 )
2019-02-13 11:56:45 +09:00
강동윤
bf128d295f
Add test for #182 .
...
Closes #182 .
2019-02-13 11:33:28 +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
강동윤
f797019b79
Use strict ( #183 )
...
swc_ecma_parser:
- fix parsing of use strict without semicolon.
swc_ecma_transforms:
- emit helpers after use strict.
2019-02-13 08:44:54 +09:00
강동윤
fc661f24f0
Bugfixes ( #182 )
...
swc_ecma_ast:
- rename ast to be consistent
2019-02-13 08:18:19 +09:00
강동윤
cc36bbe3ad
Add tests for #169 .
2019-02-12 22:18:14 +09:00
강동윤
bd219688ac
Typescript bugs ( #170 )
...
swc_ecma_parser:
- fix parsing of cond expression (Closes #158 )
- fix parsing of function signature (Closes #159 )
2019-02-12 22:05:46 +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
강동윤
45e78e40d4
Amd & Correct named exports ( #165 )
2019-02-12 11:41:08 +09:00
강동윤
a0c6b4458e
Revert "Amd & Fix for exports ( #164 )" ( #166 )
...
This reverts commit 8c5c7b55b7
.
2019-02-12 11:40:36 +09:00
강동윤
8c5c7b55b7
Amd & Fix for exports ( #164 )
...
swc_ecma_transforms:
- correctly tracks exported names.
- Implement amd
Fix #162
2019-02-12 11:23:19 +09:00
Nate Mara
42f94a3f24
Remove HERE eprintln ( #161 )
2019-02-12 06:24:12 +09:00
강동윤
d98219cd42
Reduce vtable size of Pass.
2019-02-11 19:11:14 +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
Adrian Adamiak
c2142bc225
Remove a leftover ( #149 )
...
Remove unused variable from colors.js
2019-02-11 09:40:53 +09:00
nateroling
5afed275f1
Typo correction ( #150 )
...
Fix a couple comment typos.
2019-02-11 09:40:28 +09:00
강동윤
ab4f619257
Fix tests ( #142 )
2019-02-10 20:49:29 +09:00
강동윤
605019280f
Fix parsing of import expression
2019-02-10 14:33:21 +09:00
강동윤
b1bf99c67c
improve error messages
2019-02-10 12:26:27 +09:00
강동윤
3b8d36dc58
Parse dynamic imports
2019-02-10 12:07:40 +09:00
강동윤
654f55b658
Closes #137 , Closes #138
2019-02-09 12:19:20 +09:00
강동윤
7482836d5e
Support typescript constructor parameter property
2019-02-08 18:13:32 +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
강동윤
cc83b863ec
Threading support
2019-02-06 12:09:42 +09:00
강동윤
17ed32a73c
Fix common_js::lazy
2019-02-05 15:47:17 +09:00
강동윤
c5e18e06d1
Use objekt::Clone
2019-02-05 15:24:30 +09:00
강동윤
ea013a1e12
Export module configs
2019-02-05 14:33:29 +09:00
강동윤
4c6c4bc595
Make Helper scoped thread local ( #134 )
...
This allows injecting helpers per file without any multi threading issue.
2019-02-05 14:15:38 +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
강동윤
33fe3a9515
Remove dbg!
2019-02-02 23:17:06 +09:00
강동윤
ca6f4eb096
Remove unnecessary logging
2019-01-31 19:49:02 +09:00
강동윤
d8d117b494
implement Clone for HelperResetter
2019-01-31 19:44:34 +09:00
강동윤
976943ba97
Add HelperResetter
pass ( #132 )
2019-01-31 19:39:26 +09:00
강동윤
f914c8579e
Revert "Fix Arc<Helpers> ( #130 )" ( #131 )
...
This reverts commit 6865370205
.
2019-01-31 18:22:35 +09:00
강동윤
6865370205
Fix Arc<Helpers> ( #130 )
...
Don't clone Arc<Helpers>
2019-01-31 15:14:49 +09:00
강동윤
e681ae37e4
mute resolver
2019-01-30 13:09:21 +09:00
강동윤
e63be11d0e
Fix order of the classes pass
2019-01-30 13:05:45 +09:00
강동윤
c87fac213a
Add a test about inheriting native class
2019-01-30 11:30:09 +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
강동윤
90135ede1e
fix a bug
2019-01-24 16:41:19 +09:00
강동윤
fd79f4eb78
fix swc_ecma_codegen
2019-01-24 16:18:39 +09:00
강동윤
c648232864
Classes improvements ( #123 )
...
Now swc passes all tests from `@babel/plugin-transform-classes`
2019-01-24 16:07:09 +09:00
강동윤
0bca2e6ff5
Fix tests
2019-01-23 11:06:17 +09:00
강동윤
3d13d330bb
swc_ecma_codgen for stable rust ( #122 )
...
Now swc_ecma_codegen can be built with stable rust
2019-01-23 10:55:47 +09:00
강동윤
9313b04c6c
Enable some assertions and fix ICE on release mode
2019-01-22 12:37:51 +09:00
강동윤
4379515f00
Bump version
2019-01-20 11:10:31 +09:00
강동윤
f87e2fb123
Fix parser
2019-01-20 11:08:26 +09:00
강동윤
cb12e13a0b
Fix cfg(not(procmacro2_semver_exempt))
2019-01-19 09:31:31 +09:00
강동윤
29c5faed9b
Remove usage of nightly features
2019-01-18 10:26:04 +09:00
강동윤
d534ebcba7
swc_ecma_codegen v0.5.0
2019-01-18 00:11:41 +09:00
강동윤
8ff21b9c99
Bump version (again)
2019-01-18 00:01:10 +09:00
강동윤
ca235e1c67
Bump version
2019-01-17 23:58:43 +09:00
강동윤
3facfd8810
Bump version
2019-01-17 23:57:56 +09:00
강동윤
12944c006a
Fix to publish it
2019-01-17 23:38:45 +09:00
강동윤
eebf14fbef
Allow stable rust ( #118 )
...
This pr introduces some cargo features. For `swc_common` and `swc_ecma_ast`, it introduces a feature flag `fold`.
`Fold` and `Visit` traits exist only if the feature is enabled.
For `swc_ecma_parser`, flag called `verify` is added. When disabled, we skip checking of validity of some expressions.
e.g. `{foo = bar}`
Verification is disabled by default it requires nightly compiler
2019-01-17 23:17:16 +09:00
강동윤
338759110f
Fix parsing of large integers
2019-01-16 11:53:41 +09:00
강동윤
bb28d81ed4
Strip typescript declarations
2019-01-15 20:51:13 +09:00
강동윤
a126afaf42
Better error messages for unimplemented!
s
2019-01-15 20:18:41 +09:00
강동윤
b9eb110549
Cache compiled helpers
2019-01-15 11:53:43 +09:00
강동윤
e85bcce9cf
implement Clone for passes
2019-01-15 11:15:18 +09:00
강동윤
66eab1bc85
enable
flag for the simplifier pass
2019-01-15 10:59:40 +09:00
강동윤
1710bb6e8a
Allow using Pass
as a trait object
2019-01-14 17:54:42 +09:00
강동윤
2a49e1e896
implement clone for transform passes
2019-01-14 17:36:15 +09:00
강동윤
fefc4c88c7
camelCase for react options
2019-01-14 13:45:19 +09:00
강동윤
1fabc3fa3e
debug_assert! instead of assert!
...
This reduces binary size
2019-01-10 18:54:40 +09:00
강동윤
7aee29d91d
Fix tests
2019-01-10 18:33:32 +09:00
강동윤
d4fefa8615
Reduce binary size ( #116 )
...
- remove unused debug impls
2019-01-10 18:23:25 +09:00
강동윤
0f0dc1451a
Make procmacro2_semver_exempt optional
2019-01-09 09:46:38 +09:00
강동윤
eb22cfb1bd
default for syntax configs
2019-01-08 18:27:38 +09:00
강동윤
fc3a9d6180
.swcrc file for configuration ( #115 )
...
libswc:
- use config file
2019-01-08 16:34:35 +09:00
강동윤
ea610c6ded
Typescript & parser for decorators
...
swc_atoms:
- add some atoms
swc_ecma_ast:
- ast nodes for typescript
- `ClassMethod` -> `Method`, `ClassMethodKind` -> `MethodKind`
- private class method / class property
- use separate type for tagged template literals
- add `declare` field to `Decl`s
- make function body optional
swc_ecma_parser:
- rename Type to TokenContext
- support decorators
Note: error reporting for invalid decorator is not implemented yet
- merge `Config` into `Syntax`
- Use DiagnosticBuilder for error type
This is to make backtracking cheaper.
swc_ecma_transforms:
- add `strip` pass
2019-01-07 19:43:47 +09:00
강동윤
2e22397f42
Fix hygiene bug ( #109 )
2018-12-31 23:10:50 +09:00
Leviathan Jeanis
75e83860be
Update proc_macro2 to fix missing join()
2018-12-30 09:48:56 -06:00
강동윤
f89a227d5e
implement more traits for Syntax
2018-12-30 13:06:13 +09:00
강동윤
b437488082
implement es3::reserved_word ( #103 )
2018-12-30 12:56:04 +09:00
강동윤
72c9ac0b5a
remove unused fields
2018-12-30 12:14:51 +09:00
강동윤
603b83291d
jsx support ( #100 )
...
swc_ecma_parser:
- implement parser for jsx
swc_ecma_transforms:
- implement react::jsx transform
swc_ecma_codegen:
- implement code generator for jsx
2018-12-30 11:57:27 +09:00
강동윤
b6a0d2303b
Comment out printlns
2018-12-27 19:20:30 +09:00
강동윤
4d4e4ce979
Implement object rest / spread ( #98 )
...
swc_ecma_parser:
- improve parser's tests
It now shows the code failed to parse
- allow rest pattern in catch clause
- fix parsing of named export (semicolon)
swc_ecma_transforms:
- implement array spread
- add helper methods (objectWithoutProperties)
- add some fast paths
- make es2015::parameters handle catch clauses
- don't show helpers when execution failed
- export fixer
2018-12-26 17:09:48 +09:00
강동윤
fbf70a3803
improve performance
2018-12-24 12:49:00 +09:00
강동윤
22b40e2b17
implements async to generator ( #91 )
...
swc_ecma_parser:
- fix parsing of arrow expression
swc_ecma_codegen:
- fix codegen of async function
swc_ecma_transforms:
- implement es2017::async_to_generator
2018-12-24 10:58:40 +09:00
강동윤
a5362ebdb8
inline benchmark files and remove submodule
2018-12-22 18:35:44 +09:00
강동윤
6a0a2cf34e
Class getter / setter ( #86 )
...
Implement class getter / setter.
2018-12-22 12:15:04 +09:00
강동윤
145d6f39eb
For-of loop ( #85 )
...
Implements `es2015::for_of`
2018-12-21 21:39:42 +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
강동윤
ab7d46c5bc
Es2015 ( #80 )
...
swc_common:
- implement VisitWith for &T and [T]
swc_ecma_ast:
- fix codegen of `===`
swc_ecma_parser:
- fix parsing of array pattern
swc_ecma_transforms:
- implement es2015::destructuring
- implement es2015::computed_properties
- implement es2015::duplicate_keys
- implement es2015::parameters
- fix `InjectHelper` pass
Note that getters / setters in class are not supported yet
- Run execution tests via jest
- ignore es2016::exponentation tests
2018-11-28 12:24:08 +09:00
강동윤
33d296af31
block scoped function and tagged template literal ( #77 )
...
swc_ecma_transforms:
- implement es2015::block_scoped_functions
- implement tagged template literal without escape handling
- hygiene: rename to different number
- scope: handle pattern by folding children
swc_ecma_ast:
- use Str instead of String for template literal
swc_ecma_parser:
- fix lexer tests
- handle template literal correctly
template literals now have cooked field
swc_ecma_codegen:
- escape newline character and backslash ('\')
2018-11-25 11:31:48 +09:00
강동윤
8524d93e9a
spdy -> speedy & black box for benchmark
2018-11-23 19:52:46 +09:00
강동윤
7c58b89571
Scope analysis via ident hygiene ( #74 )
...
testing:
- preserve context of the span in `::testing::DropSpan`
swc_ecma_codegen:
- disable get_text_of_node to avoid deoptimization
swc_ecma_transforms:
- allow using this inside arrow expression
- implement es2015::block_scoping with hygiene ident
2018-11-23 19:22:07 +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
강동윤
3638dbc42c
Groundwork for linter ( #73 )
2018-11-20 18:32:53 +09:00
강동윤
dc8e178088
fix parser tests
2018-11-19 19:58:35 +09:00
강동윤
c816d699ca
Improve ast ( #70 )
...
* Update ast (bool -> Option<Span>)
* fixup! Update ast (bool -> Option<Span>)
2018-11-19 15:52:06 +09:00
강동윤
cd51cb1731
Make procmacro2_semver_exempt optional ( #67 )
...
* Reduce compile time of tests.
* Make procmacro2_semver_exempt optional
* Bump versions
2018-11-18 19:57:35 +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
강동윤
8e0e9ca4c7
Make it thread safe
2018-11-17 17:02:34 +09:00
강동윤
b3a9d1a264
Cleanup ( #64 )
...
- rename packages to be consistent
- `swc_macros` is removed. Now macros are imported with `extern crate macro_name` instead of `extern crate swc_macros`.
- manage atoms with words.txt file
2018-11-17 16:38:23 +09:00
강동윤
fb08c18f7e
Support es2019 ( #63 )
...
ast:
- Update ast to match es2019 spec
parser:
- implement es2019 parser
- ignore an old test
codegen:
- fix
testing:
- better output while testing (when failed)
transforms:
- fix
2018-11-17 12:30:49 +09:00
강동윤
63ee25f0c5
Cleanup ( #62 )
...
- do not reexport swc crates
- Add benchmark for parser
135ns/op on my macbook pro
- remove unused script
- Update README.md
- Make features section complete
2018-11-17 10:02:40 +09:00
강동윤
f8ea0bdfea
fix
...
It's not rust code..
2018-11-16 20:26:04 +09:00
강동윤
309a9de0fd
Fix tests & upgrade deps ( #60 )
...
common:
- upgrade rustc-ap crates to 297
- swc_common does not reexport sourcemap anymore
- update rustfmt to 0.99.6
simplifier:
- make some tests success when source code is equavalent
- implement fixer to fix ast broken by simplifier
- implement bit shift operators
- fix str.length
- ignore some tests
compat:
- fix `**=`
- fix es3::prop_lits
2018-11-16 20:09:17 +09:00
강동윤
4f1dc24e40
Update deps ( #59 )
...
* constructor codegen
* Update string_cache to 0.7
* make swc_common not depend on sourcemap
* Remove unused dependencies
* update either to 1.5.0
* update rustc-ap crates to 297
* remove unused dependency (fnv)
2018-11-16 11:56:04 +09:00
강동윤
7b56b0bc74
Improve codegen ( #57 )
...
* travis: make it faster
* better codegen
* Move enable_comments field to config
2018-11-15 21:43:04 +09:00
강동윤
6234fd7a21
parse "constructor"() as constructor ( #56 )
2018-11-15 21:29:47 +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
강동윤
5cf15cb40f
Fix tests by updating references ( #53 )
2018-11-14 21:36:37 +09:00
강동윤
9a5de4beb6
More transcompilers ( #49 )
...
transforms:
- implement String.length simplifier
- implement more arithmetic operations
- new Date() is side-effect free
- implement left.rhs * right
- optimize `SeqExpr` while creation
- implement es3 - member expression literals pass
- implement es2015 - classes pass
codegen:
- handle infinity correctly
- disable comments for testing (it's buggy)
ast:
- add methods about reserved words
2018-11-14 19:40:46 +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
강동윤
e12dcf0452
Compiler baseline
...
- Fix binary
- Add base for transformers
This will be last large squash.
2018-11-03 16:56:43 +09:00
강동윤
f9be576e02
Ecmascript codegen ( #40 )
...
Comment is not fully supported yet
2018-10-25 13:17:05 +09:00
강동윤
0a5f3f4ab5
rustup to 2018-08-29\ ( #39 )
...
- libswc is broken
2018-09-16 20:25:41 +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
강동윤
79f3660f0f
Downgrade rust toolchain to 2018-02-01 ( #37 )
2018-03-09 16:56:43 +09:00
강동윤
4d5efb4a9b
Fix test262-parser-tests
2018-03-08 11:17:41 +09:00
강동윤
442302553d
Fix library tests for parser
2018-03-08 11:04:25 +09:00
강동윤
57944ab70e
Update parser to new ast.
...
Tests are not updated yet.
2018-03-07 17:14:16 +09:00
강동윤
6141206963
Use spanned, interned string instead of raw string.
2018-03-07 16:50:25 +09:00
강동윤
7908aaa6c1
Some more refinements for ast.
...
* All fields are public.
* Enabled some lints.
2018-03-07 14:05:09 +09:00
강동윤
f11434ee3c
[WIP] Update parser
2018-03-06 22:34:42 +09:00
강동윤
160f5dc367
Add RestPat
2018-03-06 15:44:28 +09:00
강동윤
00bcd8f9af
Don't use #[ast_node] for temporary for-head
2018-03-06 15:07:52 +09:00
강동윤
077e0c551f
implement #[span]
2018-03-04 15:17:52 +09:00
강동윤
e1764f907b
[WIP] Make ast nodes contain span
...
* `struct Expr` + `enum ExprKind` -> `enum Expr`
`Expr` / `ExprKind` approach does not work well with recursive
processing based on the type system because we can't access common
fields like span while processing child node like `MemberExpr`.
As ast processing is inherently recursive, we should use a
recursive-friendly approach.
* `#[derive(FromVariants)]`
It creates lots of `From<T>` to help using ast enums as a real sum type.
* `#[derive(Spanned)]`
Inspired by https://docs.rs/syn/0.12.13/syn/spanned/trait.Spanned.html
It does not handle attributes yet.
* Parser is not updated yet.
2018-03-03 19:37:01 +09:00
강동윤
171abda3c0
Implement #[derive(StringEnum)]
2018-03-02 14:50:50 +09:00
강동윤
10f83f3f02
Fix rls (again) ( #33 )
...
* Don't use `#[parser]` in lexer
* Don't use `#[parser]` in parser/util.rs
* Pin rust toolchain to nightly-2018-02-28
2018-02-28 14:35:52 +09:00
강동윤
67daa4c4e4
Fix a test about float parser ( #32 )
...
See https://github.com/rust-lang/rust/pull/48235
2018-02-27 15:31:50 +09:00
강동윤
4a30fb3436
Testing framework ( #31 )
...
- Make rls happy.
- Some minor parser error improvements.
- Add reference files for ecmascript parser errors.
- Improve error message of import/export used outside of a module
2018-02-27 13:21:57 +09:00
강동윤
fa40c8ddf3
Make rls work
...
rust-analysis chokes with `Option<Box<Expr>>` style fields.
Rls only shows a warning on the crate with that fields, but ICEs on
dependent crates.
This can be workarounded by using `Option<(Box<Expr>)>`.
Also, using multiple glob imports is bad for rls.
So this commit deglobs them.
2018-02-03 20:00:03 +09:00
강동윤
056a11dd06
chores: cleanup for docs; no email from travis
2018-01-27 15:14:53 +09:00
강동윤
59f11a83d1
fixup! fix tests
2018-01-27 13:42:04 +09:00
강동윤
92c7defc2e
fix tests
2018-01-27 11:31:45 +09:00
강동윤
5602c376e5
Implement error reporting for ecmascript parser
...
Passes all test262-identity tests and all fail tests.
2018-01-26 21:53:30 +09:00
강동윤
9b2a5880bb
Use FileMap as an input.
2018-01-23 21:38:48 +09:00
강동윤
0a2473fe1c
Improve error reporting of ecmascript parser
...
And drop nll because it's currently too slow.
2018-01-22 21:47:16 +09:00
강동윤
4d52cb49d4
Implement error reporting.
...
* Use syntax_pos and rustc_error.
* Use syntax_pos::Span
2018-01-21 17:47:37 +09:00
강동윤
9c646596c5
Fix ecmascript parser.
...
* Make span inclusive-exclusive.
* Fix array parsing.
2018-01-17 14:06:05 +09:00
강동윤
d6e61f9638
Make expression and statement consistent. Fixes #19
2018-01-16 11:35:05 +09:00
강동윤
06731dfcb5
Cleanup and documentations for swc_common.
...
* Remove CanIUse trait, which will be reimpplemented in future
using Visitor.
* Remove some other unused stuffs.
* Change public path of swc_common::fold::* to swc_common::*.
2018-01-15 10:33:18 +09:00
강동윤
fd5b4d0dc0
Revert "Merge remote-tracking branch 'refs/remotes/origin/simplifier'"
...
This reverts commit 43fcbcbef2
, reversing
changes made to 15fde7b5ff
.
2018-01-14 14:00:01 +09:00
강동윤
b778f0c398
Rebase
2018-01-14 13:37:32 +09:00
강동윤
5a1c844549
[WIP] simplifier
2018-01-14 13:33:09 +09:00
강동윤
015ccb07f4
[WIP] Working for simplfier
2018-01-14 13:30:50 +09:00
강동윤
15fde7b5ff
add op! macro
2018-01-14 13:29:57 +09:00
강동윤
3b02b27d62
groundwork for docs
...
Ignore two tests. See #8 .
Add code coverage and travis to readme.
2018-01-13 20:42:52 +09:00
강동윤
58bc3b4ade
[WIP] Working for simplfier
2018-01-13 19:13:32 +09:00
강동윤
4a9d66a0f3
update test262.rs
2018-01-13 19:06:50 +09:00
강동윤
e949c40517
ECMAScript parser ( #1 )
...
- Parser and lexer for lastest ecma spec https://tc39.github.io/ecma262
- Lexer is currently very inefficient
- Use https://github.com/tc39/test262-parser-tests/ for testing.
- Implement proc-macro based ast folder and assert_eq_ignore_span! based on it.
- Some utilities for proc macro at /macros/common
2018-01-12 16:53:06 +09:00