Sebastian McKenzie
faa10df84c
add toConsumableArray helper for spread - fixes #757
2015-02-12 07:37:40 +11:00
Sebastian McKenzie
e0bfc72700
fix tail call deopt check
2015-02-11 20:16:50 +11:00
Sebastian McKenzie
85d33536e0
add deopt logging to tail call transformer
2015-02-11 15:59:15 +11:00
Sebastian McKenzie
a4932e0e0f
add messages to make it easier to make error messages
2015-02-11 15:57:30 +11:00
Sebastian McKenzie
db93c52182
opt out of tail recursion optimisation if the owner id has been reassigned - fixes #744
2015-02-11 11:27:50 +11:00
Sebastian McKenzie
56a953df64
add basic support for class property initializers - #619
2015-02-11 10:59:44 +11:00
chico
146835e0f1
fix broken code, lint and codestyle fixes
2015-02-10 18:16:54 +03:00
chico
79ba97872c
optimise lodash usage; change contains function to includes for convenience
2015-02-10 17:40:53 +03:00
Sebastian McKenzie
897566ccb3
more reliable scope construction
2015-02-11 00:38:59 +11:00
Sebastian McKenzie
0c1e1e757c
default optional builder keys to false
2015-02-11 00:02:51 +11:00
Sebastian McKenzie
8598000a69
restructure Scope API and internal data structure
2015-02-10 23:52:23 +11:00
Sebastian McKenzie
edc8bee38e
test for falsy nodes in tail call transformer subtransform
2015-02-10 22:39:46 +11:00
Sebastian McKenzie
45b70d7fba
fix bad ctrl+f Class -> ClassTransformer replacement
2015-02-10 22:39:21 +11:00
Sebastian McKenzie
329b4e9d21
append Transformer to the end of transformer classes
2015-02-10 22:12:36 +11:00
Sebastian McKenzie
f1bca0013e
refactor tail call transformer into a class - @RReverser
2015-02-10 22:11:22 +11:00
Sebastian McKenzie
47b803ef24
remove old tail call transformer
2015-02-10 18:33:51 +11:00
Ingvar Stepanyan
0d542b61d3
Performance improvements for TCO.
...
http://jsperf.com/tco/17
2015-02-09 19:00:31 +02:00
Sebastian McKenzie
8e2df3f1f9
add kinds to binding registration and rename declaration scope methods to bindings
2015-02-09 19:42:52 +11:00
Sebastian McKenzie
70eb641530
fix element name in default parameters
2015-02-09 08:46:06 +11:00
Sebastian McKenzie
f845a9b2c4
ignore binding elements when finding the last non-default param - fixes #723
2015-02-09 08:25:58 +11:00
Sebastian McKenzie
ee5cb8d9ed
clean up tail call transformer
2015-02-08 22:47:50 +11:00
Sebastian McKenzie
45c507056a
add back old tail call implementation
2015-02-08 22:09:41 +11:00
Sebastian McKenzie
97784c8cca
comment out tailCall transformer
2015-02-08 21:19:01 +11:00
Sebastian McKenzie
812d93553a
temporairly disable tailCall transformer
2015-02-08 21:17:21 +11:00
Ingvar Stepanyan
0a1724fc3f
Remove no more needed returnBlock helper.
2015-02-08 11:31:19 +02:00
Sebastian McKenzie
bcc9e016b1
only evaluate object destructuring pattern once
2015-02-08 20:23:22 +11:00
Sebastian McKenzie
de6b608dda
add _declarations and _scopeInfo to t.inherits
2015-02-08 20:23:21 +11:00
Ingvar Stepanyan
9e3c67a8a2
Clean up functionChildrenVisitor a bit.
2015-02-08 10:53:09 +02:00
Ingvar Stepanyan
91362f80b1
Clean up transformations after #714 .
...
Since now we have runtime helper, we don't need
expression -> statement conversions anymore.
2015-02-08 10:40:03 +02:00
Sebastian McKenzie
9161af58c0
fix linting errors
2015-02-08 16:32:08 +11:00
Sebastian McKenzie
e42d5a889e
make destructuring in catch clauses block scoped and add support for non-variable destructuring in for-in/of heads
2015-02-08 14:33:55 +11:00
Sebastian McKenzie
4c8e6481b6
make default parameters iife invocation less serious
2015-02-08 09:54:24 +11:00
Sebastian McKenzie
0867df2691
fix ForOf block body not properly inheriting declarations
2015-02-08 09:50:12 +11:00
Sebastian McKenzie
b06f99ab30
add iife detection to non-identifier params in default parameters
2015-02-08 09:37:06 +11:00
Sebastian McKenzie
dabe69856a
add additional checks to transformers
2015-02-08 09:31:19 +11:00
Ingvar Stepanyan
4c318166e1
Added complete TCO (tail call optimization).
...
Works across functions and generates simpler and faster code than #701 .
Works even across files when used in conjunction with `runtime` option.
Closes #256 .
2015-02-07 22:22:38 +02:00
Sebastian McKenzie
c0af67eca1
add support for super in object literals - fixes #411
2015-02-08 02:01:17 +11:00
Sebastian McKenzie
eb14f1da00
implement optional TDZ - fixes #563
2015-02-08 01:27:22 +11:00
Sebastian McKenzie
8a143bf957
use a template in tail call transformer - @RReverser
2015-02-07 23:52:35 +11:00
Ingvar Stepanyan
b53b41cef3
Provide placeholders for proper function length.
2015-02-07 14:26:03 +02:00
Ingvar Stepanyan
5b2216b348
Add tail recursion optimization.
...
As per ES6, VMs should perform tail call optimization and prevent growth of call stack.
This adds tail call optimization for recursion case (when function has explicit name and calls itself in `return`).
Cross-function optimization is not currently performed as it's more complicated and requires value tracking.
2015-02-06 16:34:35 +02:00
Sebastian McKenzie
ad60d49611
fix bindingEquals in constants transformer
2015-02-06 23:35:19 +11:00
Sebastian McKenzie
a6d1a5a724
add bindingEquals, typeEquals, referenceEquals helper methods to Scope
2015-02-06 23:07:10 +11:00
Sebastian McKenzie
76ae1682a3
remove context arg in favor of this, rename TraversalIteration to TraversalPath, and remove ast handlers
2015-02-06 01:47:43 +11:00
Sebastian McKenzie
f365cc1248
more internal rearchitecturing
2015-02-05 14:05:15 +11:00
Sebastian McKenzie
4b2cf2e2c5
fix styling errors
2015-02-04 23:24:08 +11:00
Sebastian McKenzie
23b8c72e9a
remove unused traverse requires
2015-02-04 23:22:26 +11:00
Sebastian McKenzie
d6b39bc89b
HomeObject isn't dynamic - fixes #690
2015-02-04 18:47:58 +11:00
Sebastian McKenzie
37ef976515
more cleanup of the destructuring transformer
2015-02-04 18:21:10 +11:00
Sebastian McKenzie
fa5a3022d4
clean up destructuring transformer
2015-02-04 17:48:27 +11:00