Justin Ridgewell
43040a4181
Private Properties phase 1 ( #7666 )
...
* Private Properties phase 1
Co-authored-by: CodingItWrong
* Private fields are optional
* Docs update
2018-04-05 11:17:34 +01:00
Logan Smyth
4d76d5dddc
Refactor Babel's helpers into smaller functions.
2018-03-05 09:32:39 -08:00
Mateusz Burzyński
4d164bd8e6
Added babel-helper-split-export-declaration ( #7313 )
2018-02-13 16:44:05 +01:00
Nicolò Ribaudo
252ea5a966
Fix reused nodes - part 2 ( #7149 )
2018-01-29 22:59:06 +01:00
Mateusz Burzyński
912bcc186d
Fix reused nodes - part 1 ( #7149 )
2018-01-29 22:59:06 +01:00
Nicolò Ribaudo
9a231c5671
Remove support for flow bindings ( #6528 )
...
Flow bindings have been deprecated for a while.
The reason behind this change is that `declare var foo`
doesn't introduce a new local binding, but it represents
a global one.
2017-11-09 12:29:04 -08:00
Henry Zhu
cde0054227
Scoped: change src imports to @babel/ [skip ci]
2017-10-16 22:49:56 -04:00
JeromeFitz
ae168edcfa
Remove babel-messages ( #6347 ), continuation of #6352
...
package.json "babel-messages" removed:
- babel-core
- babel-helper-replace-supers
- babel-plugin-transform-es2015-classes
- babel-traverse
"messages" remove from:
- babel-plugin-check-es2015-constants/src/index.js
- babel-plugin-transform-es2015-for-of/src/index.js
export "babel-messages" removed from:
- babel-core/src/index.js
import "babel-messages" removed from:
- babel-generator/src/index.js
- babel-helper-replace-supers/src/index.js
- babel-traverse/src/index.js
- babel-traverse/src/scope/index.js
- babel-traverse/src/visitors.js
package "babel-messages" removed completely.
💯 ️ All tests pass.
2017-09-30 09:31:53 -04:00
Justin Ridgewell
3746273eda
Path#ensureBlock keeps path context ( #6337 )
...
* Path#ensureBlock keeps path context
This ensures that if you're inside an ArrowFunction with an expression body (say, you're on the BooleanLiteral in `() => true`), you don't suddenly lose your path context after inserting a variable.
This is because of 82d8aded8e (diff-9e0668ad44535be897b934e7077ecea5R14) . Basically, an innocent `Scope#push` caused my visitor to suddenly stop working. Now, we mutate the Path so it's still in the tree.
* Tests
2017-09-29 19:00:10 -04:00
Ruben Verborgh
6560a29c36
Redeclaring a variable counts as a modification ( #6219 )
...
* Redeclaring a variable counts as a modification.
Fixes #6217 .
* Remove "existing" logic from Binding.
Was added in #5745 , but no longer triggered since 6536e605a.
2017-09-08 23:02:26 -04:00
Justin Ridgewell
5df70e6a94
Fix bad Scope#parent caching ( #6155 )
...
* Fix bad Scope#parent caching
Now, we traverse the path until we find a parent scope.
Fixes #6057 .
* Fix bad merge
* Remove cached data
* I need to stop using Github editor
* Fix infinite loops due to scopable paths being moved up
2017-09-02 01:03:10 -04:00
Daniel Tschinder
44f6ff5e85
Update prettier, eslint + plugins, flow, husky and lint-staged ( #6183 )
2017-08-31 22:56:29 +02:00
Daniel Tschinder
0189b38702
Merge branch '6.x' into 7.0
...
# Conflicts:
# CONTRIBUTING.md
# Makefile
# README.md
# lerna.json
# lib/types.js
# package.json
# packages/babel-cli/package.json
# packages/babel-code-frame/package.json
# packages/babel-core/package.json
# packages/babel-core/test/fixtures/transformation/misc/regression-2892/expected.js
# packages/babel-generator/package.json
# packages/babel-generator/src/generators/flow.js
# packages/babel-generator/src/index.js
# packages/babel-generator/test/fixtures/flow/declare-statements/expected.js
# packages/babel-generator/test/fixtures/flow/object-literal-types/expected.js
# packages/babel-generator/test/fixtures/flow/opaque-type-alias/expected.js
# packages/babel-helper-bindify-decorators/package.json
# packages/babel-helper-builder-binary-assignment-operator-visitor/package.json
# packages/babel-helper-builder-conditional-assignment-operator-visitor/package.json
# packages/babel-helper-builder-react-jsx/package.json
# packages/babel-helper-call-delegate/package.json
# packages/babel-helper-define-map/package.json
# packages/babel-helper-explode-assignable-expression/package.json
# packages/babel-helper-explode-class/package.json
# packages/babel-helper-fixtures/package.json
# packages/babel-helper-function-name/package.json
# packages/babel-helper-get-function-arity/package.json
# packages/babel-helper-hoist-variables/package.json
# packages/babel-helper-optimise-call-expression/package.json
# packages/babel-helper-plugin-test-runner/package.json
# packages/babel-helper-regex/package.json
# packages/babel-helper-remap-async-to-generator/package.json
# packages/babel-helper-replace-supers/package.json
# packages/babel-helper-transform-fixture-test-runner/package.json
# packages/babel-helpers/package.json
# packages/babel-plugin-transform-async-generator-functions/package.json
# packages/babel-plugin-transform-async-to-generator/package.json
# packages/babel-plugin-transform-async-to-module-method/package.json
# packages/babel-plugin-transform-class-constructor-call/package.json
# packages/babel-plugin-transform-class-properties/package.json
# packages/babel-plugin-transform-decorators/package.json
# packages/babel-plugin-transform-es2015-block-scoping/package.json
# packages/babel-plugin-transform-es2015-classes/package.json
# packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/T6755/expected.js
# packages/babel-plugin-transform-es2015-computed-properties/package.json
# packages/babel-plugin-transform-es2015-duplicate-keys/package.json
# packages/babel-plugin-transform-es2015-function-name/package.json
# packages/babel-plugin-transform-es2015-modules-amd/package.json
# packages/babel-plugin-transform-es2015-modules-commonjs/package.json
# packages/babel-plugin-transform-es2015-modules-commonjs/src/index.js
# packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/interop/export-destructured/expected.js
# packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-default-params/expected.js
# packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object-rest/expected.js
# packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/export-const-destructuring-object/expected.js
# packages/babel-plugin-transform-es2015-modules-commonjs/test/fixtures/strict/options.json
# packages/babel-plugin-transform-es2015-modules-systemjs/package.json
# packages/babel-plugin-transform-es2015-modules-umd/package.json
# packages/babel-plugin-transform-es2015-object-super/package.json
# packages/babel-plugin-transform-es2015-parameters/package.json
# packages/babel-plugin-transform-es2015-shorthand-properties/package.json
# packages/babel-plugin-transform-es2015-sticky-regex/package.json
# packages/babel-plugin-transform-es2015-unicode-regex/package.json
# packages/babel-plugin-transform-es5-property-mutators/package.json
# packages/babel-plugin-transform-exponentiation-operator/package.json
# packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/opaque-type-alias/expected.js
# packages/babel-plugin-transform-object-rest-spread/package.json
# packages/babel-plugin-transform-object-rest-spread/src/index.js
# packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested-2/expected.js
# packages/babel-plugin-transform-object-rest-spread/test/fixtures/object-rest/nested/expected.js
# packages/babel-plugin-transform-proto-to-assign/package.json
# packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export-default/expected.js
# packages/babel-plugin-transform-react-constant-elements/test/fixtures/constant-elements/regression-node-type-export/expected.js
# packages/babel-plugin-transform-react-display-name/package.json
# packages/babel-plugin-transform-react-display-name/src/index.js
# packages/babel-plugin-transform-react-display-name/test/fixtures/display-name/assignment-expression/expected.js
# packages/babel-plugin-transform-react-display-name/test/fixtures/display-name/nested/expected.js
# packages/babel-plugin-transform-react-display-name/test/fixtures/display-name/object-property/expected.js
# packages/babel-plugin-transform-react-display-name/test/fixtures/display-name/variable-declarator/expected.js
# packages/babel-plugin-transform-react-jsx-compat/package.json
# packages/babel-plugin-transform-react-jsx/package.json
# packages/babel-plugin-transform-regenerator/package.json
# packages/babel-plugin-transform-regenerator/test/fixtures/regression/6733/expected.js
# packages/babel-plugin-transform-regenerator/test/fixtures/regression/T7041/expected.js
# packages/babel-plugin-transform-regenerator/test/fixtures/variable-renaming/retain-lines/expected.js
# packages/babel-plugin-transform-runtime/README.md
# packages/babel-plugin-transform-runtime/test/fixtures/runtime/custom-runtime/expected.js
# packages/babel-plugin-transform-runtime/test/fixtures/runtime/full/expected.js
# packages/babel-plugin-transform-runtime/test/fixtures/runtime/regenerator-runtime/expected.js
# packages/babel-plugin-transform-strict-mode/package.json
# packages/babel-polyfill/package.json
# packages/babel-preset-es2015/package.json
# packages/babel-preset-es2016/package.json
# packages/babel-preset-es2017/package.json
# packages/babel-preset-latest/package.json
# packages/babel-preset-react/package.json
# packages/babel-preset-stage-0/package.json
# packages/babel-preset-stage-1/package.json
# packages/babel-preset-stage-2/package.json
# packages/babel-preset-stage-3/package.json
# packages/babel-register/README.md
# packages/babel-register/package.json
# packages/babel-runtime/package.json
# packages/babel-template/package.json
# packages/babel-traverse/package.json
# packages/babel-traverse/src/scope/lib/renamer.js
# packages/babel-traverse/test/evaluation.js
# packages/babel-traverse/test/replacement.js
# packages/babel-types/README.md
# packages/babel-types/package.json
# packages/babel-types/src/converters.js
# packages/babel-types/src/definitions/core.js
# packages/babel-types/src/definitions/es2015.js
# packages/babel-types/src/definitions/flow.js
# packages/babel-types/test/converters.js
# packages/babel-types/test/validators.js
# scripts/generate-interfaces.js
# yarn.lock
2017-08-31 17:44:17 +02:00
Justin Ridgewell
4b297907d1
Move fix into #checkBlockScopedCollisions
2017-08-25 19:23:11 -04:00
Moti Zilberman
48c114169f
Move up check for binding kind "local"
...
This puts the check before the call to `checkBlockScopedCollisions`.
Fixes #4946 .
2017-08-25 19:21:38 -04:00
Moti Zilberman
c3e8715010
Mask existing "local" bindings when registering new binding
...
Fixes #5491 .
2017-08-25 19:21:38 -04:00
Mauro Bringolf
d8b4073536
Consistent const violations ( #6100 )
...
* Changed updateExpression to report itself as violation instead of its argument
* Update getBindingIdentifiers to work with forXStatement and return proper node as violation
* Updated unaryExpression violation to be consistent with changes.
2017-08-24 21:19:02 -04:00
Sarup Banskota
75808a2d14
Prevent getFunctionParent from returning Program ( #5923 )
2017-08-02 16:30:33 -05:00
Justin Ridgewell
28ae47a174
Stop mutating nodes ( #5963 )
...
* Stop mutating nodes
* Update tests
* linting
2017-07-18 13:24:07 -04:00
Ash
960e1708a1
babel-traverse: Mark appropriate template literals as pure ( #5914 )
...
* Identify pure template literals
* Mark template literals as pure where possible
* Changes based on code review
* nit
2017-07-11 17:42:34 -04:00
Brian Ng
e4b35f680d
Run prettier
2017-06-27 12:15:00 -05:00
Jan Kassens
a1a795321a
Update deprecation warning on flow bindings ( #5615 )
...
Babel 6 is at 6.24, doesn't seem like this is getting removed in version 6 anymore.
2017-04-09 16:11:06 -07:00
Brian Ng
8a82cc060a
Run new lint rules ( #5413 )
2017-03-04 10:46:01 -05:00
Logan Smyth
454933ef76
Revert "Rewrite Hub as interface #5047 " ( #5306 )
2017-02-13 18:15:50 -08:00
Yongxu Ren
2985597d40
Rewrite Hub as interface #5047 ( #5050 )
...
* Rewrite Hub as interface #5047
* Update index.js
2017-02-13 12:49:10 -08:00
Łukasz Lityński
badce969da
Fix confusing comment ( #5272 ) ( #5273 )
2017-02-06 16:17:26 -08:00
Logan Smyth
b845f2b69d
Re-enable the max-len ESLint rule. ( #5265 )
2017-02-04 11:07:15 -05:00
Henry Zhu
672adba9a1
enable prefer const ( #5113 )
2017-01-14 09:48:52 -05:00
Justin Ridgewell
32aa1f75d6
Hoist generateDeclaredUidIdentifier helper function ( #4934 )
2016-12-08 12:42:22 -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
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
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
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
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
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