[JS IR] Add more JS IC tests for top level properties

This commit is contained in:
Alexander Korepanov
2022-10-24 15:40:36 +02:00
committed by Space Team
parent 26e7c29a91
commit e2922219f2
34 changed files with 356 additions and 0 deletions
@@ -280,6 +280,11 @@ public class InvalidationTestGenerated extends AbstractInvalidationTest {
runTest("js/js.translator/testData/incremental/invalidation/suspendFunctions/");
}
@TestMetadata("toplevelProperties")
public void testToplevelProperties() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/toplevelProperties/");
}
@TestMetadata("transitiveInlineFunction")
public void testTransitiveInlineFunction() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/transitiveInlineFunction/");
@@ -0,0 +1 @@
val globalVal = "0"
@@ -0,0 +1 @@
val globalVal = "1"
@@ -0,0 +1,11 @@
val globalVal = 4
inline val inlineGlobalVal: Int
get() = 4
var globalVar = "1"
var globalVarBacking = 1
inline var inlineGlobalVar: String
get() = globalVarBacking.toString()
set(value) { globalVarBacking += value.toInt() }
@@ -0,0 +1,11 @@
val globalVal = 4
inline val inlineGlobalVal: Int
get() = 4
var globalVar = "1"
var globalVarBacking = 2
inline var inlineGlobalVar: String
get() = globalVarBacking.toString()
set(value) { globalVarBacking += value.toInt() }
@@ -0,0 +1,11 @@
val globalVal = 4
inline val inlineGlobalVal: Int
get() = 4
var globalVar = "1"
var globalVarBacking = 2
inline var inlineGlobalVar: String
get() = (1 + globalVarBacking).toString()
set(value) { globalVarBacking += value.toInt() }
@@ -0,0 +1,16 @@
val globalVal = 4
inline val inlineGlobalVal: Int
get() = 4
var globalVar = "1"
var globalVarBacking = 2
inline var inlineGlobalVar: String
get() = (1 + globalVarBacking).toString()
set(value) { globalVarBacking += 1 + value.toInt() }
var globalExtensionPropertyAdd = 1
inline var Int.inlineExtensionProperty: String
get() = (this + globalExtensionPropertyAdd).toString()
set(value) { globalExtensionPropertyAdd += value.toInt() }
@@ -0,0 +1 @@
val globalVal = 2
@@ -0,0 +1,4 @@
val globalVal = 3
inline val inlineGlobalVal: String
get() = "1"
@@ -0,0 +1,4 @@
val globalVal = 3
inline val inlineGlobalVal: String
get() = "2"
@@ -0,0 +1,4 @@
val globalVal = 3
inline val inlineGlobalVal: Int
get() = 3
@@ -0,0 +1,6 @@
val globalVal = 4
inline val inlineGlobalVal: Int
get() = 3
var globalVar = "1"
@@ -0,0 +1,52 @@
STEP 0:
modifications:
U : l1.0.kt -> l1.kt
added file: l1.kt
STEP 1:
modifications:
U : l1.1.kt -> l1.kt
modified ir: l1.kt
STEP 2:
modifications:
U : l1.2.kt -> l1.kt
modified ir: l1.kt
STEP 3:
modifications:
U : l1.3.kt -> l1.kt
modified ir: l1.kt
STEP 4:
updated exports: l1.kt
STEP 5:
modifications:
U : l1.5.kt -> l1.kt
modified ir: l1.kt
STEP 6:
modifications:
U : l1.6.kt -> l1.kt
modified ir: l1.kt
STEP 7:
modifications:
U : l1.7.kt -> l1.kt
modified ir: l1.kt
STEP 8..9:
updated exports: l1.kt
STEP 10:
modifications:
U : l1.10.kt -> l1.kt
modified ir: l1.kt
STEP 11..12:
updated exports: l1.kt
STEP 13:
modifications:
U : l1.13.kt -> l1.kt
modified ir: l1.kt
STEP 14:
modifications:
U : l1.14.kt -> l1.kt
modified ir: l1.kt
STEP 15:
modifications:
U : l1.15.kt -> l1.kt
modified ir: l1.kt
STEP 16..21:
updated exports: l1.kt
@@ -0,0 +1,3 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt()
}
@@ -0,0 +1,6 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt() +
inlineGlobalValWrapper().toInt() +
globalVarWrapper().toInt() +
inlineGlobalVarWrapper().toInt()
}
@@ -0,0 +1,7 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt() +
inlineGlobalValWrapper().toInt() +
globalVarWrapper().toInt() +
inlineGlobalVarWrapper().toInt() +
0.inlineExtensionPropertyWrapper().toInt()
}
@@ -0,0 +1,3 @@
fun testToplevelProperties(): Int {
return 18
}
@@ -0,0 +1,5 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt() +
inlineGlobalVarWrapper().toInt() +
8.inlineExtensionPropertyWrapper().toInt()
}
@@ -0,0 +1,4 @@
fun testToplevelProperties(): Int {
return inlineGlobalValWrapper().toInt() +
14.inlineExtensionPropertyWrapper().toInt()
}
@@ -0,0 +1,6 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt() +
inlineGlobalValWrapper().toInt() +
globalVarWrapper().toInt() +
inlineGlobalVarWrapper().toInt() + 6
}
@@ -0,0 +1,4 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt() +
inlineGlobalValWrapper().toInt()
}
@@ -0,0 +1,5 @@
fun testToplevelProperties(): Int {
return globalValWrapper().toInt() +
inlineGlobalValWrapper().toInt() +
globalVarWrapper().toInt()
}
@@ -0,0 +1 @@
inline fun globalValWrapper() = globalVal
@@ -0,0 +1,7 @@
inline fun globalVarGetWrapper() = globalVar
inline fun globalVarSetWrapper(v: String) { globalVar = v }
inline fun globalVarWrapper(): String {
return globalVarGetWrapper()
}
@@ -0,0 +1,8 @@
inline fun globalVarGetWrapper() = globalVar
inline fun globalVarSetWrapper(v: String) { globalVar = v }
inline fun globalVarWrapper(): String {
globalVarSetWrapper("2")
return globalVarGetWrapper()
}
@@ -0,0 +1,7 @@
inline fun Int.inlineExtensionPropertyGetWrapper() = this.inlineExtensionProperty
inline fun Int.inlineExtensionPropertySetWrapper(v: String) { this.inlineExtensionProperty = v }
inline fun Int.inlineExtensionPropertyWrapper(): String {
return this.inlineExtensionPropertyGetWrapper()
}
@@ -0,0 +1,8 @@
inline fun Int.inlineExtensionPropertyGetWrapper() = this.inlineExtensionProperty
inline fun Int.inlineExtensionPropertySetWrapper(v: String) { this.inlineExtensionProperty = v }
inline fun Int.inlineExtensionPropertyWrapper(): String {
this.inlineExtensionPropertySetWrapper("1")
return this.inlineExtensionPropertyGetWrapper()
}
@@ -0,0 +1 @@
inline fun inlineGlobalValWrapper() = inlineGlobalVal
@@ -0,0 +1,7 @@
inline fun inlineGlobalVarGetWrapper() = inlineGlobalVar
inline fun inlineGlobalVarSetWrapper(v: String) { inlineGlobalVar = v }
inline fun inlineGlobalVarWrapper(): String {
return inlineGlobalVarGetWrapper()
}
@@ -0,0 +1,8 @@
inline fun inlineGlobalVarGetWrapper() = inlineGlobalVar
inline fun inlineGlobalVarSetWrapper(v: String) { inlineGlobalVar = v }
inline fun inlineGlobalVarWrapper(): String {
inlineGlobalVarSetWrapper("1")
return inlineGlobalVarGetWrapper()
}
@@ -0,0 +1,98 @@
STEP 0:
dependencies: lib1
modifications:
U : l2.0.kt -> l2.kt
added file: l2.kt, l2globalVal.kt
STEP 1:
dependencies: lib1
STEP 2:
dependencies: lib1
modified ir: l2.kt, l2globalVal.kt
STEP 3:
dependencies: lib1
STEP 4:
dependencies: lib1
modifications:
U : l2.4.kt -> l2.kt
U : l2inlineGlobalVal.4.kt -> l2inlineGlobalVal.kt
modified ir: l2.kt
added file: l2inlineGlobalVal.kt
STEP 5:
dependencies: lib1
updated imports: l2inlineGlobalVal.kt, l2.kt
STEP 6:
dependencies: lib1
modified ir: l2inlineGlobalVal.kt, l2.kt
STEP 7:
dependencies: lib1
STEP 8:
dependencies: lib1
modifications:
U : l2.8.kt -> l2.kt
U : l2globalVar.8.kt -> l2globalVar.kt
modified ir: l2.kt
added file: l2globalVar.kt
STEP 9:
dependencies: lib1
modifications:
U : l2globalVar.9.kt -> l2globalVar.kt
modified ir: l2globalVar.kt
updated imports: l2.kt
STEP 10:
dependencies: lib1
updated imports: l2inlineGlobalVal.kt, l2.kt
STEP 11:
dependencies: lib1
modifications:
U : l2.11.kt -> l2.kt
U : l2inlineGlobalVar.11.kt -> l2inlineGlobalVar.kt
modified ir: l2.kt
added file: l2inlineGlobalVar.kt
STEP 12:
dependencies: lib1
modifications:
U : l2inlineGlobalVar.12.kt -> l2inlineGlobalVar.kt
modified ir: l2inlineGlobalVar.kt
updated imports: l2.kt
STEP 13:
dependencies: lib1
STEP 14..15:
dependencies: lib1
updated imports: l2inlineGlobalVar.kt, l2.kt
STEP 16:
dependencies: lib1
modifications:
U : l2.16.kt -> l2.kt
U : l2inlineExtensionProperty.16.kt -> l2inlineExtensionProperty.kt
modified ir: l2.kt
added file: l2inlineExtensionProperty.kt
STEP 17:
dependencies: lib1
modifications:
U : l2inlineExtensionProperty.17.kt -> l2inlineExtensionProperty.kt
modified ir: l2inlineExtensionProperty.kt
updated imports: l2.kt
STEP 18:
dependencies: lib1
modifications:
U : l2.18.kt -> l2.kt
modified ir: l2.kt
updated exports: l2globalVal.kt, l2inlineGlobalVal.kt, l2globalVar.kt, l2inlineExtensionProperty.kt, l2inlineGlobalVar.kt
STEP 19:
dependencies: lib1
modifications:
U : l2.19.kt -> l2.kt
modified ir: l2.kt
updated exports: l2globalVal.kt, l2inlineExtensionProperty.kt, l2inlineGlobalVar.kt
STEP 20:
dependencies: lib1
modifications:
U : l2.20.kt -> l2.kt
modified ir: l2.kt
updated exports: l2inlineGlobalVal.kt, l2globalVal.kt, l2inlineGlobalVar.kt
STEP 21:
dependencies: lib1
modifications:
U : l2.21.kt -> l2.kt
modified ir: l2.kt
updated exports: l2globalVal.kt, l2globalVar.kt, l2inlineGlobalVar.kt, l2inlineExtensionProperty.kt
@@ -0,0 +1,7 @@
fun box(stepId: Int): String {
val r = testToplevelProperties()
if (r != stepId) {
return "Fail, got $r"
}
return "OK"
}
@@ -0,0 +1,5 @@
STEP 0:
dependencies: lib1, lib2
added file: m.kt
STEP 1..21:
dependencies: lib1, lib2
@@ -0,0 +1,29 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2, main
dirty js: lib1, lib2, main
STEP 1:
libs: lib1, lib2, main
dirty js: lib1
STEP 2:
libs: lib1, lib2, main
dirty js: lib1, lib2
STEP 3:
libs: lib1, lib2, main
dirty js: lib1
STEP 4..6:
libs: lib1, lib2, main
dirty js: lib1, lib2
STEP 7:
libs: lib1, lib2, main
dirty js: lib1
STEP 8..12:
libs: lib1, lib2, main
dirty js: lib1, lib2
STEP 13:
libs: lib1, lib2, main
dirty js: lib1
STEP 14..21:
libs: lib1, lib2, main
dirty js: lib1, lib2