Ilya Gorbunov
99de68507d
Workaround for new MPP dependency configuration limitations
2018-08-30 14:56:46 +03:00
Alexander Udalov
cbc92bc9a1
Add KClass.sealedSubclasses to get direct subclasses of sealed class
...
#KT-14657 Fixed
2018-08-30 14:56:21 +03:00
Mikhail Zarechenskiy
d94b47bcd3
Support other kinds of translation for unsigned literals
2018-08-30 14:55:34 +03:00
Roman Artemev
d1df5f5783
Fix unsigned constants translation (Int to UInt)
2018-08-30 14:54:30 +03:00
Mikhail Zarechenskiy
61efbea9a8
Initial support of unsigned literals translation in JS
2018-08-30 14:54:27 +03:00
Ilya Gorbunov
e4d7efcf06
Update expected reachable node count in JS tests
...
Caused by new coroutine API an its js support
2018-08-30 14:52:43 +03:00
Ilya Gorbunov
516ea04d18
Update expected reachable node count in JS tests
...
Caused by introduction of new random API
2018-08-30 14:52:40 +03:00
Roman Artemev
cc14442be1
Add tests for primitive companion object
...
Update test data
2018-08-24 14:58:42 +03:00
Roman Artemev
450ed63690
[JS IR BE] Implement primitive companion object
2018-08-24 14:58:42 +03:00
Dmitry Petrov
2a524920a5
Don't remap inline function args requiring inline class boxing/unboxing
...
Same as for primitives: inline lambda expects to see a boxed value,
so, even if an argument is a local variable, it can't be remapped,
because it contains unboxed representation.
2018-08-24 14:52:29 +03:00
Dmitry Petrov
6e2d05cd94
Fix argument original type order in InlineCodegen
...
Arguments are put on stack in the direct order, and then stored into
local variables for inlining in the reversed order:
<arg0>
<arg1>
<arg2>
store <param2>
store <param1>
store <param0>
Original value parameter types were taken in direct order, though.
2018-08-24 14:52:29 +03:00
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
Ilmir Usmanov
0559cfb724
Move SuspendFunction{N} interfaces to kotlin.coroutines package
...
#KT-25824: Fixed
2018-08-22 16:21:30 +03:00
Ilmir Usmanov
4a7703ed66
Implement correct is check for SuspendFunction
...
Let callable references implement SuspendFunction
Do not generate CHECKCAST SuspendFunction when LV is 1.2
#KT-25825: Fixed
2018-08-22 16:21:27 +03:00
Dmitry Petrov
533f87ac33
Use proper KotlinType for prefix increment/decrement
...
Otherwise inline class values (such as UByte) are boxed incorrectly,
see KT-26219.
2018-08-22 12:24:50 +03:00
Anton Bannykh
04b04f919d
JS: fix complex nested cross-module inlining (KT-26117 fixed)
2018-08-21 20:42:02 +03:00
Zalim Bashorov
503fcd5cd3
[JS FE] Minor: cleanup JsExternalChecker.kt
2018-08-21 17:09:34 +03:00
Zalim Bashorov
589085369e
[JS FE] Unify how the compiler checks parameters and return types for external declarations
2018-08-21 17:09:33 +03:00
Zalim Bashorov
9d0b880f67
[JS FE] Prohibit inline classes as parameter type and return type of external declarations
...
#KT-26171 Fixed
2018-08-21 17:09:33 +03:00
Zalim Bashorov
839bce5236
[JS FE] Prohibit external inline classes
...
#KT-26138 Fixed
2018-08-21 17:09:33 +03:00
Dmitry Petrov
7d4dfc87b1
Use proper KotlinType in get/set methods for property reference
2018-08-21 08:43:12 +03:00
Ilmir Usmanov
d3dbcae7a4
Get rid of typed create and invoke wherever possible
...
in coroutine lambdas.
#KT-26243 Fixed
2018-08-20 21:33:24 +03:00
Svyatoslav Kuzmich
7578dbf8f2
[JS BE] KT-22053 Fix constructor delegation of immediate subtype of Error
2018-08-20 12:08:30 +03:00
Zalim Bashorov
8966e220f0
Update tests
2018-08-17 21:44:08 +03:00
Zalim Bashorov
0f6a77e700
[JS IR BE] take into account receiver's type when generate name for callables (including properties)
...
Also, add special markers for receiver type and generic types to avoid accidental clashes.
2018-08-17 20:31:06 +03:00
Anton Bannykh
8e5b2fe657
JS: create appropriate nameBinding's upon inlining
...
Otherwise JsName's don't get linked properly upon deserialization.
As a result a function/constructor doesn't get renamed at
call site during the name conflict resolution phase.
2018-08-17 15:27:00 +03:00
Dmitry Petrov
b6e3218ca2
Use mapping mode for inline class underlying type without wrapping
2018-08-16 15:03:50 +03:00
Ilya Gorbunov
ebc64da52a
Update EXPECTED_REACHABLE_NODES after introducing top-level comparator
...
#KT-18067
2018-08-15 21:28:57 +03:00
Dmitry Petrov
8e95ecb821
Use underlying type when computing type mapping mode for inline classes
2018-08-15 15:37:46 +03:00
Ilmir Usmanov
a470fd21ca
Eliminate only first {ASTORE, ALOAD} in locals elimination
...
of ALOAD.
#KT-25912: Fixed.
2018-08-15 13:45:24 +03:00
Svyatoslav Kuzmich
ff70b837ee
[JS IR BE] Support local delegated properties
2018-08-15 13:35:14 +03:00
Svyatoslav Kuzmich
392ad521fd
[JS IR BE] Reflection support
2018-08-15 13:35:14 +03:00
Dmitry Petrov
ebf8ec455d
Box/unbox nullable inline class values with null check
...
When we have a nullable inline class value with non-null underlying
type, corresponding value in unboxed representation is nullable. E.g.:
inline class Str(val value: String)
fun test(s: Str?) = listOf(s)
Here 'test(s: Str?)' accepts nullable 'java.lang.String' as a parameter.
When boxing/unboxing nullable values of such inline classes, take care
of nulls.
#KT-26052 Fixed Target versions 1.3-M2
2018-08-14 10:22:07 +03:00
Dmitry Petrov
0af33462ef
Fix code generation for Array<C> element access where C is inline class
2018-08-13 08:49:04 +03:00
Anton Bannykh
a2f44c3caf
JS: Recreate Nashorn script engine occasionally
...
Otherwise execution slows down significantly.
2018-08-10 22:15:37 +03:00
Dmitry Petrov
4f6aa50417
Fix == for inline classes with boxes
...
TODO generalize code generating object vs primitive equality
#KT-25914 Fixed
#KT-25981 Fixed
#KT-25983 Fixed
2018-08-10 10:34:57 +03:00
Roman Artemev
6c8e30eb05
Fix test failures
...
* add metadata
* unmute working tests
* mute temporary broken ones
2018-08-09 20:55:50 +03:00
Zalim Bashorov
3c765e3625
[JS BE] Support val in when subject
...
#KT-25014 Fixed
2018-08-09 16:22:25 +03:00
Zalim Bashorov
289ff845c4
Minor: remove extra slash from a testdata file
2018-08-09 16:22:25 +03:00
Anton Bannykh
2c4e21ca36
JS box tests via Mocha: respect the ignoreTestFailures flag
2018-08-09 15:00:54 +03:00
Mikhail Zarechenskiy
be38263fc7
Introduce conversions from signed pure constants to unsigned ones
...
#KT-24717 In Progress
#KT-25996 Open
#KT-25997 Open
2018-08-09 09:47:48 +03:00
Roman Artemev
36a99da820
Break/finally chain in suspend function test fix & workaround
2018-08-08 19:11:17 +03:00
Roman Artemev
efec82c0eb
Update test data
...
* add new tests for coroutines
* add copy of some tests without dependency on stdlib
2018-08-08 18:33:41 +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
Svyatoslav Kuzmich
a1c10956cb
[JS IR BE] Support super calls for methods of Any
2018-08-07 14:41:50 +03:00
Alexander Udalov
14b8f4b52b
Minor, change package of outputUtils.kt
2018-08-07 13:38:30 +02:00
Mikhail Zarechenskiy
55e7def3c1
Fix coercion for stack value property in case of inline classes
...
#KT-25771 Fixed
2018-08-06 17:45:20 +03:00
Mikhail Zarechenskiy
6d4d244c28
Generate function from Any for inline classes same as for data classes
...
#KT-24873 Fixed
#KT-25293 Fixed
#KT-25299 Fixed
2018-08-06 10:56:01 +03:00
Mikhail Zarechenskiy
043ce1cb27
Support secondary constructors for inline classes
...
#KT-25614 Fixed
#KT-25246 Fixed
KT-25599 Will be fixed after recompilation of unsigned classes
2018-08-06 10:55:57 +03:00
Dmitry Petrov
1bfb75a51b
Generate intrinsic-based numeric comparison only for FP types
2018-08-03 09:34:59 +03:00