Huáng Jùnliàng
03d7911be6
Implement class features in estree ( #12370 )
...
Co-authored-by: Kai Cataldo <kai@kaicataldo.com>
2021-02-21 20:12:12 +01:00
Sosuke Suzuki
9c567baa9b
Parse JS Module Blocks proposal ( #12469 )
2021-02-21 20:08:20 +01:00
Ikko Ashimine
4819ce70e4
refactor: fix typo in error.js ( #12808 )
...
postion -> position
2021-02-16 12:35:58 -05:00
Sosuke Suzuki
d242ea04c8
babel-parser(ts): Raise recoverable error for abstract interface ( #12771 )
...
* Support parsing abstract interface
* Address review
Address reviews
Address reviews
* Fix types
* Add hasFollowingLineBreak
2021-02-09 09:56:18 +01:00
Nicolò Ribaudo
e735266dee
Avoid importing .json files ( #12759 )
...
* Avoid importing `.json` files
* Use ESold in babel.config.json
* Use `import/extensions` eslint plugin
2021-02-05 23:34:36 +01:00
Huáng Jùnliàng
ecfe20395b
spec: disable await binding identifier within static block ( #12661 )
2021-02-01 21:55:43 +01:00
Huáng Jùnliàng
108564fdad
refactor: raise AwaitNotInAsyncContext when an AwaitExpression will be parsed ( #12716 )
...
* refactor: raise AwaitNotInAsyncContext when an AwaitExpression will be parsed
* tweak logic
* early exit when errors are before thrown error position
* fix: always return true in assert.throws callback
See https://nodejs.org/api/assert.html#assert_assert_throws_fn_error_message
* update test fixtures
* fix flow error
2021-02-01 10:46:43 -05:00
Nicolò Ribaudo
8cf0a757d5
Recover from "missing semicolon" errors ( #12437 )
...
* Recover from "missing semicolon" errors
* Update other tests
* Fix flow
* Fix windows test
* Add back deleted test
2021-02-01 10:08:43 +01:00
Sosuke Suzuki
8fcba6eb55
Raise recoverable error for await expressions in sync functions ( #12520 )
2021-01-24 01:45:27 +01:00
Huáng Jùnliàng
a0c1a9a9e4
Disallow non octal decimal escape before use strict ( #12366 )
2020-12-15 12:24:32 +01:00
Huáng Jùnliàng
8478027d1a
Make sure babel parser throws exactly same recoverable errors when estree plugin is enabled ( #12375 )
...
* refactor: introduce isPrivateName and getPrivateNameSV
* feat: check recoverable errors on estree-throw
* fix: pass through all params of parseBlockBody
* fix: set bigInt to null when invalid bigInt value is parsed
e.g. 0.1n
* fix: use string literal value in error message
When estree plugin is enabled, stringLiteral#extra.raw is not accessible. Use StringLiteral#value instead.
* refactor: introduce hasPropertyAsPrivateName
* fix: adapt to ChainExpression
* fix: port checkLVal early return for method in object pattern
* fix: throw new a?.() on estree
* fix: early return for __proto__ in accessors
* fix: test record element via isObjectProperty
* fix: pass through isLHS in toAssignable
* refactor: introduce isObjectMethod methods
2020-12-03 08:36:54 +00:00
Huáng Jùnliàng
89f3247e32
refactor: simplify isAwaitAllowed ( #12398 )
2020-11-25 13:49:35 -05:00
Huáng Jùnliàng
b564368d6e
refactor: reorder checkLVal parameters ( #12346 )
...
* refactor: reorder checkLVal parameters
* update allow list
* Apply suggestions from code review
2020-11-17 09:07:32 -05:00
Huáng Jùnliàng
5bbad8936b
fix: disallow all parenthesized pattern except parsing LHS ( #12327 )
...
* fix: disallow all parenthesized pattern except parsing LHS
* fix: forStatement requires LHS
* simplify toAssignable
* add more test cases
* fix: pass through isLHS on object property and assignment expression
* fix: record parenthesized identifier error for LHS
* remove duplicated skipped tests
* fix: do not record errors on ancestry arrow head
* Update packages/babel-parser/src/util/expression-scope.js
Co-authored-by: Brian Ng <bng412@gmail.com>
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-11-10 14:42:37 -05:00
Huáng Jùnliàng
766df9c369
fix: support string assertion key in assert entries ( #12281 )
...
* fix: support string assertion key in assert entries
* Update packages/babel-parser/src/parser/statement.js
Co-authored-by: Sosuke Suzuki <aosukeke@gmail.com>
Co-authored-by: Sosuke Suzuki <aosukeke@gmail.com>
2020-10-29 15:10:20 -04:00
Huáng Jùnliàng
b7754d3c82
fix: disallow import assertionts in export without from ( #12264 )
2020-10-28 07:07:20 +01:00
Huáng Jùnliàng
a8c66f4680
Handle exprAllowed before ObjectLike is parsed ( #12267 )
...
* fix: disallow expression after `}` is consumed in parseObjectLike
* refactor: avoid accessing this.prodParam in context update
2020-10-27 20:25:50 -04:00
Huáng Jùnliàng
ea2892fefc
add declare to class properties type annotations ( #12257 )
...
* add declare to class properties type annotations
* chore: use preset-flow
2020-10-27 10:05:01 -04:00
Huáng Jùnliàng
5b48f40a08
Polish parser errors ( #12258 )
...
* polish: update AwaitNotInAsyncFunction message
* polish: update YieldInParameter error message
* Apply suggestions from code review
Co-authored-by: Brian Ng <bng412@gmail.com>
* update test fixtures
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-10-26 20:55:04 -04:00
Huáng Jùnliàng
2782a549e9
Refactor yield await classification ( #12230 )
...
* fix: incomplete ParamKind declaration
* refactor: add expression scope handler
* test: update test262 allowlist
* chore: cleanup
* fix: push expression scope for function body
* fix: push new expression scope for initializer and static block
* test: add more test cases
* fix flow error
* refactor: remove unecessary expression scope
* fix: parameter initializer error should not cross expression scope boundary
* chore: cleanup outdated comments
* fix: do not record async arrow error on ParameterDeclaration
* Update packages/babel-parser/src/util/expression-scope.js
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
* polish: clear ancestry declaration error on validate
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2020-10-26 11:42:02 -04:00
Sosuke Suzuki
faaebfe91f
Support Import Assertions for re-export statement ( #12249 )
2020-10-26 15:18:45 +01:00
Brian Ng
c00bb14f79
[ts] Error on invalid type casts in JSX ( #12221 )
2020-10-23 08:09:35 -05:00
Nicolò Ribaudo
4fe8c3acc5
Revert "Fix: check if param is assignable when parsing arrow return type annotation" ( #12198 )
...
This reverts commit 84987a00e632e65bdafdf7f70df46ded7fb083c8.
2020-10-16 08:16:37 +02:00
Nicolò Ribaudo
84987a00e6
Reland "Fix: check if param is assignable when parsing arrow return type annotation" ( #12183 )
...
* Reland "Fix: check if param is assignable when parsing arrow return type annotation"
This reverts commit 91a7a64b4b0c30ab1fdfbb12f77522afa2285ec4.
* Mark `RestElement` as assignable
2020-10-15 11:32:37 -04:00
Nicolò Ribaudo
91a7a64b4b
Revert "Fix: check if param is assignable when parsing arrow return type annotation" ( #12173 )
...
This reverts commit 136e6301cbfa9448cfb20396f82f93f0d3e10c12.
2020-10-14 21:42:05 +02:00
Sven Sauleau
af8e0facc1
Parse import-assertions ( #12139 )
...
Co-authored-by: Huáng Jùnliàng <jlhwung@gmail.com>
Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2020-10-14 21:18:16 +02:00
iamfotx
59d97d9bca
[parser] Better error message for missing number exponent ( #12072 )
...
* fix(babel-parser) better error message for missing number exponent after 'e'
* fix(babel-parser) requested changes
* msg
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-10-14 21:17:38 +02:00
Huáng Jùnliàng
3ccca88178
Parse class static block ( #12079 )
...
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-10-14 21:16:24 +02:00
Nicolò Ribaudo
3fd963fdc8
[ts] Add support for template interpolations in types ( #12131 )
...
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-10-14 20:15:42 +02:00
Huáng Jùnliàng
136e6301cb
Check if param is assignable when parsing arrow return type ( #11992 )
2020-10-14 20:09:48 +02:00
Huáng Jùnliàng
21d7ee2610
String import/export specifier ( #12091 )
...
* feat: parse moduleExportName
* feat: add validators
* Support string specifier name in commonjs transform
* Support string specifier name in export-ns-from
* test: add loose testcases
* test: add testcases for amd and umd
* feat: support systemjs
* test: update fixtures fixed in #12110
* add plugin name typings
* test: rename test layout
* feat: implement under moduleStringNames flag
* chore: add plugin syntax module string names
* feat: support ModuleExportName as ModuleExportName
* test: update test fixtures
* fix flow errors
* docs: update AST spec
* feat: support { "some imports" as "some exports" }
* feat: support { "some imports" as "some exports" } in systemjs
* test: add test on `import { "foo" }`
* Address review comments
* add moduleStringNames to missing plugin helpers
* Apply suggestions from code review
* update test fixtures
* Update packages/babel-parser/src/parser/error-message.js
* update test fixtures
Co-Authored-By: Kai Cataldo <kai@kaicataldo.com>
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-10-14 20:01:37 +02:00
Sosuke Suzuki
45f0cc2ed9
Recover from error for missing initializer in const declaration ( #12120 )
2020-09-29 18:40:51 +02:00
fisker Cheung
18d13d0032
Fix invalid setter parse ( #12076 )
...
* Fix invalid `setter` parse
* estree
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-09-19 10:03:35 +02:00
Sosuke Suzuki
bbe0cf09fc
Throw a syntax error for a parameter properties in not constructor ( #12061 )
2020-09-14 16:28:06 -05:00
Huáng Jùnliàng
2c60595342
fix: ExpressionBody should respect [In] parameter ( #11931 )
2020-08-26 13:24:44 -04:00
Brian Ng
941f610275
Set generator to true during error recovery of accessor ( #11987 )
2020-08-21 14:37:52 -05:00
Huáng Jùnliàng
66c6b3b949
Add more parser test cases ( #11923 )
...
* remove unused codes
* refactor: remove unused parseAccessModifier
* refactor: remove redundant async function checks
* refactor: remove redundant class check in checkExport
* add more parser test cases
* Update packages/babel-parser/src/parser/statement.js
Co-authored-by: Brian Ng <bng412@gmail.com>
* chore: add sourceType: unambiguous test
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-08-14 11:53:17 -04:00
Huáng Jùnliàng
df9ee2c7cd
Simplify tokenizer update context ( #11944 )
...
* replace lineBreak.test by hasPrecedingLingBreak
* refactor: simplify updateContext
2020-08-11 13:43:03 -04:00
Huáng Jùnliàng
a3893129ec
chore: enable flowcheck on CI ( #11945 )
...
* chore: enable flowcheck on CI
* fix: flow errors
2020-08-10 16:57:29 -04:00
Huáng Jùnliàng
4bb1e164da
Refactor [In] production parameter tracking ( #11930 )
...
* refactor: track [In] parameter in prodParam
* Apply suggestions from code review
2020-08-10 07:32:38 -04:00
Huáng Jùnliàng
a827ca41f3
refactor: simplify smart pipeline parsing ( #11919 )
2020-08-05 21:15:42 -04:00
Huáng Jùnliàng
76f033f8c7
simplify isLookaheadRelational method ( #11922 )
...
* refactor: move isLookaheadRelational to flow plugins
* refactor: simplify isLookaheadRelational to isLookaheadToken_lt
2020-08-05 20:21:35 -04:00
Huáng Jùnliàng
cd577eedfd
refactor: add recoverable error on accessorIsGenerator ( #11921 )
...
* refactor: add recoverable error on accessorIsGenerator
* Update packages/babel-parser/src/parser/error-message.js
Co-authored-by: Brian Ng <bng412@gmail.com>
* Apply suggestions from code review
Co-authored-by: Brian Ng <bng412@gmail.com>
2020-08-05 17:52:13 -04:00
Brian Ng
c0f6f0394d
Support ConditionalExpressions in dry-error-messages rule ( #11917 )
...
* Support ConditionalExpressions in dry-error-messages rule
* tests
2020-08-05 16:28:35 -04:00
Huáng Jùnliàng
50b3262063
refactor: avoid unnecessary property access ( #11918 )
...
* refactor: avoid unnecessary property access
* refactor: `else` is redundant because keyName is const
2020-08-05 15:39:45 -04:00
Huáng Jùnliàng
92434269af
fix: do not eat get/set after async is parsed ( #11916 )
2020-08-05 08:19:59 -05:00
Huáng Jùnliàng
a4ebe29b3f
Parser refactoring ( #11871 )
...
* refactor: parseMaybeUnary => parseUnary
* refactor: extract shouldExitDescending method
* refactor: add parseUpdate
* refactor: avoid comparing with hardcoded token value
* refactor: add ParseNewOrNewTarget
* refactor: add parseCoverCallAndAsyncArrowHead
* add parseBind
* refactor: polish parseTaggedTemplateExpression interface
* refactor: add parseMember method
* refactor: add parseSuper method
* refactor: add parseAsyncArrowUnaryFunction method
* fix: disallow line break before async binding arrow
* refactor: simplify tt.name logic
* refactor: add parseDo method
* refactor: misc
* refactor: rename parseObjectMember by parsePropertyDefinition
* refactor: unify set/get/async keyword parsing in ObjectMethod
* refactor: misc
* refactor: add parseArrayLike method
* refactor: move fsharp epilogure and prologue inside parseObjectLike
* fixup
* refactor: rename parseFunctionExpression to parseFunctionOrFunctionSent
* refactor: remove redundant logic
* refactor: rename parseClassPropertyName by parseClassElementName
* refactor: avoid unecessary lookahead when parsing tt._export
* fix: export-default-from should support escaped async as export binding
* address review comments
* parseUnary -> parseMaybeUnary
2020-07-31 20:36:04 -04:00
Huáng Jùnliàng
01d4625412
Correctly check reserved word for PropertyDefinition: IdentifierReference ( #11862 )
...
* fix: check IdentifierReference in PropertyDefinition
* chore: add more test cases
* fix: incorrect test title
2020-07-29 19:40:52 -04:00
Vahagn Aharonian
b651a6f6ab
Enable logical assignment by default in @babel/parser ( #11860 ) ( #11869 )
2020-07-29 18:32:12 -04:00
Brian Ng
8a1d7e41f2
Allow unknown/any in TS catch clause param ( #11755 )
2020-07-29 16:51:48 -04:00