Alexander Udalov
ac5444ef7c
Add declaresOrInheritsDefaultValue, move hasDefaultValue to 'resolution'
...
'hasDefaultValue' needs to be adapted to support locating default values
in 'expect' functions, and this is not possible in module 'descriptors',
where it was originally declared. Therefore, move it to module
'resolution' and copy its current logic to a separate function
'declaresOrInheritsDefaultValue' which is used in 5 places.
'hasDefaultValue' itself is updated in subsequent commits.
Besides changing imports, also use a simpler declaresDefaultValue in
some places, which does not include default values inherited from
supertypes: this is OK for constructors, and in LazyJavaClassMemberScope
for functions from built-ins which do not have default argument values
at all
2018-02-05 13:38:04 +01:00
Anton Bannykh
3ead464671
JS: fix callable reference with implicit extension receiver (KT-22638 fixed)
2018-02-02 14:34:34 +03:00
Ilmir Usmanov
8ffb205f1c
Reformat coroutineContext related code
2018-02-01 13:18:43 +03:00
Ilmir Usmanov
18c03f94f8
Move coroutineContext to correct package
...
from kotlin.coroutines.experimental.instrinsics to kotlin.coroutines.experimental
#KT-22400
2018-02-01 13:18:32 +03:00
Vyacheslav Gerasimov
89a07ded1c
Extract versions and remove unnecessary '.jar' extensions
2018-01-30 17:06:18 +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
Alexander Udalov
82574cb570
Do not store ClassDescriptor in EnumValue
...
Only store the ClassId of the enum class and the Name of the entry, and
resolve the needed descriptor in getType() instead, which now takes the
module instance where that descriptor should be resolved
2018-01-18 12:49:38 +01:00
Alexander Udalov
8b3d439d5b
JS: minor, simplify code locating default argument values
...
At the only call site of getDefaultArgument it is checked that the
parameter actually _declares_ default value, so it's not necessary to
try to load that value from supertypes
2018-01-18 12:46:27 +01:00
Ilya Gorbunov
e2306ecf94
Keep exception primary constructors for binary compatibility in JS
...
Resort to a workaround for KT-22053 in direct Throwable inheritors.
2017-12-29 21:21:20 +03:00
Ilya Gorbunov
3825187e93
Update expected reachable node count
2017-12-29 21:20:59 +03:00
Anton Bannykh
2df85ae4a9
kotlin-test-js: pass test function result to test framework (e.g. Promise)
2017-12-27 19:57:49 +03:00
Anton Bannykh
79359b7bc2
JS: test kotlin-test as box tests, support nested, fix mpp
...
Support tests inside nested classes and companion objects (KT-21850
fixed).
Don't launch multiplatform tests twice (KT-21567 fixed).
2017-12-27 15:22:26 +03:00
Alexey Tsvetkov
d7edbb8dfc
Track changes in inline function when friend paths are disabled in JS
2017-12-22 16:12:20 +03:00
Alexey Tsvetkov
ad1978940b
Recompile inline function usages in JS when offset is changed
...
Otherwise source maps would differ after rebuild
2017-12-22 16:12:20 +03:00
Anton Bannykh
6bee5699a0
Migrate node_utils.xml to Gradle
2017-12-14 17:41:20 +03:00
Alexey Tsvetkov
c13b2a6bbc
Test incremental recompilation of enum usage in JS
2017-12-11 17:20:14 +03:00
Mikhail Zarechenskiy
7f0cca52ca
[NI] Use definitely not-null types for smartcasts
2017-12-06 18:36:13 +03:00
Alexey Andreev
45e5cc190f
Update DCE limits in JS tests
2017-12-04 11:25:39 +03:00
Alexey Andreev
5672e1f56e
JS: add DCE devmode. Fix mapping paths in source maps
...
See KT-20210, KT-21307
2017-11-29 20:08:30 +03:00
Alexey Andreev
8514a7706f
Remove json.org library, use own JSON parser to parse source maps
2017-11-29 20:08:29 +03:00
Alexey Andreev
19438a3a07
JS: fix losing lambda in inline function after incremental compilation
...
See KT-21493
It's hard to maintain staticRef in cached AST. In fact, we don't need
it in this optimization. We'll get excessive names in used set,
which is ok: non-function names don't matter, they'll be simply ignored.
One possible concern: there's more chance to get name same to
some function's name and it won't be removed. First, it's not fatal,
it won't break the code (but put some excessive code that will likely
be removed by DCE). Second, there's same chance of two functions
having same names, and we manage to avoid this (otherwise we'll get
many problems).
2017-11-29 11:53:35 +03:00
Alexey Andreev
29b494cdac
JS: don't optimize when over external enum
...
See KT-21468
2017-11-29 11:52:36 +03:00
Alexey Andreev
7bee2ceac7
JS: add boxing/unboxing to default accessors of non-simple properties
...
See KT-21421
2017-11-27 17:01:19 +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
26843509c7
JS: disable suspend function tail-call optimization based on FE data
...
Partially fixes KT-21026
2017-11-27 17:01:16 +03:00
Alexey Andreev
6ab87ad66a
Fix failing JS tests
2017-11-27 17:01:15 +03:00
Alexey Andreev
ec8adfe7c4
JS: fix referencing outer class from secondary constructor
...
See KT-21041
2017-11-21 12:22:10 +03:00
Alexey Andreev
88441da131
JS: cache PropertyMetadata objects in property delegates
...
Also, remove unused PropertyMetadata instances
See KT-20737, KT-20738
2017-11-21 12:21:22 +03:00
Alexey Andreev
7ebfba3722
JS: apply boxing when initializing val parameter of type Char
...
See KT-20854
2017-11-21 12:20:01 +03:00
Alexey Andreev
32a0221474
JS: refactor code that copies default methods in interfaces to classes
...
Als fixes KT-21245
2017-11-21 12:18:16 +03:00
Alexey Andreev
38e50e964a
JS: fix generation of source map for inline lambda with ignored result
...
See KT-21309
2017-11-21 12:15:25 +03:00
Alexey Andreev
a9548b1224
JS: fix translation of safe calls to suspend unit functions
...
See KT-21317
2017-11-20 19:19:24 +03:00
Ilmir Usmanov
0fbbe10143
Support suspendCoroutineUninterceptedOrReturn intrinsic
...
KT-17336: Fixed
2017-11-20 18:12:41 +03:00
Alexey Andreev
89db4dfe79
JS: translate when against enum to JsSwitch when possible
2017-11-17 11:07:41 +03:00
Alexey Andreev
678b4c67c1
JS: translate when to JsSwitch when possible
...
See KT-21160
2017-11-17 11:07:38 +03:00
Alexey Andreev
7b403211dd
JS: kotlinize WhenTranslator
2017-11-17 11:07:37 +03:00
Alexey Andreev
b93acb07d2
JS: don't remove debugger statement from coroutine
...
See KT-19826
2017-11-17 11:07:36 +03:00
Alexey Andreev
21de76f88d
JS: fix identifier generation in delegate constructor calls
...
See KT-21093
2017-11-17 11:07:34 +03:00
Zalim Bashorov
291e903ae6
Mark js/js/translator/testData/out-min/ as excluded directory in IDEA
...
It's required to avoid indexing a lot of js files (> 200MB)
after each run of js tests.
2017-11-16 15:41:45 +03:00
Zalim Bashorov
4849bddde1
KJS: write minification's test results to separate directory
...
It allows excluding this directory from indexing inside IDEA
and probably simplifies the main workflow.
2017-11-16 15:36:20 +03:00
Alexander Udalov
02981038f3
Split core into descriptors, descriptors.jvm, deserialization, descriptors.runtime
2017-11-10 18:58:31 +01:00
Alexey Andreev
779af375a7
JS: fix inlining of array constructor expressed via typealias
...
See KT-20978
2017-11-08 16:12:16 +03:00
Alexey Andreev
ec53f9b254
JS: don't emit short circuit operators for boolean and/or
...
See KT-21004
2017-11-08 16:10:57 +03:00
Alexey Andreev
132285ea03
JS: optimize loop over array.withIndex()
...
See KT-20932
2017-11-03 17:36:05 +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
bd7129d0d6
JS: fix non-abstract extension properties in interfaces
...
KT-20994
2017-11-03 17:29:44 +03:00
Ilmir Usmanov
817f79520a
Implement coroutineContext intrinsic
...
This intrinsic allows coroutine to access its context without suspention
and, furthermore, disabling tail-call optimization.
KT-17609: Fixed
2017-11-02 12:45:24 +03:00