Moti Zilberman
9fc51d6292
Consolidate contiguous var declarations in destructuring transform ( #4690 )
...
* Consolidate contiguous var declarations in destructuring transform
Fixes #3081 .
* Simplify var node coalescing in es2015-destructuring
* Revert "Simplify var node coalescing in es2015-destructuring"
This reverts commit 15cb373f0726f68225f7080a7ae206a63af174ee.
* More careful condition for var coalescing in es2015-destructuring
2016-10-14 11:51:22 -04:00
Dan Harper
33eb56ab09
fix error when constructor default arg refers to own static property or self ( #4666 )
...
(closes #4253 )
(closes #4442 )
2016-10-05 17:52:42 -04:00
Moti Zilberman
0366d1ad19
Handle side effects correctly in rest params index expressions ( #4348 ) ( #4674 )
2016-10-05 21:59:41 +02:00
Moti Zilberman
12d2673038
Add test for rest params name collision with top-level name ( #4333 ) ( #4673 )
2016-10-05 10:15:04 -04:00
Henry Zhu
e50b3c890f
v6.17.0
2016-10-01 15:23:18 -04:00
Daniel Tschinder
16716ea3de
Fix rest parameters with flow type casting ( #4636 )
...
Do not skip TypeCastExpressions when finding referenced identifiers as the
type cast contains valid non flow code that we need to visit.
2016-10-01 12:58:14 -04:00
Henry Zhu
6d22f258db
v6.16.0
2016-09-28 15:38:45 -04:00
Justin Ridgewell
c2ed9de7fb
Flip default parameter template ( #4515 )
...
* Flip default parameter template
YMMV, I saved ~10b on a 2kb library. Not noticeable at the small scale, by why not do it anyway?
I've (unscientifically) found that flipping the default parameter conditional yields better gzip results. I think this is due to the slightly longer string it can now repeatedly match:
```js
// old
var param = arguments.length <= 0 || void 0 === arguments[0] ? null : arguments[0]
--------------------------------------------------------------^
// new
var param = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null
------------------------------------------------------------------------^
```
Though it's entirely likely gzip will also choose up to the index of the arguments if you many default parameters at different indexes.
* Update tests
2016-09-25 14:05:53 -07:00
Daniel Tschinder
590ad4d24f
Replace phabricator tickets with github ones in code comments ( #4519 )
2016-09-17 22:50:02 -04:00
Daniel Tschinder
10cd6519d8
Fix class inheritance in IE <=10 (T3041) ( #3527 )
...
* Fix class inheritance in IE9 & IE10 (T3041)
Internet Explorer 9&10 do not support __proto__ at all, don't have
Object.setPrototypeOf(), but have Object.getPrototypeOf().
Because of this setting the prototype is not possible, which makes the
babelHelpers.inherits() function to set __proto__ although not supported.
Afterwards Object.getPrototypeOf() is used, but this one is not
respecting the "custom" property __proto__ that we set.
The solution is to check for __proto__ first and afterwards fallback to
Object.getPrototypeOf().
* Do the same logic in babel-helper-replace-supers
* Fix tests
* Extract creation of prototype nodes to small helper
2016-08-23 15:08:44 -04:00
Henry Zhu
6e58954bce
v6.11.4
2016-07-19 21:59:53 -04:00
Justin Ridgewell
9a6890c92f
Default parameters cleanup ( #3574 )
...
* Remove buildDefaultParamAssign
This seems to have been
[added](https://github.com/babel/babel/commit/4b85b05839017ab2abc03ba2d1
e875a63f002890) in v5.5.4 to address
[#1690 ](https://phabricator.babeljs.io/T1690 ). It [became
“dead”](https://github.com/babel/babel/blob/v6.0.0/packages/babel-core/t
est/fixtures/transformation/es6.parameters/default-before-last/expected.
js) (as far as I can tell) in the [v6.0.0
commit](https://github.com/babel/babel/commit/ae7d5367f1c3d438667242d692
5db024f875fccd).
Either way, this code is never executed.
- `pushDefNode` is only called when the param is a default param.
- `buildDefaultParamAssign` (which is inside `pushDefNode`) only runs
of the param index is less than or equals to the lastNonDefaultParam.
AKA, is this param before any non-defaulting params.
Which is a contradiction.
* Small optimization
No need to check if we need an iife if we already know we need one.
2016-07-18 11:03:59 -04:00
Henry Zhu
7076c675d9
v6.11.3
2016-07-12 22:33:58 -04:00
Justin Ridgewell
823ffbd87c
Fix error in rest parameter length optimization ( #3573 )
...
If there aren’t enough arguments to get to the offset index, we would
return an negative length.
2016-07-12 21:12:45 -04:00
Logan Smyth
231f27f170
Fix non-unique 'ref' binding name - fixes T7468
2016-06-28 19:16:44 -07:00
Henry Zhu
cf6304a34b
v6.9.0
2016-05-17 14:49:17 -04:00
Jay Phelps
330071e59d
also visit ClassProperty's for rest param deopt check, fixes #T7311 ( #3481 )
2016-05-13 17:18:14 -04:00
Henry Zhu
05bf216339
v6.8.0
2016-05-02 19:43:49 -04:00
Henry Zhu
4c23b01798
change plugins to use babel-runtime 6
2016-04-24 20:06:23 -04:00
Amjad Masad
3d5969ecff
v6.7.0
2016-03-08 16:52:45 -08:00
Amjad Masad
b7465843dd
Merge pull request #3375 from jmm/parameters-rest-optimization-errors
...
Fix errors in parameters rest transformation [T7138]
2016-03-07 11:58:15 -08:00
Henry Zhu
57ef6a2b6a
v6.6.5
2016-03-04 18:16:17 -05:00
Amjad Masad
3667527d04
Revert "Remove flow"
...
This reverts commit 2827ff6b01dcce69e9d3c0402e96b52b3a2a47ee.
2016-03-03 14:49:20 -08:00
Henry Zhu
39a8f5b796
v6.6.4
2016-03-02 16:29:17 -05:00
Sam Goldman
2827ff6b01
Remove flow
2016-03-01 22:33:30 -08:00
Henry Zhu
f34e6518ff
v6.6.0
2016-02-29 16:12:12 -05:00
Jesse McCarthy
49e30f49bc
Fix rest optimization errors.
2016-02-25 18:42:52 -05:00
Jesse McCarthy
8419be1afc
Add postfix update expression fixtures.
...
(Failing.)
2016-02-25 17:11:19 -05:00
Jesse McCarthy
5f98d22b6d
Add for-of fixture.
...
(Failing.)
2016-02-25 17:11:19 -05:00
Jesse McCarthy
1c304965e7
Add rest loop position optimization fixture.
...
(Failing.)
With destructuring assignment to an element.
This makes the function ineligible for `arguments` optimization, while
remaining eligible for loop position optimization.
2016-02-25 17:11:19 -05:00
Victor Felder
183fbab967
Fix some rest optimization errors.
...
Commit message edited by @jmm.
2016-02-25 17:11:19 -05:00
Jesse McCarthy
6ca07974c9
Add array destruct w/o [rest[0]] on RHS fixture.
...
(Failing.)
2016-02-25 17:11:19 -05:00
Jesse McCarthy
0be3a58dd2
Add expected fixtures for new actuals.
...
(Failing.)
2016-02-25 17:11:18 -05:00
Ben Newman
a82bf11e2a
Add rest deoptimization fixtures.
...
(Failing.)
Commit message edited by @jmm.
2016-02-25 17:11:18 -05:00
Jesse McCarthy
3b8c5b7620
Merge pull request #3249 from jmm/rest-assign-el
...
Fix assignment to rest param element AST error.
Fix T6932.
2016-02-19 08:47:17 -05:00
Henry Zhu
26a3fdc3df
Merge pull request #3336 from erikdesjardins/async-arrow-rest
...
Fix T3077 (incorrect _arguments for async arrow functions with rest params)
2016-02-17 15:26:58 -05:00
Sebastian McKenzie
5b89849f43
Switch to klint, fix some lint rules
2016-02-14 23:25:14 +00:00
Erik
27a132a9cb
Add test for T3077 (Incorrect rest operator behavior for async arrow functions)
2016-02-09 13:13:28 -05:00
Henry Zhu
f9f8ad6eff
v6.5.0
2016-02-06 19:06:41 -05:00
Henry Zhu
e152e7044e
v6.4.5
2016-01-19 18:02:31 -05:00
Amjad Masad
d11bcae496
Merge pull request #3263 from jmm/rest-new-passing-fixtures
...
Increase `parameters/rest` transform test coverage
2016-01-17 14:00:26 -08:00
Jesse McCarthy
19937573a6
Fix assignment to rest param element.
2016-01-14 13:21:47 -05:00
Jesse McCarthy
49728be8b6
Test for no-opt of assign to rest param element.
...
That is, do not attempt to optimize assignments as opposed to reads.
(Failing.)
2016-01-14 13:21:40 -05:00
Jesse McCarthy
857675c99c
Add fixtures to exercise shadow conditional.
2016-01-13 17:37:29 -05:00
Jesse McCarthy
41066f55ea
Add fixtures for deopt due to arguments.
2016-01-13 17:37:23 -05:00
Jesse McCarthy
b17965ab8b
Improve comments.
2016-01-13 17:24:06 -05:00
Jesse McCarthy
059d7123db
Remove unnecessary else.
2016-01-13 17:24:06 -05:00
Jesse McCarthy
e4044062c3
Remove unnecessary length check & nesting.
2016-01-13 17:24:06 -05:00
Jesse McCarthy
4c69f1cda5
Replace func expr with arrow.
2016-01-13 17:24:06 -05:00
Jesse McCarthy
afd98ebd2a
Remove unnecessary literal return value.
2016-01-13 17:24:06 -05:00