[K2 JS] Unmute and link to issue some JS K2 tests
This commit is contained in:
committed by
Space Team
parent
7773fdab9a
commit
f5d0c22736
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, WASM
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, WASM
|
||||||
|
// K2 issue: KT-64801
|
||||||
|
|
||||||
class Outer(val x: Any) {
|
class Outer(val x: Any) {
|
||||||
inner class Inner(
|
inner class Inner(
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, WASM
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, WASM
|
||||||
|
// K2 issue: KT-64801
|
||||||
|
|
||||||
class Outer(val x: Any) {
|
class Outer(val x: Any) {
|
||||||
inner class Inner(
|
inner class Inner(
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
|
||||||
// WITH_REFLECT
|
// WITH_REFLECT
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
// FILE: J.java
|
// FILE: J.java
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
// !LANGUAGE: +ContextReceivers
|
// !LANGUAGE: +ContextReceivers
|
||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
|
||||||
// WITH_STDLIB
|
// WITH_STDLIB
|
||||||
|
|
||||||
class A(val ok: String)
|
class A(val ok: String)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, WASM
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6, WASM
|
||||||
|
// K2 issue: KT-64801
|
||||||
// KT-40686
|
// KT-40686
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
-1
@@ -1,5 +1,4 @@
|
|||||||
// !LANGUAGE: +MultiPlatformProjects
|
// !LANGUAGE: +MultiPlatformProjects
|
||||||
// IGNORE_BACKEND_K2: JVM_IR, JS_IR
|
|
||||||
// FIR status: expect/actual in the same module (ACTUAL_WITHOUT_EXPECT)
|
// FIR status: expect/actual in the same module (ACTUAL_WITHOUT_EXPECT)
|
||||||
// TARGET_BACKEND: JVM
|
// TARGET_BACKEND: JVM
|
||||||
// IGNORE_BACKEND_K2: ANY
|
// IGNORE_BACKEND_K2: ANY
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
|
||||||
// CHECK_CASES_COUNT: function=crash count=2 TARGET_BACKENDS=JS
|
// CHECK_CASES_COUNT: function=crash count=2 TARGET_BACKENDS=JS
|
||||||
// CHECK_CASES_COUNT: function=crash count=0 IGNORED_BACKENDS=JS
|
|
||||||
// CHECK_IF_COUNT: function=crash count=1 TARGET_BACKENDS=JS
|
// CHECK_IF_COUNT: function=crash count=1 TARGET_BACKENDS=JS
|
||||||
// CHECK_IF_COUNT: function=crash count=3 IGNORED_BACKENDS=JS
|
|
||||||
|
|
||||||
class EncapsulatedEnum<T : Enum<T>>(val value: T)
|
class EncapsulatedEnum<T : Enum<T>>(val value: T)
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
|
||||||
// JVM_ABI_K1_K2_DIFF: KT-62903
|
// JVM_ABI_K1_K2_DIFF: KT-62903
|
||||||
// CHECK_CASES_COUNT: function=doTheThing count=2 TARGET_BACKENDS=JS
|
// CHECK_CASES_COUNT: function=doTheThing count=2 TARGET_BACKENDS=JS
|
||||||
// CHECK_CASES_COUNT: function=doTheThing count=0 IGNORED_BACKENDS=JS
|
|
||||||
// CHECK_IF_COUNT: function=doTheThing count=2 TARGET_BACKENDS=JS
|
// CHECK_IF_COUNT: function=doTheThing count=2 TARGET_BACKENDS=JS
|
||||||
// CHECK_IF_COUNT: function=doTheThing count=4 IGNORED_BACKENDS=JS
|
|
||||||
|
|
||||||
private fun Any?.doTheThing(): String {
|
private fun Any?.doTheThing(): String {
|
||||||
when (this) {
|
when (this) {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// IGNORE_ERRORS
|
// IGNORE_ERRORS
|
||||||
// ERROR_POLICY: SEMANTIC
|
// ERROR_POLICY: SEMANTIC
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
||||||
|
// K2 issue: KT-55250
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: t.kt
|
// FILE: t.kt
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// IGNORE_ERRORS
|
// IGNORE_ERRORS
|
||||||
// ERROR_POLICY: SEMANTIC
|
// ERROR_POLICY: SEMANTIC
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
||||||
|
// K2 issue: KT-64810
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: t.kt
|
// FILE: t.kt
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// IGNORE_ERRORS
|
// IGNORE_ERRORS
|
||||||
// ERROR_POLICY: SEMANTIC
|
// ERROR_POLICY: SEMANTIC
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
||||||
|
// K2 issue: KT-64817
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: t.kt
|
// FILE: t.kt
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// IGNORE_ERRORS
|
// IGNORE_ERRORS
|
||||||
// ERROR_POLICY: SYNTAX
|
// ERROR_POLICY: SYNTAX
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
||||||
|
// K2 issue: KT-64845
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: t.kt
|
// FILE: t.kt
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
// IGNORE_ERRORS
|
// IGNORE_ERRORS
|
||||||
// ERROR_POLICY: SYNTAX
|
// ERROR_POLICY: SYNTAX
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
||||||
|
// K2 issue: KT-64820
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
// FILE: t.kt
|
// FILE: t.kt
|
||||||
|
|||||||
+52
@@ -0,0 +1,52 @@
|
|||||||
|
FILE fqName:<root> fileName:/dynamicArrayIncrementDecrement.kt
|
||||||
|
FUN name:testArrayIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:d index:0 type:dynamic
|
||||||
|
BLOCK_BODY
|
||||||
|
VAR name:t1 type:dynamic [val]
|
||||||
|
BLOCK type=dynamic origin=null
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:dynamic [val]
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.String [val]
|
||||||
|
CONST String type=kotlin.String value="prefixIncr"
|
||||||
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
|
DYN_OP operator=INVOKE type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='set' type=dynamic
|
||||||
|
GET_VAR 'val tmp_0: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: GET_VAR 'val tmp_1: kotlin.String declared in <root>.testArrayIncrementDecrement' type=kotlin.String origin=null
|
||||||
|
1: DYN_OP operator=PREFIX_INCREMENT type=dynamic
|
||||||
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
||||||
|
receiver: GET_VAR 'val tmp_0: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: GET_VAR 'val tmp_1: kotlin.String declared in <root>.testArrayIncrementDecrement' type=kotlin.String origin=null
|
||||||
|
DYN_OP operator=INVOKE type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='get' type=dynamic
|
||||||
|
GET_VAR 'val tmp_0: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: GET_VAR 'val tmp_1: kotlin.String declared in <root>.testArrayIncrementDecrement' type=kotlin.String origin=null
|
||||||
|
VAR name:t2 type:dynamic [val]
|
||||||
|
BLOCK type=dynamic origin=null
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:dynamic [val]
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.String [val]
|
||||||
|
CONST String type=kotlin.String value="prefixDecr"
|
||||||
|
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||||
|
DYN_OP operator=INVOKE type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='set' type=dynamic
|
||||||
|
GET_VAR 'val tmp_2: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: GET_VAR 'val tmp_3: kotlin.String declared in <root>.testArrayIncrementDecrement' type=kotlin.String origin=null
|
||||||
|
1: DYN_OP operator=PREFIX_DECREMENT type=dynamic
|
||||||
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
||||||
|
receiver: GET_VAR 'val tmp_2: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: GET_VAR 'val tmp_3: kotlin.String declared in <root>.testArrayIncrementDecrement' type=kotlin.String origin=null
|
||||||
|
DYN_OP operator=INVOKE type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='get' type=dynamic
|
||||||
|
GET_VAR 'val tmp_2: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: GET_VAR 'val tmp_3: kotlin.String declared in <root>.testArrayIncrementDecrement' type=kotlin.String origin=null
|
||||||
|
VAR name:t3 type:dynamic [val]
|
||||||
|
DYN_OP operator=POSTFIX_INCREMENT type=dynamic
|
||||||
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
||||||
|
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: CONST String type=kotlin.String value="postfixIncr"
|
||||||
|
VAR name:t4 type:dynamic [val]
|
||||||
|
DYN_OP operator=POSTFIX_DECREMENT type=dynamic
|
||||||
|
receiver: DYN_OP operator=ARRAY_ACCESS type=dynamic
|
||||||
|
receiver: GET_VAR 'd: dynamic declared in <root>.testArrayIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: CONST String type=kotlin.String value="postfixDecr"
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
fun testArrayIncrementDecrement(d: dynamic) {
|
||||||
|
val t1: dynamic = { // BLOCK
|
||||||
|
val tmp_0: dynamic = d
|
||||||
|
val tmp_1: String = "prefixIncr"
|
||||||
|
tmp_0.set(tmp_1, ++tmp_0[tmp_1]) /*~> Unit */
|
||||||
|
tmp_0.get(tmp_1)
|
||||||
|
}
|
||||||
|
val t2: dynamic = { // BLOCK
|
||||||
|
val tmp_2: dynamic = d
|
||||||
|
val tmp_3: String = "prefixDecr"
|
||||||
|
tmp_2.set(tmp_3, --tmp_2[tmp_3]) /*~> Unit */
|
||||||
|
tmp_2.get(tmp_3)
|
||||||
|
}
|
||||||
|
val t3: dynamic = d["postfixIncr"]++
|
||||||
|
val t4: dynamic = d["postfixDecr"]--
|
||||||
|
}
|
||||||
@@ -1,7 +1,4 @@
|
|||||||
// TARGET_BACKEND: JS_IR
|
// TARGET_BACKEND: JS_IR
|
||||||
// FIR_IDENTICAL
|
|
||||||
|
|
||||||
// IGNORE_BACKEND_K2: JS_IR
|
|
||||||
|
|
||||||
fun testArrayIncrementDecrement(d: dynamic) {
|
fun testArrayIncrementDecrement(d: dynamic) {
|
||||||
val t1 = ++d["prefixIncr"]
|
val t1 = ++d["prefixIncr"]
|
||||||
|
|||||||
+97
@@ -0,0 +1,97 @@
|
|||||||
|
FILE fqName:<root> fileName:/dynamicMemberIncrementDecrement.kt
|
||||||
|
FUN name:testMemberIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:d index:0 type:dynamic
|
||||||
|
BLOCK_BODY
|
||||||
|
VAR name:t1 type:dynamic [val]
|
||||||
|
DYN_OP operator=PREFIX_INCREMENT type=dynamic
|
||||||
|
receiver: GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR name:t2 type:dynamic [val]
|
||||||
|
DYN_OP operator=PREFIX_DECREMENT type=dynamic
|
||||||
|
receiver: GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR name:t3 type:dynamic [val]
|
||||||
|
DYN_OP operator=POSTFIX_INCREMENT type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='postfixIncr' type=dynamic
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR name:t4 type:dynamic [val]
|
||||||
|
DYN_OP operator=POSTFIX_DECREMENT type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='postfixDecr' type=dynamic
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
FUN name:testSafeMemberIncrementDecrement visibility:public modality:FINAL <> (d:dynamic) returnType:kotlin.Unit
|
||||||
|
VALUE_PARAMETER name:d index:0 type:dynamic
|
||||||
|
BLOCK_BODY
|
||||||
|
VAR name:t1 type:dynamic [val]
|
||||||
|
BLOCK type=dynamic origin=SAFE_CALL
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:dynamic [val]
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
WHEN type=dynamic origin=null
|
||||||
|
BRANCH
|
||||||
|
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||||
|
arg0: GET_VAR 'val tmp_0: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
BRANCH
|
||||||
|
if: CONST Boolean type=kotlin.Boolean value=true
|
||||||
|
then: BLOCK type=dynamic origin=null
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:dynamic [val]
|
||||||
|
GET_VAR 'val tmp_0: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
DYN_OP operator=EQ type=kotlin.Unit
|
||||||
|
receiver: DYN_MEMBER memberName='prefixIncr' type=kotlin.Unit
|
||||||
|
GET_VAR 'val tmp_1: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: DYN_OP operator=PREFIX_INCREMENT type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='prefixIncr' type=dynamic
|
||||||
|
GET_VAR 'val tmp_1: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
DYN_MEMBER memberName='prefixIncr' type=dynamic
|
||||||
|
GET_VAR 'val tmp_1: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR name:t2 type:dynamic [val]
|
||||||
|
BLOCK type=dynamic origin=SAFE_CALL
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:dynamic [val]
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
WHEN type=dynamic origin=null
|
||||||
|
BRANCH
|
||||||
|
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||||
|
arg0: GET_VAR 'val tmp_2: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
BRANCH
|
||||||
|
if: CONST Boolean type=kotlin.Boolean value=true
|
||||||
|
then: BLOCK type=dynamic origin=null
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:dynamic [val]
|
||||||
|
GET_VAR 'val tmp_2: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
DYN_OP operator=EQ type=kotlin.Unit
|
||||||
|
receiver: DYN_MEMBER memberName='prefixDecr' type=kotlin.Unit
|
||||||
|
GET_VAR 'val tmp_3: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
0: DYN_OP operator=PREFIX_DECREMENT type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='prefixDecr' type=dynamic
|
||||||
|
GET_VAR 'val tmp_3: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
DYN_MEMBER memberName='prefixDecr' type=dynamic
|
||||||
|
GET_VAR 'val tmp_3: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR name:t3 type:dynamic [val]
|
||||||
|
BLOCK type=dynamic origin=SAFE_CALL
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_4 type:dynamic [val]
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
WHEN type=dynamic origin=null
|
||||||
|
BRANCH
|
||||||
|
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||||
|
arg0: GET_VAR 'val tmp_4: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
BRANCH
|
||||||
|
if: CONST Boolean type=kotlin.Boolean value=true
|
||||||
|
then: DYN_OP operator=POSTFIX_INCREMENT type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='postfixIncr' type=dynamic
|
||||||
|
GET_VAR 'val tmp_4: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
VAR name:t4 type:dynamic [val]
|
||||||
|
BLOCK type=dynamic origin=SAFE_CALL
|
||||||
|
VAR IR_TEMPORARY_VARIABLE name:tmp_5 type:dynamic [val]
|
||||||
|
GET_VAR 'd: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
WHEN type=dynamic origin=null
|
||||||
|
BRANCH
|
||||||
|
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||||
|
arg0: GET_VAR 'val tmp_5: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
|
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
then: CONST Null type=kotlin.Nothing? value=null
|
||||||
|
BRANCH
|
||||||
|
if: CONST Boolean type=kotlin.Boolean value=true
|
||||||
|
then: DYN_OP operator=POSTFIX_DECREMENT type=dynamic
|
||||||
|
receiver: DYN_MEMBER memberName='postfixDecr' type=dynamic
|
||||||
|
GET_VAR 'val tmp_5: dynamic declared in <root>.testSafeMemberIncrementDecrement' type=dynamic origin=null
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
fun testMemberIncrementDecrement(d: dynamic) {
|
||||||
|
val t1: dynamic = ++d
|
||||||
|
val t2: dynamic = --d
|
||||||
|
val t3: dynamic = d.postfixIncr++
|
||||||
|
val t4: dynamic = d.postfixDecr--
|
||||||
|
}
|
||||||
|
|
||||||
|
fun testSafeMemberIncrementDecrement(d: dynamic) {
|
||||||
|
val t1: dynamic = { // BLOCK
|
||||||
|
val tmp_0: dynamic = d
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = tmp_0, arg1 = null) -> null
|
||||||
|
else -> { // BLOCK
|
||||||
|
val tmp_1: dynamic = tmp_0
|
||||||
|
tmp_1.prefixIncr = ++tmp_1.prefixIncr
|
||||||
|
tmp_1.prefixIncr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val t2: dynamic = { // BLOCK
|
||||||
|
val tmp_2: dynamic = d
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = tmp_2, arg1 = null) -> null
|
||||||
|
else -> { // BLOCK
|
||||||
|
val tmp_3: dynamic = tmp_2
|
||||||
|
tmp_3.prefixDecr = --tmp_3.prefixDecr
|
||||||
|
tmp_3.prefixDecr
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val t3: dynamic = { // BLOCK
|
||||||
|
val tmp_4: dynamic = d
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = tmp_4, arg1 = null) -> null
|
||||||
|
else -> tmp_4.postfixIncr++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val t4: dynamic = { // BLOCK
|
||||||
|
val tmp_5: dynamic = d
|
||||||
|
when {
|
||||||
|
EQEQ(arg0 = tmp_5, arg1 = null) -> null
|
||||||
|
else -> tmp_5.postfixDecr--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,4 @@
|
|||||||
// TARGET_BACKEND: JS_IR
|
// TARGET_BACKEND: JS_IR
|
||||||
// IGNORE_BACKEND_K2: JS_IR
|
|
||||||
|
|
||||||
// FIR_IDENTICAL
|
|
||||||
|
|
||||||
fun testMemberIncrementDecrement(d: dynamic) {
|
fun testMemberIncrementDecrement(d: dynamic) {
|
||||||
val t1 = ++d.prefixIncr
|
val t1 = ++d.prefixIncr
|
||||||
|
|||||||
+1
-2
@@ -1,9 +1,8 @@
|
|||||||
// IGNORE_BACKEND: JS
|
|
||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
|
||||||
// EXPECTED_REACHABLE_NODES: 1270
|
// EXPECTED_REACHABLE_NODES: 1270
|
||||||
// SKIP_MINIFICATION
|
// SKIP_MINIFICATION
|
||||||
// RUN_PLAIN_BOX_FUNCTION
|
// RUN_PLAIN_BOX_FUNCTION
|
||||||
// INFER_MAIN_MODULE
|
// INFER_MAIN_MODULE
|
||||||
|
// WITH_STDLIB
|
||||||
|
|
||||||
// MODULE: vararg
|
// MODULE: vararg
|
||||||
// FILE: lib.kt
|
// FILE: lib.kt
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
// IGNORE_BACKEND_K2: JS_IR, JS_IR_ES6
|
||||||
|
// ISSUE: KT-64652
|
||||||
// EXPECTED_REACHABLE_NODES: 1323
|
// EXPECTED_REACHABLE_NODES: 1323
|
||||||
fun <T> checkThrown(x: T, block: (T) -> Any?): Unit? {
|
fun <T> checkThrown(x: T, block: (T) -> Any?): Unit? {
|
||||||
return try {
|
return try {
|
||||||
|
|||||||
Reference in New Issue
Block a user