[JS IR] IC improvements
- Reuse a built fragment - Use cache for saving built JS code
This commit is contained in:
committed by
Space
parent
f8ae097e50
commit
9952d43252
+39
-1
@@ -1 +1,39 @@
|
||||
fun box() = Demo("test1").foo() + Demo("test2").foo_inline() + "${Demo("test3").field1}"
|
||||
|
||||
fun isEqual(l: Any?, r: Any?) = if (l == r) true else null
|
||||
|
||||
fun box(stepId: Int): String {
|
||||
when (stepId) {
|
||||
0 -> {
|
||||
isEqual(Demo("test1").foo(), "foo test1") ?: return "Fail function"
|
||||
isEqual(Demo("test2").foo_inline(), "inline foo test2") ?: return "Fail inline function"
|
||||
isEqual(Demo("test3").field1, "field1") ?: return "Fail field"
|
||||
}
|
||||
1 -> {
|
||||
isEqual(Demo("test1").foo(), "foo test1 update") ?: return "Fail function"
|
||||
isEqual(Demo("test2").foo_inline(), "inline foo test2") ?: return "Fail inline function"
|
||||
isEqual(Demo("test3").field1, "field1") ?: return "Fail field"
|
||||
}
|
||||
2, 3, 4 -> {
|
||||
isEqual(Demo("test1").foo(), "foo test1 update") ?: return "Fail function"
|
||||
isEqual(Demo("test2").foo_inline(), "inline foo test2 update") ?: return "Fail inline function"
|
||||
isEqual(Demo("test3").field1, "field1") ?: return "Fail field"
|
||||
}
|
||||
5, 6, 7, 8, 9 -> {
|
||||
isEqual(Demo("test1").foo(), "foo test1 update") ?: return "Fail function"
|
||||
isEqual(Demo("test2").foo_inline(), "inline foo test2 update") ?: return "Fail inline function"
|
||||
isEqual(Demo("test3").field1, "field1 update") ?: return "Fail field"
|
||||
}
|
||||
10 -> {
|
||||
isEqual(Demo("test1").foo(), "foo test1 update") ?: return "Fail function"
|
||||
isEqual(Demo("test2").foo_inline(), "inline foo test2 update") ?: return "Fail inline function"
|
||||
isEqual(Demo("test3").field1, 77) ?: return "Fail field"
|
||||
}
|
||||
11 -> {
|
||||
isEqual(Demo("test1").foo(), "foo test1 update") ?: return "Fail function"
|
||||
isEqual(Demo("test2").foo_inline(), "inline foo test2 update") ?: return "Fail inline function"
|
||||
isEqual(Demo("test3").field1, null) ?: return "Fail field"
|
||||
}
|
||||
else -> return "Unkown"
|
||||
}
|
||||
return "OK"
|
||||
}
|
||||
|
||||
Vendored
+4
-20
@@ -3,27 +3,11 @@ STEP 0:
|
||||
dirty: m.kt
|
||||
STEP 1:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 2:
|
||||
STEP 2..3:
|
||||
dependencies: stdlib, lib1
|
||||
dirty: m.kt
|
||||
STEP 3:
|
||||
dependencies: stdlib, lib1
|
||||
dirty: m.kt
|
||||
STEP 4:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 5:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 6:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 7:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 8:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 9:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 10:
|
||||
dependencies: stdlib, lib1
|
||||
dirty: m.kt
|
||||
STEP 11:
|
||||
STEP 4..9:
|
||||
dependencies: stdlib, lib1
|
||||
STEP 10..11:
|
||||
dependencies: stdlib, lib1
|
||||
dirty: m.kt
|
||||
|
||||
+11
-14
@@ -2,25 +2,22 @@ MODULES: lib1, main
|
||||
|
||||
STEP 0:
|
||||
libs: lib1, main
|
||||
dirty js: stdlib, lib1, main
|
||||
STEP 1:
|
||||
libs: lib1, main
|
||||
STEP 2:
|
||||
dirty js: lib1
|
||||
STEP 2..3:
|
||||
libs: lib1, main
|
||||
STEP 3:
|
||||
libs: lib1, main
|
||||
STEP 4:
|
||||
libs: lib1, main
|
||||
STEP 5:
|
||||
libs: lib1, main
|
||||
STEP 6:
|
||||
dirty js: lib1, main
|
||||
STEP 4..6:
|
||||
libs: lib1, main
|
||||
dirty js: lib1
|
||||
STEP 7:
|
||||
libs: lib1, main
|
||||
STEP 8:
|
||||
dirty js: stdlib, lib1
|
||||
STEP 8..9:
|
||||
libs: lib1, main
|
||||
STEP 9:
|
||||
libs: lib1, main
|
||||
STEP 10:
|
||||
libs: lib1, main
|
||||
STEP 11:
|
||||
dirty js: lib1
|
||||
STEP 10..11:
|
||||
libs: lib1, main
|
||||
dirty js: lib1, main
|
||||
|
||||
Reference in New Issue
Block a user