Anton Bannykh
4e496cf2b2
JS: don't throw AssertionError from RedundantCallElimination
...
Also mark JS `call` function to avoid removing a custom `call`
2018-08-23 14:44:40 +03:00
Roman Artemev
c62e4b4fcf
[JS IR BE] Support coroutines
...
* Move FinallyBlockLowering to common part
* Fix catching of dynamic exception
* Fix bridges for suspend functions
* Disable explicit cast to Unit
* Run lowering per module
* Update some test data
2018-08-08 18:33:39 +03:00
Roman Artemev
0c6256d003
Fix initialization order
...
* put inheritance code in the beginning
* put top-level initializer after any declaration
2018-07-24 20:16:39 +03:00
Svyatoslav Kuzmich
a7a695f203
KJS: Add JsLoop AST interface and corresponding visitors
2018-07-03 19:51:58 +03:00
Alexey Tsvetkov
701f96998a
Remove unused SourceInfo interface
2018-04-19 05:18:54 +03:00
Alexey Tsvetkov
8a82c1618c
Use Plugins DSL in Kotlin Gradle scripts
...
When plugins DSL is used, there is no need to
manually generate typesafe accessors for extensions and
conventions (by running `./gradlew kotlinDslAccessorsSnapshot`).
2018-03-26 16:09:29 +03:00
Yan Zhulanow
34d1611ed4
Add Pill support to compiler and IDE modules
2018-03-02 03:15:17 +03:00
Ilya Chernikov
7e21573cf4
Convert the rest of the project to intellij repo prepared in buildSrc
2018-01-30 17:06:13 +03:00
Ilya Chernikov
a4f28cd94f
Make all dependencies to idea sdk intransitive
2018-01-30 17:06:11 +03:00
Ilya Chernikov
8266777bd5
Convert js modules to intellij plugin
2018-01-30 17:06:07 +03:00
Alexey Andreev
71b1591044
JS: replace suspend inline metadata after inlining
...
This fixes some issues on coroutine inlining, see tests
2017-11-27 17:01:18 +03:00
Alexey Andreev
f8e7861ce6
JS: add partial tail-call optimization for suspend functions
2017-11-27 17:01:17 +03:00
Alexey Andreev
1be86e05ae
JS: optimize range check for int and long
...
See KT-2218
Additionally, fix temporary variable elimination for && and ||
2017-11-03 17:35:17 +03:00
Alexey Andreev
cb0482f53e
JS: fix crash when js function contains for statement w/o initializer
...
Fix KT-20898
2017-10-23 17:19:49 +03:00
Alexey Andreev
b781661279
JS: fix copying functions with default arguments across interfaces
...
Copy function to super interface first, then copy from interface
to class. Add interface set to JsClassModel for this purpose.
See KT-20625
2017-10-19 13:10:47 +03:00
Anton Bannykh
ac508a510e
JS: Support isInitialized intrisic for lateinit properties
2017-10-11 19:23:49 +03:00
Alexey Andreev
c15847a957
JS: support non-local return from secondary constructor
...
See KT-14549
2017-10-04 12:00:53 +03:00
Alexey Andreev
bad50c03a7
JS: support cross-module inlining of suspend functions
...
See KT-18063
2017-09-29 14:32:49 +03:00
Ilya Chernikov
3aabeca191
Fix maven and android tests after modularizing and rebasing
2017-09-20 11:51:21 +02:00
Alexander Podkhalyuzin
3f8170d369
Clean idea files generated on the gradle import, add them to .gitignore
2017-09-19 23:58:27 +02:00
Ilya Chernikov
deda50dbbb
Continue switching projects to improved dsl: sourceSets and test running
2017-09-19 21:37:26 +02:00
Ilya Chernikov
61dfb75e0e
Implement Gradle Kotlin DSL build
2017-09-19 21:37:06 +02:00
Alexey Andreev
37fa45dc34
Add mechanism for type coercion in JS
...
Use it for char boxing/unboxing and unit materialization.
Possible to use for other purposes, for example, to add type checks
to dynamics.
See KT-18793, KT-17915, KT-19081, KT-18216, KT-12970, KT-17014,
KT-13932, KT-13930
2017-09-11 14:34:34 +03:00
Alexey Andreev
ff0efe59f6
JS: fix error in generation of if/else statements in some cases
...
See KT-19495
2017-09-08 10:56:49 +03:00
Alexey Andreev
1260146d25
Use local aliases for char boxing and unboxing in JS BE
2017-09-04 15:33:12 +03:00
Alexey Andreev
7646c2fc72
Use local aliases for Kotlin runtime functions in JS BE
2017-09-04 15:33:11 +03:00
Alexey Andreev
f2b2e20331
Minor cleanup in JS backend
2017-09-04 15:33:10 +03:00
Alexey Andreev
901346243d
JS: fix inlining of function that calls functions from other modules
2017-09-04 15:33:08 +03:00
Alexey Andreev
7c421b0b83
Refactor JS translator to generate code for new inliner
2017-09-04 15:33:03 +03:00
Alexey Andreev
4bd9866975
Remove unnecessary overriding methods, fix compilation
2017-07-06 10:34:05 +03:00
Alexey Andreev
1e74325c52
Generated source map for JS function's closing curly bracket
2017-07-06 10:20:44 +03:00
Alexey Andreev
b5218915f8
Fix associativity of generated comma operator in JS BE
2017-07-06 10:20:42 +03:00
Alexey Andreev
dea73ebecf
Refactor generator of JS source map
...
- refactor pipeline for generation of source map
- generate "empty" mappings for nodes that impossible
to map to something reasonable
- generate more accurate locations in source maps for specific
JS AST nodes
- for binary operation nodes parser now returns location
of binary operator tokens instead of location of first operand
- change completely how source map remapper works
2017-07-06 10:20:41 +03:00
Alexey Andreev
4037112f28
Implement deepCopy in JsRegExpr
2017-06-28 10:48:01 +03:00
Alexey Andreev
64331ffa40
Avoid excessive copying in JsLabel
...
See KT-18331
2017-06-28 10:48:01 +03:00
Alexey Andreev
a0e1bde594
Allow to embed source files into JS source maps
2017-06-26 18:15:28 +03:00
Alexey Andreev
c5bf76578a
Add test infrastructure for JS source map parser and generator
2017-06-07 11:13:52 +03:00
Alexander Udalov
7febd846e8
Export 'intellij-core' in module 'frontend'
...
Remove intellij-core from dependencies of modules which already depend
on frontend or any module that exports frontend (such as frontend.java)
2017-06-06 14:29:26 +03:00
Alexey Andreev
4346fb5c23
Minor refactoring of JS AST nodes representing boolean literals
2017-05-30 12:49:00 +03:00
Alexey Andreev
e9a2c8c0f1
Prevent JS AST nodes of several types to be shared
2017-05-30 12:48:47 +03:00
Alexey Andreev
3077a0f640
Fix generation of JS source maps for suspend functions
2017-05-30 12:12:49 +03:00
Alexey Andreev
e5662ac2ad
Copy location info when copying JS AST subtrees
...
This is necessary to preserve source information of a function's body
after inlining.
2017-05-30 12:12:28 +03:00
Alexey Andreev
4bb1130f3f
Fix translation of labels with non-identifier names in JS BE
...
See KT-18027
2017-05-29 15:37:31 +03:00
Alexey Andreev
0d7b39eb57
JS: minor code cleanup
2017-04-24 18:39:04 +03:00
Alexey Andreev
df46417cd7
JS: fix NPE in incremental compilation
...
Fix NPE when compiling project incrementally and a file which
is not recompiled contains try/catch statement
2017-04-24 18:39:03 +03:00
Alexey Andreev
1c2120d7e2
JS: avoid repeated export of the same declaration
2017-04-24 18:30:42 +03:00
Alexey Andreev
f4a9b99e4d
JS: fix incremental generation of source maps
2017-04-24 18:30:38 +03:00
Alexey Andreev
02ca374dc9
JS: fix inlining in incremental compilation
2017-04-24 18:29:48 +03:00
Alexey Andreev
49dacfcd76
JS: add metadata to AST serialization/deserialization
2017-04-24 18:29:19 +03:00
Alexey Andreev
8d2eb344ff
JS: add AST deserializer
2017-04-24 18:29:18 +03:00