Commit Graph

17647 Commits

Author SHA1 Message Date
Alexey Tsvetkov da817e7ed2 JS inline: use dfs processing order, as it is independent of declaration order 2014-10-03 14:23:52 +04:00
Alexey Tsvetkov a5688440a1 JS inline: added inline recursion exception 2014-10-03 14:23:52 +04:00
Alexey Tsvetkov 5aaa186180 JS inline: remove unused function literals and local functions 2014-10-03 14:23:52 +04:00
Alexey Tsvetkov ec6108ee05 JS inline: remove unused local function instances 2014-10-03 14:23:52 +04:00
Alexey Tsvetkov 7f98ceb427 JS inline: common reference utilities for cleaning up after inline 2014-10-03 14:23:52 +04:00
Alexey Tsvetkov ddb3157a58 JS inline: added collections utils 2014-10-03 14:23:52 +04:00
Alexey Tsvetkov c78169d236 JS inline: support inline local functions 2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 1dafa79eaf JS inline: prevent inliner from inlining multiple subexpressions at once 2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 87d108e75e JS inline: default parameter processing for inlined functions
When function is inlined initializers
for default parameters can be:
1. removed  if argument is not `void 0`
2. expanded otherwise
2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 1f68b43558 JS inline: support inline extension functions 2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 78e7b9c32b JS inline: replace returns with result variable assignment and break 2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 667a22f84e JS inline: alias arguments and local variables 2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 49718f143b JS inline: create JsInliningContext per function processed by JsInliner 2014-10-03 14:23:51 +04:00
Alexey Tsvetkov 0151b7a2d1 JS inline: added inlining context utilities 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov f29816f19c JS inline: added invocation utils 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov 1aa55f3e54 JS inline: run JsInliner after AST is built 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov 3c4125c233 JS inline: inline function calls 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov 3c7677e73e JS inline: collect defined functions 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov 2e38833367 JS inline: save static ref to JsFunction in JsName 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov e4cd733879 JS inline: added JsInliner 2014-10-03 14:23:50 +04:00
Alexey Tsvetkov 60271201fc JS inline: added FunctionInlineMutator 2014-10-03 14:23:49 +04:00
Alexey Tsvetkov 2c443532c5 JS inline: added InlineableResult 2014-10-03 14:23:49 +04:00
Alexey Tsvetkov 3cdae252ef JS inline: save inline status during translation 2014-10-03 14:23:49 +04:00
Alexey Tsvetkov efac671ae6 JS inline: removed legacy inline logic 2014-10-03 14:23:49 +04:00
Alexey Tsvetkov f076ab8f54 JS backend: added deepCopy() method to JS AST nodes 2014-10-03 14:23:49 +04:00
Alexey Tsvetkov b880775de5 JS backend: removed JsBlock toString() truncation
Truncation complicates debugging.
Some inline tests depend on functions strings  comparison.
2014-10-03 14:23:49 +04:00
Alexey Tsvetkov 28b3ed67c1 JS backend: made JsScope hasOwnName method public 2014-10-03 14:23:48 +04:00
Alexey Tsvetkov 2b6045af0f JS backend: made JsBlock statements list modifieable
Inliner should be able to add statements of inline function to JsBlock
2014-10-03 14:23:48 +04:00
Alexey Tsvetkov 53fe237499 JS backend: made JsInvocation arguments modifieable 2014-10-03 14:23:48 +04:00
Alexey Tsvetkov 96e5985ca9 JS backend: added NotNull annotation 2014-10-03 14:23:48 +04:00
Alexey Tsvetkov d27b7b793f JS backend: break label should be JsNameRef, not String
The reason is to make it easier to distinguish
between different break labels (that's valid on same level).
JsNameRefs can be distinguished by their JsName.
2014-10-03 14:23:48 +04:00
Alexey Tsvetkov 915f8734c5 JS backend: added visitors with context 2014-10-03 14:23:48 +04:00
Alexey Tsvetkov 15e963de25 JS test: turn rhino optimization off for stdlib tests 2014-10-03 14:23:48 +04:00
Alexey Tsvetkov 3f2d4b31be JS test: added inline tests 2014-10-03 14:23:47 +04:00
Alexey Tsvetkov 987708680f JS test: JS AST access from tests 2014-10-03 14:23:47 +04:00
Alexey Tsvetkov 1dcc096753 JS test: removed legacy inline tests 2014-10-03 14:23:47 +04:00
Alexey Tsvetkov 0484df00c3 JS test: added test utils 2014-10-03 14:23:47 +04:00
Alexey Tsvetkov a26e77fd93 JS inline: new module 2014-10-03 14:23:47 +04:00
Nikolay Krasko 555119f59a Exceptions during 'compute' in storage manager must be processed with exception strategy
#KT-5134 Fixed
2014-10-02 23:37:49 +04:00
Valentin Kipyatkov bbc2d30f60 KT-4849 'Join lines' should remove braces from single-statement block
#KT-4849 Fixed
2014-10-02 18:26:07 +04:00
Valentin Kipyatkov 53983774d0 Moved and renamed class + added check for JetFile 2014-10-02 18:26:07 +04:00
Valentin Kipyatkov 593e93b88b Moved code from DeclarationUtils and refactored code 2014-10-02 18:26:07 +04:00
Valentin Kipyatkov d71c481606 Moved test data 2014-10-02 18:26:06 +04:00
Valentin Kipyatkov 8cb631d6f8 Better way of changing property intiailizer used 2014-10-02 18:26:06 +04:00
Valentin Kipyatkov c0db84331e Fixed bug in join lines 2014-10-02 18:26:06 +04:00
Valentin Kipyatkov c6f10ea219 Moved some code from DeclarationUtils to JetDeclarationJoinLinesHandler and refactored it 2014-10-02 18:26:06 +04:00
Valentin Kipyatkov 879f0d201e Converted JetDeclarationJoinLinesHandler to Kotlin 2014-10-02 18:26:06 +04:00
Evgeny Gerashchenko c7633a5266 Added workaround for auto-ungzipping when downloading in Ant 1.9.4. 2014-10-02 11:48:09 +04:00
Evgeny Gerashchenko 498d1d5cf8 Updating regexp for finding URL of IDEA EAP. 2014-10-02 11:48:09 +04:00
Svetlana Isakova ce01c61811 Rename: auto cast -> smart cast 2014-10-01 18:52:52 +04:00