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 |
|
Roman Artemev
|
9123d426c3
|
[JS] Add test for KT-43374
|
2021-09-27 19:01:42 +03:00 |
|
Vitaly
|
fe047f9b47
|
[JS BE] mutes tests for JS_IR_ES6, which muted for JS_IR
|
2020-05-27 00:32:56 +03:00 |
|
Abduqodiri Qurbonzoda
|
dabf6376db
|
Update js reachable nodes count after expanding StringBuilder api
|
2019-12-06 05:37:09 +03:00 |
|
Svyatoslav Kuzmich
|
0f07209490
|
[JS IR BE] Remove unnecesary println from tests
|
2019-03-15 13:53:21 +03:00 |
|
Svyatoslav Kuzmich
|
a736756ceb
|
[JS IR BE] Fix and refactor interop tests
|
2019-02-25 15:09:27 +03:00 |
|
Svyatoslav Kuzmich
|
aa811dcfb3
|
[JS IR BE] Add KJS_WITH_FULL_RUNTIME directive to compiler tests
|
2019-01-24 16:14:40 +03:00 |
|
Roman Artemev
|
7cb202934c
|
Update tests
|
2018-10-25 15:48:42 +03:00 |
|
Anton Bannykh
|
8c6337f3f6
|
[JS IR BE]: support dynamic_var["foo"] = "bar"
Used EQ origin to detect. Added a test to check dynamic_var = "bar" case
is not affected
|
2018-10-10 13:43:22 +03:00 |
|
Anton Bannykh
|
7d5a304cf6
|
[JS IR BE] support Char.rangeTo()
|
2018-09-18 15:43:55 +03:00 |
|
Anton Bannykh
|
2e709a81fa
|
[JS IR BE] Arrays, varargs
|
2018-09-18 14:36:20 +03:00 |
|
Anton Bannykh
|
b389e29db5
|
JS: update DCE testdata
|
2018-09-12 09:49:25 +03:00 |
|
Svyatoslav Kuzmich
|
ad58fdd158
|
[JS IR BE] Unmute tests after adding stdlib
|
2018-09-04 20:19:04 +03:00 |
|
Roman Artemev
|
8a871b3f0c
|
Update tests
|
2018-08-31 15:34:18 +03:00 |
|
Anton Bannykh
|
a83baee67b
|
review fixes + DCE data update + test (un)muting
|
2018-08-30 14:57:27 +03:00 |
|
Zalim Bashorov
|
2fb286e39c
|
[JS IR BE] Update tests
|
2018-07-31 11:28:39 +03:00 |
|
Svyatoslav Kuzmich
|
625983b28a
|
[JS IR BE] Enum class lowering
|
2018-07-23 15:08:18 +03:00 |
|
Svyatoslav Kuzmich
|
b23dabb8b7
|
Revert EXPECTED_REACHABLE_NODES for failed tests
|
2018-07-18 15:31:29 +03:00 |
|
Svyatoslav Kuzmich
|
1abb4f42ac
|
[JS IR BE] Add ranges to runtime, rangeTo for primitive numbers
|
2018-07-17 20:18:29 +03:00 |
|
Anton Bannykh
|
6a9b8d27e6
|
JS: update DCE test data
|
2018-07-12 14:18:34 +03:00 |
|
Toshiaki Kameyama
|
84e49e5b57
|
JS: Fix ClassCastException that occurs when 'when' clause has map range #KT-23458 Fixed
|
2018-06-20 14:00:29 +03:00 |
|
Roman Artemev
|
f69bd54d6c
|
[JS IR BE] Update test data
|
2018-06-19 17:09:31 +03:00 |
|
Roman Artemev
|
6ac4fd2e5f
|
[JS IR BE] Update test data
|
2018-06-14 19:54:30 +03:00 |
|
Roman Artemev
|
84447d59e1
|
[JS IR BE] Update test data
|
2018-05-24 21:07:25 +03:00 |
|
Roman Artemev
|
61e051cafa
|
Update test data
|
2018-04-24 14:04:16 +03:00 |
|
Zalim Bashorov
|
d03a128aa5
|
[JS IR BE] mute failed tests
|
2018-04-19 13:17:28 +03:00 |
|
Alexey Andreev
|
29b494cdac
|
JS: don't optimize when over external enum
See KT-21468
|
2017-11-29 11:52:36 +03:00 |
|
Alexey Andreev
|
89db4dfe79
|
JS: translate when against enum to JsSwitch when possible
|
2017-11-17 11:07:41 +03:00 |
|
Alexey Andreev
|
3b3fd0fa0d
|
JS: fix DCE limits in test data to fit new kotlin.js size
The size has increased due to new implementation of KClass
|
2017-10-06 18:16:51 +03:00 |
|
Anton Bannykh
|
e43a145614
|
fixup: updated EXPECTED_REACHABLE_NODES
|
2017-07-19 12:24:09 +03:00 |
|
Alexey Andreev
|
e2c2fcf1ff
|
Generate EXPECTED_REACHABLE_NODES directive on JS box tests
|
2017-05-26 18:20:20 +03:00 |
|
Alexey Andreev
|
7f0166623d
|
JS: when none of exhaustive when clauses match, generate code that throws exception. See KT-12194
|
2016-12-30 16:20:00 +03:00 |
|
Alexey Andreev
|
68412ae94f
|
JS: replace all usages of @native annotation with external modifier, in tests, stdlib, etc
|
2016-12-08 15:41:39 +03:00 |
|
Alexey Andreev
|
b159049be8
|
JS: move expressions test to box tests
|
2016-09-29 12:00:40 +03:00 |
|