52 Commits

Author SHA1 Message Date
Daniel Tschinder
1d9e509df2 Fix eslint (#4897)
* Fix eslint call

* Fix linting errors
2016-11-26 11:24:38 -05:00
Juriy Zaytsev
beda884f41 Make getBinding ignore labels; add Scope#getLabel, Scope#registerLabel (#4758)
* Make getBinding ignore labels; add Scope#getLabel, Scope#registerLabel

* generateUid: account for labels again
2016-10-21 17:19:59 -04:00
Dan Harper
f859830e54 Fix: export default arrows with function naming (#4524) 2016-09-19 21:58:37 -04:00
Boopathi Rajaa
477a72a975 Fix bug undefined reference for export declaration (#3629)
+ (Fix https://phabricator.babeljs.io/T7534)
+ Export declaration class/function/var ids now add the export
declaration path as the referenced one.
2016-08-31 14:42:33 -04:00
dlwalsh
cdb465a834 remove repeating dependency from babel-traverse (#3501) 2016-05-16 09:54:37 -04:00
Amjad Masad
109d99bb5e don't double count binding references (#3465)
When, for example, a function is moved between from one place to another we recrawl and end up double counting any references it holds to the upper scope. This protects against that. (The same thing is done for constant violations in the `reassign` method)
2016-05-13 17:20:32 -04:00
Jordan Klassen
dc1f40540d Upgrade to lodash 4 (#3315)
* Upgrade to lodash 4

* Fix incorrect require in babel-runtime/scripts

* Replace cloneDeep with cloneDeepWith where applicable
2016-05-13 17:15:14 -04:00
Logan Smyth
c3ccddaaaf Revert "Merge pull request #3433 from loganfsmyth/bail-out-rename"
This reverts commit 2d0a007d14e519fe60a849dd17068a0f3df79a28, reversing
changes made to e4d6d420415a0c290a321fb6c18ba5f19675b5c1.
2016-04-08 09:09:48 -07:00
Logan Smyth
078f6c0ed3 Only attempt to rename export declarations, not expressions - fixes T7215 2016-03-16 23:26:52 -07:00
Logan Smyth
80aa424b75 Invalidate the scope cache if a node is moved to a different path - fixes T7194 2016-03-12 14:21:21 -08:00
Amjad Masad
4abc03eef1 Rework logic that controls flowBinding warning
The flag to control whether we should warn didn't take into account
nested calls or scope chains. An easier approach is to have a
counter. That way we know for sure if we're somewhere deep inside a
crawl call or not.
2016-03-10 16:39:12 -08:00
Amjad Masad
5a081a8572 Update comment, reformat message 2016-03-10 13:00:45 -08:00
Amjad Masad
9f0dbf0234 Better warnings 2016-03-10 12:54:02 -08:00
Amjad Masad
7f4b57a7a4 Add warning instead of removing support 2016-03-10 12:35:15 -08:00
Amjad Masad
342f9d5eb5 Don't consider flow types as bindings 2016-03-10 11:48:14 -08:00
Amjad Masad
0200542e82 don't use Array.includes 2016-03-08 00:33:37 -08:00
Amjad Masad
77c7cc5363 Rework scope info updating in block-scoping transform
I previously tried an approach to scope bindings from var to scope but
it didn't catch all cases. This is evident in this bug:

https://phabricator.babeljs.io/T2892

Where even after transforming a const to a var we still get an error
that it's read-only.

This approach will go through and delete every existing let and const
binding and creates a new one with the kind "var"
2016-03-07 18:19:10 -08:00
Amjad Masad
fc19ac2af5 Remove merge artificats 2016-03-07 12:05:46 -08:00
Amjad Masad
403d6153fd correct cache path 2016-03-07 12:04:44 -08:00
Amjad Masad
bf91a68375 Move scope cache to the cache module 2016-03-07 12:04:44 -08:00
Amjad Masad
3667527d04 Revert "Remove flow"
This reverts commit 2827ff6b01dcce69e9d3c0402e96b52b3a2a47ee.
2016-03-03 14:49:20 -08:00
Sam Goldman
2827ff6b01 Remove flow 2016-03-01 22:33:30 -08:00
Sebastian McKenzie
5b89849f43 Switch to klint, fix some lint rules 2016-02-14 23:25:14 +00:00
Amjad Masad
95c93dd22b Method names should not be bound to body
As an artificat of compiling methods to named function expressions the
function name is being considered a "local" binding in the function
body. This means that we will throw errors anytime someone would want to
create a new local binding with the same name.

This is solved by assigning a symbol to function Identifiers that
indicates that they should not be considered local bindings.
2016-01-17 13:19:37 -08:00
Logan Smyth
afcfba2075 Only rename outer function bindings on conflict - fixes T6781 2015-12-13 15:35:28 -08:00
Amjad Masad
2a2cb4f160 Support ObjectProperty in purity check 2015-12-09 16:49:16 -08:00
Henry Zhu
14bad622f2 add second param 2015-12-07 15:20:30 -05:00
Amjad Masad
6601a6f737 Support unary expression in isPure check 2015-12-07 11:55:21 -08:00
Henry Zhu
d06cfe63c2 eslint: add space-after-keywords 2015-12-06 11:30:07 -05:00
Logan Smyth
a12a116b9f Ensure that default exports have a name before splitting them - fixes T6750 2015-12-05 15:28:48 -08:00
Logan Smyth
8efd1d71ad Properly resolve scope from switch statement - fixes T6761 2015-12-04 09:04:25 -08:00
Logan Smyth
d71b59d0cc Ensure we always push into a BlockStatement - fixes T3051 2015-12-02 19:41:22 -08:00
phantom10111
36ebe0c939 Fix static class properties in class expressions and anonymous default exported classes - fixes T2983 2015-12-01 17:59:53 +01:00
Daniel Lo Nigro
0076204f80 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
b5b9794b3f switch to symbols and add matches parent helper function to abstract out matching 2015-11-08 03:41:15 -08:00
phantom10111
22dc8f8323 Fix scope cache returning an item that was just inserted 2015-11-07 23:09:54 +01:00
Sebastian McKenzie
0370402a0d fix lint errors 2015-11-06 20:55:05 -05:00
Sebastian McKenzie
bb1703e1a1 add header comment for scope cache function 2015-11-06 20:53:12 -05:00
Sebastian McKenzie
63cd3008d2 clean up parameter names in Scope constructor 2015-11-06 20:42:16 -05:00
Sebastian McKenzie
8dd292075a clean up scope cache 2015-11-06 20:39:16 -05:00
Sebastian McKenzie
8ec3e16794 fix remaining outer binding identifier issues 2015-11-03 03:13:39 +00:00
Sebastian McKenzie
64a9a6027e refactor t.getOuterBindingIdentifiers to only return the id if it's a function declaration 2015-11-03 03:05:57 +00:00
Sebastian McKenzie
e72d4508de only use outer bindings when registering a binding to prevent retreiving function params - fixes #2615 2015-11-03 03:00:27 +00:00
Sebastian McKenzie
e62a00df50 rename NumberLiteral to NumericLiteral and RegexLiteral to RegExpLiteral 2015-11-03 01:19:35 +00:00
Sebastian McKenzie
d1d0ed901e fix export of parameters when renaming the binding of exported functions - fixes #2753 2015-11-02 19:24:23 +00:00
Sebastian McKenzie
ae7d5367f1 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
fa88b1c00d abstract out scope binding rename and handle function/class cases where we can retain the name with some ~magic~ - fixes #2435 2015-09-28 02:45:00 +01:00
Sebastian McKenzie
f770f337a4 add Scope#buildUndefinedNode method 2015-09-02 18:06:23 +01:00
Sebastian McKenzie
6ff53e35f3 cap uids based on nodes at 20 characters - fixes #2225 2015-09-02 18:05:33 +01:00
Sebastian McKenzie
15f73b4fc3 remove noisy comments/documentation 2015-09-01 04:56:03 +01:00