28 Commits

Author SHA1 Message Date
Daniel Tschinder
1b612148bf "yield" parsing inside function name and parameters (#689)
* Use parseFunctionParams to parse method parameters

* [funct] Set this.state.inGenerator before parsing the function name/params

This allows "yield" inside generator parameters to be actually
parsed as a yield expression

* [funct] Disallow yield in function parameters

* [arrow] "yield" can start an arrow function (e.g. "yield => {}")

* [arrow] Disallow YieldExpressions inside arrow parameters.

* [err msg] Disallow yield as fn name in strict mode using checkReservedWord.

So Babylon throws "yield is a reserved word" instead of
a custom "Binding yield in strict mode"

* [err msg] "X is reserved in strict mode" should have precedence over "X is reserved", since it is more specific.

This was observable if "checkKeywords" is true and the word is both a keyword and a reserved
word in strict mode

* Disallow "yield" as an identifier inside generators

* [tests] Add tests, update wrong esprima tests and enable disabled esprima tests

* [tests] Move uncategorized tests to es2015/yield

* [tests] Update test262 whitelist

* Fix regression introduced by 8c77073

* [tests] Update flow whitelist

* Fix flow errors
2017-11-01 16:05:18 +01:00
Brian Ng
29a4aea27b Update parsing flow type/typeof imports (#773)
* Remove extranneous backticks from type/typeof error message

* Add isLookaheadContextual util

* Update parsing flow type/typeof imports
2017-10-31 17:09:39 +01:00
Brian Ng
cb6082e98f Update flow tests whitelist (#770) 2017-10-24 15:58:27 -05:00
Karl Cheng
65bea96544 Add support for class private methods (#703)
* Add support for class private methods

This commit adds parser support for the TC39 Stage 2 Private Methods
proposal.

This commit also changes "key" in ClassPrivateProperty from an
Identifier to a PrivateName, as well as disallowing #constructor as a
valid private field name.

* Add tests for string literal get/set/async

These should be treated as regular methods and not special get/set/async
behaviour.

* Add tests for class private methods

This also removes a test from the Test262 whitelist that failed before
the changes for private methods support and now passes.

* Modify class private prop tests for PrivateName

* Add class private prop tests for #constructor

* Fix existing ASI test case failure
2017-09-06 18:09:12 -04:00
Brian Ng
8cc89e6228 Remove duplicate flow travis job, and update whitelist (#711) 2017-09-01 12:41:34 -04:00
Henry Zhu
c6b2c6bef0 Merge pull request #680 from nicolo-ribaudo/flow-tests
Fix flow test runner
2017-08-31 14:36:47 -04:00
Brian Ng
2fa1f9929f
Throw if rest element is not in last position for object expressions 2017-08-26 09:34:33 -05:00
Brian Ng
083a44658c Enable optionalCatchBinding plugin for test262 tests (#697) 2017-08-26 12:14:56 +02:00
Brian Ng
65db277364
Raise error if trailing comma after rest element in async func params 2017-08-24 21:59:01 -05:00
Brian Ng
2bc124bf49
Fix some cases of keywords with escape sequences 2017-08-24 19:27:09 -05:00
Brian Ng
5e60ad6688
Fix some cases of invalid labeled declarations 2017-08-24 19:00:52 -05:00
Mateusz Burzyński
5d83e2692f Adjusted Object Rest/Spread syntax handling to the latest spec (#670) 2017-08-24 18:31:50 -05:00
Mateusz Burzyński
5df1139567 Test262 update (#692) 2017-08-24 17:42:04 -05:00
Nicolò Ribaudo
748b6fc477 Add option to update the whitelist 2017-08-19 22:18:10 +02:00
Nicolò Ribaudo
656815a53a Add whitelist to flow tests 2017-08-19 22:02:27 +02:00
Nicolò Ribaudo
942d22dd70 Remove the get_harcoded_tests function, use get_tests 2017-08-19 18:25:18 +02:00
Nicolò Ribaudo
1a9b340cb9 Use a Map instead of an Obejct to store tests
This change has two reasons:
- The object was actually used as a map
- Using an object leads some problems with the
  private_class_fields/constructor.js test, since
  `tests[test_name] || {}` returned the Obejct
  constructor instead of an empty object.
2017-08-19 18:24:21 +02:00
jugglinmike
0466504d7b Integrate Test262 (#654)
* Integrate Test262

Introduce a GNU Make target for retrieving TC-39's Test262 suite and
validating parsing of the files it contains. Interpret each file as a
parser test in accordance with that project's `INTERPRETING.md`
document. Allow for the specification of allowed failures via a
"whitelist" file so that the test suite may help prevent regressions in
this project in situations where this project has known bugs. Initialize
the "whitelist" file with a listing of all tests that are currently
failing. Extend the continuous integration environment's configuration
to automatically run these tests.

* use graceful-fs and latest yarn on travis
2017-08-06 21:20:25 -04:00
Daniel Tschinder
59ffa6268e Fix flow test runner (#647)
* Fix flow test runner

* Retry parsing in scriptmode
2017-07-22 11:11:52 +02:00
Brian Ng
5180ecdca4 Use prettier (#600) 2017-06-28 12:41:42 -04:00
Logan Smyth
1c07efb5fc Use a .babelignore to skip compiling lib and fixtures. (#451) 2017-04-05 15:16:51 -04:00
Brian Ng
4d18221098 Use babel-register script when running babel smoke tests (#442) 2017-03-30 11:25:23 -04:00
Andy
0545173f66 Test runner: Detect extra property in 'actual' but not in 'expected'. (#407)
* Test runner: Detect extra property in 'actual' but not in 'expected'.

Also update all expected.json where this would result in errors.

* Include rmExpected.js script in case it is needed again
2017-03-19 22:03:11 +01:00
Daniel Tschinder
58887ed14e Run tests of flow with babylon (#225)
* Run tests of flow with babylon

* Fix travis

* Fix typo

* Again...

* Brtter hint

* proper exit code

* Fix some flase-positives and better reporting

* Enable some plugins, that flow supports by default
2016-11-14 18:16:36 +01:00
Sebastian McKenzie
64ff4c3561 first commit 2016-03-10 06:24:44 +00:00
Logan Smyth
19de6dea3d Clean up babylon bundle to allow it to be re-bundled - fixes T6930 2016-02-12 22:48:00 -08:00
Sebastian McKenzie
c72ef3755a stop people from patching babylon by building it 2015-12-24 03:58:52 +00:00
Sebastian McKenzie
6c5c216c40 add scripts 2015-07-12 12:51:20 +01:00