Alexey Andreev
7e2d5b04de
JS: move more test to box tests
2016-09-29 12:00:42 +03:00
Alexey Andreev
9bf124af3f
JS: move more test to box tests
2016-09-29 12:00:42 +03:00
Alexey Andreev
a18f5eca2d
JS: move more test to box tests
2016-09-29 12:00:41 +03:00
Alexey Andreev
cdf2212c73
JS: move more test to box tests
2016-09-29 12:00:41 +03:00
Alexey Andreev
efb82a044f
JS: move inline test to box tests
2016-09-29 12:00:40 +03:00
Alexey Andreev
b159049be8
JS: move expressions test to box tests
2016-09-29 12:00:40 +03:00
Alexey Andreev
2bf0199959
JS: create new common directory for all generated tests, migrate several tests there
2016-09-29 12:00:39 +03:00
Alexey Andreev
db86d34699
JS: move InlineMultiModuleTestGenerated under new test class
2016-09-29 12:00:38 +03:00
Alexey Andreev
dc0d7114be
JS: introduce a new base class for generated tests
2016-09-29 12:00:38 +03:00
Ilya Gorbunov
8627547a63
Provide java.util.AbstractCollection and AbstractList as deprecated classes with implemented abstract methods rather than as typealiases to smooth migration.
...
This comes at price that `ArrayList is java.util.AbstractColleciton` is false.
2016-09-28 22:06:03 +03:00
Ilya Gorbunov
a5c0f11d60
Split AbstractCollection, List, Set in JS to readonly Abstract[Collection] and mutable AbstractMutable[Collection].
...
Update compatibility type aliases.
2016-09-28 22:06:03 +03:00
Ilya Gorbunov
bf56f04368
Simplify Kotlin.collectionsSort as it always being provided with MutableList.
2016-09-24 07:08:21 +03:00
Ilya Gorbunov
54a640d733
Cleanup: remove unused code from HashMap, remove commented out specialization intrinsics.
2016-09-24 07:08:21 +03:00
Ilya Gorbunov
d1a24de278
Consequences of map/set specializations removal:
...
- NaNs are no longer usable as keys in maps or elements in sets.
- Chars are stored as their underlying type string, and Longs are stored as objects.
Opened #KT-13610
2016-09-24 07:08:21 +03:00
Ilya Gorbunov
ea82c20692
Remove js implementations of java.util maps and sets, disable intrinsic to select specialized implementations.
...
#KT-12386
2016-09-24 07:08:21 +03:00
Ilya Gorbunov
5cd3417d4c
Maps and sets: cleanup, simplify, refactor.
...
#KT-12386
2016-09-24 07:08:21 +03:00
Ilya Gorbunov
75069143c7
Rewrite ArrayList, AbstractList, AbstractCollection in kotlin.
...
AbstractList is imported from GWT.
#KT-12386
2016-09-24 07:08:21 +03:00
Alexey Andreev
7dbada0d06
JS: repair serialization of type aliases
2016-09-19 12:30:32 +03:00
Alexey Andreev
9dd6c9a65c
KT-13664: write values of long compile-time constants as constants. Fix #KT-13664
2016-09-19 12:29:58 +03:00
Alexey Andreev
dd062bfd6d
JS: add explanation to inline/arrayLiteralAliasing.kt test
2016-09-14 16:37:54 +03:00
Alexey Andreev
a9330057cc
KT-8283: fix Kotlin.equals method to compare arrays by reference
2016-09-14 16:37:53 +03:00
Alexey Andreev
5534350fd6
KT-7397: use reference comparison (===) when translating a is A, where A is an object. Use more sophisticated check for reified parameters.
2016-09-14 13:16:24 +03:00
Alexey Andreev
16af7d667f
KT-12868: if a property initializer is a complex expression that emits additional statements, emit these statements directly before assignment to the property, not at the beginning of constructor
2016-09-09 13:54:03 +03:00
Alexey Andreev
80361bf2fb
KT-13583: allow local classes to capture members of outer classes
2016-09-09 13:07:08 +03:00
Alexey Andreev
43abdaa894
KT-13658: don't capture FakeCallableDescriptorForObject in closure
2016-09-06 10:59:56 +03:00
Alexey Andreev
60a09ecb45
KT-12873: add temporary variables generated by delegation expression to class initializer. Fix #KT-12873
2016-08-30 12:26:06 +03:00
Ilya Gorbunov
25d8af3112
JS: Implement Long.hashCode function.
...
#KT-13756 Fixed
2016-08-26 05:28:48 +03:00
Ilya Gorbunov
813bee62e5
JS: Remove intrinsic for Long.equals, because it's applied incorrectly for nullable longs.
...
#KT-7500 Fixed
2016-08-26 05:28:20 +03:00
Alexey Andreev
7016ce9b41
JS: refactor how cached access translators work. Fix cached access translator in case of arrays. Use cached access translator to translate reassignments
2016-08-23 18:06:51 +03:00
Alexey Andreev
cb2c8edaf9
JS: don't translate RHS of overloaded assignment operators twice. It can break compilation in some cases, for example, when there are lambdas in RHS.
...
Fix #KT-12808 #KT-12807
2016-08-23 18:06:51 +03:00
Alexey Andreev
df86840515
KT-13025: when receiver of call of 'invoke' method is a Function, check whether receiver is an extension function and generate additional '.call' invocation. Fix #KT-13025
2016-08-23 15:45:48 +03:00
Alexey Andreev
c767b3d0ac
KT-13043: fix translation of super call from secondary constructor when base constructor has default arguments
2016-08-23 15:44:27 +03:00
Zalim Bashorov
33e96fcb9a
JS: fix runtime type checking for native non-fake interfaces on WebKit (JavaScriptCore); add tests for object and object expressions.
2016-08-17 14:25:29 +03:00
Zalim Bashorov
9ece62fa0f
JS backend: fix runtime type checking for interfaces
2016-08-10 15:04:27 +03:00
Zalim Bashorov
88ad00b0bc
JS backend: add the ability to get JS constructor function by class name and from instance. Support it for reified type parameters too. Add ability to get name of class.
...
#KT-5987 Fixed
#KT-4115 Fixed
2016-08-05 18:13:05 +03:00
Alexey Andreev
4ff2b62bc0
KT-12864: add Comparable interface to Enum metadata so that RTTI should handle is Comparable case correctly
2016-08-05 16:32:27 +03:00
Alexey Andreev
efb5a9eca6
KT-13160: when decomposing assignment with lhs like array[index], extract array instead of supporting only qualifier.name`
2016-07-27 18:28:28 +03:00
Alexey Andreev
05dd039151
KT-12275 Add JS optimization that transforms the following code
...
```
do {
X
if (B) break;
} while (A)
```
to
```
do {
X
} while (!B && A)
```
Add inversion that takes boolean expression and applies negation to it, simplifying if possible (like !!a => a).
2016-07-25 18:46:46 +03:00
Alexey Andreev
b3d29adad9
KT-12275 Add JS optimization that transforms the following code
...
```
do {
guard: {
// do something
break guard;
// do something
}
} while (condition)
```
to
```
do {
// do something
continue;
// do something
} while (condition)
```
2016-07-25 18:32:10 +03:00
Alexey Andreev
1a61115148
KT-12275 Preserve evaluation order when do..while loop with extractable condition contains continue statement
2016-07-25 18:32:08 +03:00
Alexey Andreev
b5f9287bfa
JS: add tests for support of 'for' statement in TemporaryAssignmentElimination
2016-07-18 19:26:49 +03:00
Alexey Andreev
f8b96a1c62
JS: add tests to prove that KT-8003, KT-8318 and KT-12157 are no longer reproducible
2016-07-18 19:26:49 +03:00
Alexey Andreev
e2b836db09
JS: refactor TemporaryVariableElimination
2016-07-14 18:00:34 +03:00
Alexey Andreev
88eef7337e
KT-12928: decompose invocation like "a.foo(b)" to "$t = a; $s = $t.foo.bind($t); $s(b)" instead of "$t = a.foo; $t(b)", since in the latter case foo won't receive proper this. Add optimization that replaces "foo.bar.bind(baz)(args)" with "baz.bar(args)"
2016-07-04 14:52:12 +03:00
Dmitry Petrov
07cb3e09b9
KT-11892: explicitly qualified 'super' with a supertype that is overridden
...
by a different explicitly declared supertype is an error (as in Java)
(see http://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.12.3 )
2016-07-04 13:53:49 +03:00
Zalim Bashorov
48617caacc
JS: generate a function with the required name for callable references instead try to change the name later. The previous solution doesn't work properly on some JS VMs (e.g. in FireFox)
...
#KT-12929 Fixed
2016-07-01 21:13:15 +03:00
Alexey Andreev
da53b9a9a4
KT-3008: fix support of KProperty/KMutableProperty
2016-06-27 15:33:30 +03:00
Alexey Andreev
97605a97da
KT-3008: multiple minor fixes after code review
2016-06-27 15:33:28 +03:00
Alexey Andreev
64cd0b70d7
KT-3008 Minor refactoring and clean up
2016-06-27 15:33:27 +03:00
Alexey Andreev
b6b604d78f
KT-3008 Fix UMD and plain module wrappers when module id is not a valid JS identifier
2016-06-27 15:33:25 +03:00