Commit Graph

17668 Commits

Author SHA1 Message Date
Zalim Bashorov d16ddd081a JS backend: copy metdata when copy node. 2014-10-03 14:23:56 +04:00
Zalim Bashorov 1c5338ccf7 JS backend: added the ability to add metadata to js nodes. 2014-10-03 14:23:55 +04:00
Zalim Bashorov 03539c1945 Minor: removed unused ChameleonJsExpression. 2014-10-03 14:23:55 +04:00
Zalim Bashorov 4816e391ff Minor in JS backend: moved js.inliner to "compiler/js" group and added descriptors to its dependencies. 2014-10-03 14:23:55 +04:00
Alexey Tsvetkov d3fce0d0ec JS inline return statements after top return 2014-10-03 14:23:55 +04:00
Alexey Tsvetkov 7a8ba9c733 JS backend refactor: refactored LiteralFunctionTranslator after code review 2014-10-03 14:23:55 +04:00
Alexey Tsvetkov c47732e7eb JS inline minor: optimized imports 2014-10-03 14:23:55 +04:00
Alexey Tsvetkov 64982aa72e JS backend minor: made CALL_FUNCTION constant public 2014-10-03 14:23:54 +04:00
Alexey Tsvetkov d6f8aa6f03 JS backend minor: made undefined expression static field 2014-10-03 14:23:54 +04:00
Alexey Tsvetkov fb475775c9 JS inline minor: inlined doDirectInline() 2014-10-03 14:23:54 +04:00
Alexey Tsvetkov 6018b103cc JS inline refactor: splitted Renaming.kt 2014-10-03 14:23:54 +04:00
Alexey Tsvetkov 17a78dd522 JS inline refactor: moved invocation and function utils to separate files 2014-10-03 14:23:54 +04:00
Alexey Tsvetkov 7fbed5ee86 JS inline refactor: extracted flattenStatement() function 2014-10-03 14:23:54 +04:00
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