122 Commits

Author SHA1 Message Date
Daniel Tschinder
f11a82c96c Adjust cloning of nodes in import/export-specifiers and obj-destructuring (#24)
The cloning caused comments that where added to the original node to be persisted into
the cloned node.
Espree/Acorn does not have any cloning, that's why it is working there.
This change omits comments when cloning, as removing the cloning
causes tests in babel to fail.
2016-06-21 09:55:15 -04:00
Daniel Tschinder
4bfececdad Fix leading comments added from previous node
This fixes an issue that comments were added as leading comments
to expressions, which are not immediately folowing the comment.
This was also reported and fixed in espree, and is basically a port to
babylon. eslint/espree#256

this also fixes an issue in babel-eslint with certain rules babel/babel-eslint#289
2016-04-23 12:24:20 +02:00
Daniel Tschinder
e6c11a0673 Fix support for flow optional parameters in arrow functions T7096
This overwrites the conditional handling in babylon for flow to support
optional parameters in arrow functions.
2016-04-10 13:06:48 +02:00
Kevin Smith
f81c281fc4 Parse for-await statements when asyncGenerators plugin is active 2016-04-05 13:33:49 -04:00
Daniel Tschinder
d15a2310cd Fix flow plugin when flow+arrow+spread used together
The fix includes creating a new method on the parser called `parseArrow`.
This new function by default only checks if current position matches an
arrow. If it does returns the `node` otherwise `undefined`.
The flow plugin can then extend this function and correctly parse the typeAnnotation
and add it to the node.

With this change, in the flow plugin there is no need anymore to extend
`parseParenAndDistinguishExpression` and the arrow handling in `parseParenItem`
could also be removed, because it is all handled now in `parseArrow`.

Some existing tests were failing, because `extra->parentesized` is now missing,
but this is correct as it is now inline with parsing without flow annotation. No extra
is added for arrow function without type annotations.

In the expression-parser `this.next()` was replaced by a more specific
`this.expect(tt.parenL)`.
2016-04-04 18:10:58 +02:00
Shuhei Kagawa
29a6578658 parse parameter decorators 2016-03-25 14:04:33 +09:00
Dale Bustad
bb4919500c Attach filename property to node.loc when provided. 2016-03-07 02:47:28 -08:00
Amjad Masad
aca8010438 Remove remaining @flow annotations 2016-03-03 15:10:59 -08:00
Amjad Masad
b5315d4b27 Revert "Remove Flow annotations and pragmas"
This reverts commit 4252244d06b225ab26a02d52c04f9940a3e4d6a2.
2016-03-03 15:03:55 -08:00
Amjad Masad
9a180797c0 Revert "Remove flow"
This reverts commit 2827ff6b01dcce69e9d3c0402e96b52b3a2a47ee.
2016-03-03 14:49:20 -08:00
Sam Goldman
d6ee428857 Remove flow 2016-03-01 22:33:30 -08:00
Sam Goldman
085361ad1a Remove Flow annotations and pragmas 2016-02-28 13:18:57 -10:00
Sebastian McKenzie
c9f9435445 Switch to klint, fix some lint rules 2016-02-14 23:25:14 +00:00
Logan Smyth
0c35bbfc07 Revert "babylon: throw parse error if class properties do not have a semicolon (fixes T6873)"
This reverts commit 976edfc06740e434d1d5b136e28996a77f909403.
2016-02-06 18:36:31 -08:00
Logan Smyth
d9ade8a63a Revert "babylon: fix error location for class properties with a missing semicolon"
This reverts commit f31099f383b52cf4fe1786188f6421529dea865b.
2016-02-06 18:36:22 -08:00
Amjad Masad
024cba6433 Merge pull request #3305 from jviereck/T7052
Fix: Arrow functions with trailing comma + return type are throwing an error when parsing
2016-02-05 13:50:57 -08:00
Henry Zhu
5f0ece0bdb add some more flow types 2016-02-04 11:07:03 -05:00
Julian Viereck
a121d1b7b5 Fix and tests 2016-01-31 01:22:31 +01:00
Chris Cowan
d425927ff1 Make babylon ignore duplicate plugins. 2016-01-15 19:29:21 -08:00
Chris Cowan
9c75f27240 Make Babylon correctly handle "flow" being present multiple times in plugins. 2016-01-15 19:00:38 -08:00
Henry Zhu
2f00b4c329 babylon: fix error location for class properties with a missing semicolon 2016-01-06 18:42:26 -05:00
Sebastian McKenzie
6c79639801 Merge pull request #3225 from hzoo/cp-semi
`babylon`: throw parse error if class properties do not have a semico…
2016-01-06 15:22:37 +00:00
Sam Goldman
541b576c7a Guard export interface against isExportDefaultSpecifier 2016-01-05 17:28:21 -08:00
Henry Zhu
e849c62144 babylon: throw parse error if class properties do not have a semicolon (fixes T6873) 2015-12-30 14:01:46 -05:00
Jesse McCarthy
b1da92e8cb Don't make directive from parenthesized string. 2015-12-28 11:04:33 -05:00
Amjad Masad
1d82e48d36 Merge pull request #3190 from hzoo/remove-await-star
Remove await* from babel-generator, add parsing error to babylon - (fixes T6688)
2015-12-22 22:57:23 -08:00
Henry Zhu
c7bdf7fc63 remove all property, fixup tests 2015-12-23 00:02:02 -05:00
Henry Zhu
7bac3627fe Remove await* from babel-generator, add parsing error to babylon - (fixes T6688) 2015-12-19 23:15:09 -05:00
TSUYUSATO Kitsune
8d8f75a5b8 Fix ignoring previous strict mode after twice "use strict"
For example:

    var foo = function () {
      "use strict";
      "use strict";
      // there is inside of strict mode,
      // so `0123` (octal number) occurs a syntax error.
    };
    // there is outside of strict mode,
    0123; // so left is valid syntax.
    // however:
    //   SyntaxError: Invalid number (8:0)

I fixed it and add the test case.
2015-12-19 09:26:10 +09:00
Marshall Roch
4a140af08d Upgrade to flow 0.20.0 2015-12-17 12:49:48 -08:00
TSUYUSATO Kitsune
dc596d73d3 Fixed T6675
https://phabricator.babeljs.io/T6675.
2015-11-24 22:39:50 +09:00
Sebastian McKenzie
d79d0cf73d add function.sent 2015-11-17 23:02:21 -08:00
Daniel Lo Nigro
20a483cd58 Fix Flow.
Removed `@flow` annotation from files that don't actually pass Flow check at the moment. These will be added back file by file once the files are properly converted to use Flow.

Closes #3064
2015-11-15 21:30:22 -08:00
Sebastian McKenzie
bbfb599be2 fix __proto__ clashes in parser in old v8 2015-11-08 05:34:11 -08:00
Sebastian McKenzie
779675610f fix defaults on type annotated arrow function params - fixes #2493 2015-11-05 09:49:03 +00:00
Sebastian McKenzie
c3b1b25966 simplify Parser::semicolon method 2015-11-03 11:46:11 +00:00
Sebastian McKenzie
3b3c1897d0 add support for async generator concise methods - fixes #2603 2015-11-03 11:19:04 +00:00
Sebastian McKenzie
cbe94f4653 fix object rest/spread in arrow function params - fixes #2631 2015-11-03 11:14:12 +00:00
Sebastian McKenzie
ea40d0134f rename NumberLiteral to NumericLiteral and RegexLiteral to RegExpLiteral 2015-11-03 01:19:35 +00:00
Sebastian McKenzie
c2973d0c7a disallow invalid async function forms inside object literals - fixes #2629 2015-11-02 08:00:01 +00:00
Sebastian McKenzie
3d842df554 update exponentiation operator precedence - fixes #2431 2015-10-30 23:14:10 +00:00
Sebastian McKenzie
c224a7a370 fix parser bug where arrow functions have a higher precedence than they should - fixes #2118 2015-10-30 22:50:53 +00:00
Sebastian McKenzie
b909a81ab7 6.0.0
I'm extremely stupid and didn't commit as I go. To anyone reading this
I'm extremely sorry. A lot of these changes are very broad and I plan on
releasing Babel 6.0.0 today live on stage at Ember Camp London so I'm
afraid I couldn't wait. If you're ever in London I'll buy you a beer
(or assorted beverage!) to make up for it, also I'll kiss your feet and
give you a back massage, maybe.
2015-10-29 17:51:24 +00:00
Sebastian McKenzie
6d6ddf0bcd type annotate babylon 2015-09-23 15:59:41 +01:00
Sebastian McKenzie
e8fa03ea1c add parser util addExtra method 2015-09-15 06:19:35 +01:00
Sebastian McKenzie
bf841c7e27 use extra.parenthesized rather than parenthesizedExpression 2015-09-15 06:19:26 +01:00
Sebastian McKenzie
d1ecb04d0f add hasFeature util method 2015-09-15 06:18:23 +01:00
Sebastian McKenzie
40aab69ed0 remove weird acorn conditional formatting 2015-09-15 06:18:15 +01:00
Sebastian McKenzie
9e264e70ae only allow identifiers as rest expressions 2015-09-15 06:18:04 +01:00
Sebastian McKenzie
54a4f16b08 add RestProperty node 2015-09-15 06:17:45 +01:00