Commit Graph

17655 Commits

Author SHA1 Message Date
Alexey Tsvetkov 80eca3e49e JS inline refactor: refactored clean utils after code review 2014-10-03 14:23:53 +04:00
Alexey Tsvetkov 1ad090e3a7 JS inline refactor: moved contexts to 'context' package 2014-10-03 14:23:53 +04:00
Alexey Tsvetkov cd9349deb7 JS inline refactor: moved JS AST collecting utils to 'collectors' package 2014-10-03 14:23:53 +04:00
Alexey Tsvetkov 86c253ef6d JS inline refactor: moved JS AST modifying utils to 'rewriters' package 2014-10-03 14:23:53 +04:00
Alexey Tsvetkov d3a8f78a88 JS inline minor: moved JsInliningContext definition to the bottom of JsInliner 2014-10-03 14:23:53 +04:00
Zalim Bashorov 0e075c7d5f JS backend: added the ability to turn off the inline optimization. 2014-10-03 14:23:53 +04:00
Alexey Tsvetkov 338789664c JS inline: use inlined function name for inline labels 2014-10-03 14:23:53 +04:00
Alexey Tsvetkov cbb9e9c40e JS inline: inline simple-return functions directly 2014-10-03 14:23:52 +04:00
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