1601 Commits

Author SHA1 Message Date
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