Mikhael Bogdanov
93b342c936
TODO: reuse tests for local delegated properties from JVM backend in JS one
2016-05-13 19:11:22 +03:00
Mikhael Bogdanov
e207b56009
Support increment and '+=' on local delegated properties in JS backend
2016-05-13 19:11:21 +03:00
Dotlin
0e071b4748
Delegated Properties: Code generation for local properties (JS)
2016-05-13 19:11:20 +03:00
Alexey Andreev
826cee58bd
KT-11996 Fix issue with referencing outer class in case of inner class constructors and members/properties. Fix issue with referencing outer classes from secondary constructors. Remove unnecessary tests.
2016-05-10 17:41:21 +03:00
Alexey Andreev
1764000bf4
KT-11823 Generate proper argument for closure constructor for this as a free variable. Give some explanation for function that generates closure arguments as well as a clear name. Give explanation to some code in UsageTracker.isSingletonReceiver, augmented by a test case.
2016-05-10 17:41:21 +03:00
Alexey Andreev
7ff658414f
JS/RTTI: if it's known that T <: X & Y, where T is non-reified type variable, for each a is T check that a is X && a is Y
2016-05-05 17:24:26 +03:00
Alexey Andreev
6454613b51
JS/RTTI: in expressions like a as T when inferred type for a is S, where S <: T, don't generate type checking
2016-05-05 17:24:25 +03:00
Alexey Andreev
0f6a6a3ba4
JS/RTTI. Fix runtime checking against kotlin.CharSequence
2016-05-05 17:24:25 +03:00
Alexey Andreev
f52b836f0e
JS/RTTI: fix withInlineTurnedOff test
2016-05-05 17:24:24 +03:00
Alexey Andreev
75015f6bfa
JS/RTTI: fix compiler crashing when translating expressions like (continue as T)
2016-05-05 17:24:23 +03:00
Zalim Bashorov
3a87049359
JS/RTTI. Fix build and tests
2016-05-05 17:24:23 +03:00
Alexey Tsvetkov
9bb60b48b2
JS/RTTI. Fix run-time type checking against Comparable
2016-05-05 17:24:22 +03:00
Alexey Tsvetkov
f7af868d4f
JS/RTTI: added another cast to reified test
2016-05-05 17:24:20 +03:00
Alexey Tsvetkov
a9d5c74ff7
JS/RTTI: Added cast to Array test
2016-05-05 17:24:19 +03:00
Alexey Tsvetkov
c99fd179e1
JS/RTTI: simplify cast to Any test
2016-05-05 17:24:19 +03:00
Alexey Tsvetkov
cd60a8d207
JS/RTTI: fixed cast to generic type parameter with upper bound different than Any
2016-05-05 17:24:18 +03:00
Alexey Tsvetkov
ae9a5523e0
JS/RTTI: use typeof f === 'function' to check function instance
2016-05-05 17:24:15 +03:00
Alexey Tsvetkov
7cfe1433c5
JS/RTTI: cast to generic type parameter as to Any
2016-05-05 17:24:15 +03:00
Alexey Tsvetkov
38b0effe15
JS/RTTI: fix cast to Any
2016-05-05 17:24:14 +03:00
Alexey Tsvetkov
2b3ebc7e9f
JS/RTTI: support safe casts
2016-05-05 17:24:13 +03:00
Alexey Tsvetkov
3fd387d4a6
JS/RTTI: support unsafe casts
...
#KT-2670 fixed
2016-05-05 17:24:13 +03:00
Alexey Tsvetkov
427b95f821
JS/RTTI: test that reified is-check works when inline turned off
2016-05-05 17:24:12 +03:00
Alexey Tsvetkov
dce0971c52
JS/RTTI: fixed double testing for null for reified
2016-05-05 17:24:11 +03:00
Alexey Tsvetkov
5fdede74a3
JS/RTTI: avoid possible side-effect for is-check on nullable type
...
#KT-7038 fixed
2016-05-05 17:24:10 +03:00
Alexey Tsvetkov
c6cf6a0df7
JS/RTTI: use generation for rtti test
2016-05-05 17:24:10 +03:00
Alexey Tsvetkov
0b9c041d0a
JS/RTTI: fixed is-check on nullable reified parameters
...
#KT-7016 fixed
#KT-8012 fixed
2016-05-05 17:24:09 +03:00
Zalim Bashorov
3048c293d0
Minor: fix tests
2016-04-26 19:11:05 +03:00
Alexey Andreev
76cfe8cabc
KT-11100 Fix generation of name of FakeCallableDescriptorForObject that is presumably used to express invoke operator on (companion) objects
2016-04-26 17:04:09 +03:00
Alexey Andreev
0869eb7ef3
KT-6201 KT-6203 KT-6326 KT-6777 Add test cases to prove that issues are no longer reproducible
2016-04-22 10:16:58 +03:00
Alexey Andreev
ade5477c33
KT-11030 Initialization order of enum entries in JS now conforms to JVM backend
2016-04-20 18:12:25 +03:00
Alexey Andreev
87ea0bd0cb
KT-11030 Minor code improvements
2016-04-20 18:12:25 +03:00
Alexey Andreev
166b985fca
KT-11028 Add test for the issue
2016-04-20 18:12:24 +03:00
Alexey Andreev
4ac730e5ed
KT-11030 Fix referencing wrong field generated for captured variable when this captured variable referenced both from constructor and non-constructor method. Avoid duplicate generation of call to delegated constructor.
2016-04-20 18:12:24 +03:00
Alexey Andreev
af0280ca7a
KT-11030 Repair support of enums. Minor refactoring of ClassTranslator
2016-04-20 18:12:20 +03:00
Alexey Andreev
6967ebcc8c
KT-11030 Copy static properties of object's class to instance of object (think about moving local functions to member methods in objects)
2016-04-20 18:01:08 +03:00
Alexey Andreev
337078faf3
KT-11030 Unify concept of objects and companion objects. Fix order of initialization of nested objects.
2016-04-20 18:01:07 +03:00
Alexey Andreev
8e7d949dd4
KT-11030 Implements closures in classes. Represent local object literals as classes
2016-04-20 18:01:07 +03:00
Alexey Andreev
8ad339836d
KT-11875 Moves code that uncovers the following JS function:
...
```
function foo (closureParam, closureParam2, ...) {
return function() {
// function body
}
}
```
from FunctionContext to FunctionInlineMutator. The old code causes bug when calling this function like this: `foo(this, ...)`, since first `closureParam` is replaced with `this`. Later, FunctionInlineMutator can't make difference between original `this` inside *function body* and former `closureParam` reference that became `this` after replacement. So, let FunctionInlineMutator replace `this` in *function body* and then substitute closure parameters.
KT-11875 Fixed
2016-04-15 17:35:30 +03:00
Alexey Andreev
9fd19dd7fd
KT-7819 Add test to ensure that lambda capturing this literal can be inlined
2016-04-06 16:16:56 +03:00
Alexey Andreev
05887f45f7
KT-7819 Implement non-local returns
2016-04-06 16:16:55 +03:00
Alexey Andreev
4a53f5c0b8
Don't relocate temporary variable which receives property access, unless it's provable that this property don't have side effects
2016-04-05 14:40:25 +03:00
Alexey Andreev
cfdce8eaca
Rewrite temporary variable elimination
2016-04-05 14:40:25 +03:00
Alexey Andreev
8709289b0a
Prohibit from eliminating non-local temporary variables
2016-04-05 14:40:24 +03:00
Alexey Andreev
af7ddb4572
Adds test infrastructure for JS optimizer. Adds simple tests
2016-04-05 14:40:24 +03:00
Alexey Andreev
3571201e9c
Prevent JS optimizer from inserting duplicate variable declarations
2016-04-05 14:40:23 +03:00
Alexey Andreev
4d7906fe44
Prevent temporary variable from substituting to branches of ternary conditional expression, since it can sometimes violate evaluation order
2016-04-05 14:40:23 +03:00
Alexey Andreev
e6e3275906
Implement reduction of if statement to ternary conditional expression
2016-04-05 14:40:23 +03:00
Alexey Andreev
3ceea68859
Remove optimizations performed during JS inlining. Implement several optimizations as a separate pass
2016-04-05 14:40:22 +03:00
Denis Zharkov
b5c9523e4b
Minor. Adjust JS test to protected visibility changes
2016-03-31 14:51:57 +03:00
Ilya Gorbunov
ab68b49a70
Introduce RandomAccess to JS.
...
Make EmptyList support RandomAccess.
#KT-10794
2016-03-30 21:06:18 +03:00