818 Commits

Author SHA1 Message Date
Anton Bannykh 5a3c8336ca [JS IR] import Bar from its module 2021-12-01 16:50:28 +03:00
Anton Bannykh a76425a7ee [JS IR] update JS AST diagnostics 2021-12-01 16:50:28 +03:00
Anton Bannykh af134912be [JS IR] fix test data 2021-12-01 16:50:20 +03:00
Anton Bannykh 9c4c798fe7 [JS IR] mute tests with wrong linkage 2021-12-01 16:50:16 +03:00
Sergej Jaskiewicz 1300d9604a fixup! [JS IR] [runtime] Remove valueOf method from Long
fix the test for the legacy backend
2021-12-01 12:36:35 +00:00
Sergej Jaskiewicz e13b6b2a90 [JS IR] [runtime] Remove valueOf method from Long
This method was used for coercing `Long` values to JavaScript
`number`. However, it caused issues when `Long` values were
concatenated to a string (see KT-8666, KT-26706).
2021-12-01 12:36:34 +00:00
Sergej Jaskiewicz 887e91328f [JS IR] Allow value classes in external decls
Instances of value classes are passed unboxed, unless the instance is
nullable _and_ the value class wraps another nullable value.

#KT-43224 Fixed
2021-11-29 21:51:29 +00:00
Anton Bannykh 2259c6f75d [JS IR IC] assert cross-file tag are not null and fix tests 2021-11-29 21:09:35 +03:00
Anton Bannykh d74ab1538b [JS IR] fix IC pipeline and unmute tests 2021-11-29 21:09:33 +03:00
Anton Bannykh ef4ef8c930 [JS IR] switch to the IC Ir2Js and fix tests 2021-11-29 21:09:31 +03:00
Artem Kobzar 08b0e17d47 feat(polyfills): use stdlib for js polyfills. 2021-11-26 08:14:34 +00:00
Ilya Goncharov 1481ad21f5 Enum implementing exported interface
[JS IR] Not export get instance enum function

[JS IR] Enum corresponding class is not considered in export

[JS IR] All enums are abstract and with private constructor

[JS IR] Any methods is left in d.ts

[JS IR] Make enum with declarations inside corresponding class

[JS IR] Export of interface through fake override

[JS IR] Include enum entry corresponding class members into export model

Merge-request: KT-MR-5031

^KT-49779 fixed
^KT-49773 fixed
2021-11-24 12:25:50 +00:00
Ilya Goncharov f48436b35e rra/ilgonmic/eager-like-native
[JS IR] Leave JsEagerInitialization until bootstrap update

[JS IR] Fix js stdlib api

[JS IR] Change annotation on eager initialization in sources

[JS IR] Make eager initialization consistent with native

Merge-request: KT-MR-5030
2021-11-22 12:45:37 +00:00
Anton Bannykh de0b3e5b20 [JS IR] temporary skip some IC checks 2021-11-19 00:39:40 +03:00
Anton Bannykh bb601042df [JS IR] unmute most RECOMPILE IR tests 2021-11-19 00:38:58 +03:00
Anton Bannykh 58bd4ffd71 [JS IR] disable some AST checks for now 2021-11-19 00:38:55 +03:00
Anton Bannykh 1ae042edc3 [JS IR] make old Ir2Js pass all tests 2021-11-19 00:38:46 +03:00
Anton Bannykh 0506d422a3 [JS IR] support per-module in the new Ir2JS 2021-11-19 00:38:27 +03:00
Anton Bannykh bdf31b8e52 [JS IR] unmute enumUsage IC test 2021-11-19 00:38:21 +03:00
Artem Kobzar d5dd35cb20 feat(@JsExport for interfaces): add ability to export interfaces in TypeScript. 2021-11-18 10:07:38 +00:00
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00
Igor Yakovlev 71bf36b613 [JS] Fix test testdata for InlineMultiFile.testTrait test 2021-11-15 19:53:50 +03:00
Ivan Kylchik 41547174a7 [JS TESTS] Enable directive processing for js ir 2021-11-12 21:24:32 +03:00
Svyatoslav Kuzmich 49d63abc88 [Wasm] Add JS box/native tests 2021-11-12 18:44:47 +03:00
Sergej Jaskiewicz 7b017fad90 [JS IR] Add tests for KT-41964 and KT-44981 2021-11-09 14:34:13 +00:00
Ivan Kylchik 0e4cf05d3e [JS TESTS] Fix es module test files for new test infrastructure 2021-11-08 23:50:34 +03:00
Ivan Kylchik edd608446e [TESTS] Move WITH_RUNTIME directive to file level 2021-11-08 23:50:34 +03:00
Ilya Goncharov f22de86954 [JS IR] Possibility to use export for nested inside object
[JS IR] Fix test data after master rebase

[JS IR] Use stdlib's listOfNotNull

[JS IR] Possibility to use export for nested inside object

- Add tests for such cases

Merge-request: KT-MR-4883

^KT-49363 fixed
2021-11-03 09:56:22 +00:00
Sergej Jaskiewicz 42c213d950 [JS IR] Explicitly convert Long values to String in string concatenation
#KT-39891 Fixed
2021-11-02 10:42:28 +00:00
Ilya Goncharov 4fa2fa6c26 [JS IR] Export name and ordinal for enum classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:24 +00:00
Ilya Goncharov a31a6c5117 [JS IR] Fix conflict with master
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:23 +00:00
Ilya Goncharov cd1296309f [JS IR] Add constructor parameter to test and values, valueOf methods
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:21 +00:00
Ilya Goncharov 9bd44e01f5 [JS IR] Export enum members like from usual classes
^KT-37916 fixed
^KT-44494 fixed
2021-11-01 13:28:20 +00:00
Ilya Goncharov 196dc6b071 [JS IR] Add test for enum exportness
^KT-44494 fixed
2021-11-01 13:28:19 +00:00
Artem Kobzar 979e9f94ef feat(Escaped Identifiers): add ability to use any symbol wrapped in back ticks. 2021-10-29 17:55:59 +00:00
Artem Kobzar 102072a229 fix(KT-40236): compute JsName from overridden symbols. 2021-10-29 14:09:31 +00:00
Ivan Kylchik 4deab9693e [JS TESTS] Remove LANGUAGE_VERSION directive
Some of them are not necessary at all, others can be replaced with
`!LANGUAGE` directive with exclusion of corresponding features.
2021-10-25 00:14:20 +03:00
Ivan Kylchik 3e1563d46e [JS TESTS] Rename JS_TESTS module to main 2021-10-25 00:14:19 +03:00
Ivan Kylchik 32e6d3908d [JS TESTS] Move MODULE_KIND directive to module level 2021-10-25 00:14:19 +03:00
Ivan Kylchik aaab22a675 [JS TESTS] Move dependency modules higher than main in test files 2021-10-25 00:14:19 +03:00
Ivan Kylchik 2bea77d4e2 [JS TESTS] Replace - symbol in module name with _ 2021-10-25 00:14:19 +03:00
Ilya Goncharov f6ba2a958a [JS IR] No generate exportness for overridden properties
[JS IR] Add check on existence of overridden property in tests

^KT-49326 fixed

[JS IR] Add details to comment with exporting properties

^KT-49326 fixed

[JS IR] No generate exportness for overridden properties,

if only no override val -> var

^KT-49326 fixed

Merge-request: KT-MR-4810
2021-10-21 10:52:48 +00:00
Artem Kobzar 876d358fe6 fix(KT-46961): add support of nested external enums. 2021-10-21 06:40:00 +00:00
Artem Kobzar 3dbf996ec6 fix(KT-49225): remove unnecessery boxing. 2021-10-21 06:38:42 +00:00
Anton Bannykh c2f7ed2fff [JS IR] added a directive to skip IC checks in IR 2021-10-15 20:14:53 +03:00
Sergej Jaskiewicz 8b2410733f [JS IR] Improve the test for exporting protected members 2021-10-15 12:52:11 +00:00
Svyatoslav Kuzmich 0f66f85cf9 [Wasm] Support main function 2021-10-15 13:58:55 +03:00
Igor Laevsky dcdc7e4633 [Wasm] Add box tests for kotlin.test 2021-10-14 17:24:03 +03:00
Sergej Jaskiewicz 55ae6d1f3e [JS IR] Optimize pattern-matching of enums into comparing their ordinals
For this code:
```
enum class Season {
    WINTER,
    SPRING,
    SUMMER,
    AUTUMN
}

fun bar1(x : Season) : String {
    return when (x) {
        Season.WINTER, Season.SPRING -> "winter_spring"
        Season.SUMMER -> "summer"
        else -> "autumn"
    }
}
```

previously we generated this:
```
function foo(x) {
    var tmp0_subject = x;
    return (tmp0_subject.equals(Season_WINTER_getInstance())
        ? true
        : tmp0_subject.equals(Season_SPRING_getInstance()))
            ? 'winter_spring'
            : tmp0_subject.equals(Season_SUMMER_getInstance())
                ? 'summer'
                : 'autumn';
}
```

And now we generated this:
```
function bar2(x) {
  var tmp0_subject = x;
  var tmp0 = tmp0_subject._get_ordinal__0_k$();
  var tmp;
  switch (tmp0) {
    case 0:
    case 1:
      tmp = 'winter_spring';
      break;
    case 2:
      tmp = 'summer';
      break;
    case 3:
      tmp = 'autumn';
      break;
    default:
      noWhenBranchMatchedException();
      break;
  }
  return tmp;
}
```
2021-10-14 11:44:01 +00:00
Svyatoslav Kuzmich 90dd0c6150 [JS] Fix and mute failed tests on TC 2021-10-13 01:26:27 +03:00