[JS IR] Add tests for checking constant inlining with JS IR IC

^KT-62425
This commit is contained in:
Alexander Korepanov
2023-10-11 16:48:12 +02:00
committed by Space Team
parent 4ebfed04d3
commit 91edbeb747
49 changed files with 543 additions and 0 deletions
@@ -61,6 +61,12 @@ public class JsFirInvalidationPerFileTestGenerated extends AbstractJsFirInvalida
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@Test
@TestMetadata("companionConstVal")
public void testCompanionConstVal() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/companionConstVal/");
}
@Test
@TestMetadata("companionFunction")
public void testCompanionFunction() throws Exception {
@@ -307,6 +313,12 @@ public class JsFirInvalidationPerFileTestGenerated extends AbstractJsFirInvalida
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/");
}
@Test
@TestMetadata("jsCodeWithConstStringFromOtherModule")
public void testJsCodeWithConstStringFromOtherModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstStringFromOtherModule/");
}
@Test
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
@@ -61,6 +61,12 @@ public class JsFirInvalidationPerModuleTestGenerated extends AbstractJsFirInvali
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@Test
@TestMetadata("companionConstVal")
public void testCompanionConstVal() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/companionConstVal/");
}
@Test
@TestMetadata("companionFunction")
public void testCompanionFunction() throws Exception {
@@ -307,6 +313,12 @@ public class JsFirInvalidationPerModuleTestGenerated extends AbstractJsFirInvali
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/");
}
@Test
@TestMetadata("jsCodeWithConstStringFromOtherModule")
public void testJsCodeWithConstStringFromOtherModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstStringFromOtherModule/");
}
@Test
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
@@ -61,6 +61,12 @@ public class JsIrES6InvalidationPerFileTestGenerated extends AbstractJsIrES6Inva
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@Test
@TestMetadata("companionConstVal")
public void testCompanionConstVal() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/companionConstVal/");
}
@Test
@TestMetadata("companionFunction")
public void testCompanionFunction() throws Exception {
@@ -307,6 +313,12 @@ public class JsIrES6InvalidationPerFileTestGenerated extends AbstractJsIrES6Inva
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/");
}
@Test
@TestMetadata("jsCodeWithConstStringFromOtherModule")
public void testJsCodeWithConstStringFromOtherModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstStringFromOtherModule/");
}
@Test
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
@@ -61,6 +61,12 @@ public class JsIrES6InvalidationPerModuleTestGenerated extends AbstractJsIrES6In
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@Test
@TestMetadata("companionConstVal")
public void testCompanionConstVal() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/companionConstVal/");
}
@Test
@TestMetadata("companionFunction")
public void testCompanionFunction() throws Exception {
@@ -307,6 +313,12 @@ public class JsIrES6InvalidationPerModuleTestGenerated extends AbstractJsIrES6In
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/");
}
@Test
@TestMetadata("jsCodeWithConstStringFromOtherModule")
public void testJsCodeWithConstStringFromOtherModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstStringFromOtherModule/");
}
@Test
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
@@ -61,6 +61,12 @@ public class JsIrInvalidationPerFileTestGenerated extends AbstractJsIrInvalidati
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@Test
@TestMetadata("companionConstVal")
public void testCompanionConstVal() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/companionConstVal/");
}
@Test
@TestMetadata("companionFunction")
public void testCompanionFunction() throws Exception {
@@ -307,6 +313,12 @@ public class JsIrInvalidationPerFileTestGenerated extends AbstractJsIrInvalidati
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/");
}
@Test
@TestMetadata("jsCodeWithConstStringFromOtherModule")
public void testJsCodeWithConstStringFromOtherModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstStringFromOtherModule/");
}
@Test
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
@@ -61,6 +61,12 @@ public class JsIrInvalidationPerModuleTestGenerated extends AbstractJsIrInvalida
runTest("js/js.translator/testData/incremental/invalidation/classFunctionsAndFields/");
}
@Test
@TestMetadata("companionConstVal")
public void testCompanionConstVal() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/companionConstVal/");
}
@Test
@TestMetadata("companionFunction")
public void testCompanionFunction() throws Exception {
@@ -307,6 +313,12 @@ public class JsIrInvalidationPerModuleTestGenerated extends AbstractJsIrInvalida
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstString/");
}
@Test
@TestMetadata("jsCodeWithConstStringFromOtherModule")
public void testJsCodeWithConstStringFromOtherModule() throws Exception {
runTest("js/js.translator/testData/incremental/invalidation/jsCodeWithConstStringFromOtherModule/");
}
@Test
@TestMetadata("jsExport")
public void testJsExport() throws Exception {
@@ -0,0 +1,5 @@
open class Class {
companion object {
const val CONST_VALUE = "0"
}
}
@@ -0,0 +1,5 @@
open class Class {
companion object {
const val CONST_VALUE = "1"
}
}
@@ -0,0 +1,5 @@
open class Class {
companion object {
const val CONST_VALUE = 2
}
}
@@ -0,0 +1,5 @@
open class Class {
companion object {
const val CONST_VALUE = 3
}
}
@@ -0,0 +1,5 @@
open class Class {
companion object {
const val CONST_VALUE = 6
}
}
@@ -0,0 +1,5 @@
open class Class {
companion object {
const val CONST_VALUE = 7
}
}
@@ -0,0 +1,26 @@
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:
STEP 5:
modifications:
U : l1.5.kt -> l1.kt
modified ir: l1.kt
STEP 6:
STEP 7:
modifications:
U : l1.7.kt -> l1.kt
modified ir: l1.kt
@@ -0,0 +1,28 @@
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:
updated exports: l1.kt
STEP 7:
modifications:
U : l1.7.kt -> l1.kt
modified ir: l1.kt
@@ -0,0 +1,5 @@
class InlineChild : Class() {
inline fun inlineMethod(): String {
return "${CONST_VALUE}"
}
}
@@ -0,0 +1,5 @@
class InlineChild : Class() {
inline fun inlineMethod(): String {
return "4"
}
}
@@ -0,0 +1 @@
fun inlineChildProxy() = InlineChild().inlineMethod()
@@ -0,0 +1,3 @@
inline fun inlineFunction(): String {
return "${Class.CONST_VALUE}"
}
@@ -0,0 +1,3 @@
inline fun inlineFunction(): String {
return "4"
}
@@ -0,0 +1 @@
fun inlineFunctionProxy() = inlineFunction()
@@ -0,0 +1,38 @@
STEP 0:
dependencies: lib1
modifications:
U : inlineChild.0.6.kt -> inlineChild.kt
U : inlineChildProxy.0.kt -> inlineChildProxy.kt
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : inlineFunctionProxy.0.kt -> inlineFunctionProxy.kt
U : simpleChild.0.6.kt -> simpleChild.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
added file: inlineChild.kt, inlineChildProxy.kt, inlineFunction.kt, inlineFunctionProxy.kt, simpleChild.kt, simpleFunction.kt
STEP 1..3:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
STEP 4:
dependencies: lib1
modifications:
U : inlineChild.4.kt -> inlineChild.kt
U : inlineFunction.4.kt -> inlineFunction.kt
U : simpleChild.4.kt -> simpleChild.kt
U : simpleFunction.4.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
STEP 5:
dependencies: lib1
STEP 6:
dependencies: lib1
modifications:
U : inlineChild.0.6.kt -> inlineChild.kt
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : simpleChild.0.6.kt -> simpleChild.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
STEP 7:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
@@ -0,0 +1,43 @@
STEP 0:
dependencies: lib1
modifications:
U : inlineChild.0.6.kt -> inlineChild.kt
U : inlineChildProxy.0.kt -> inlineChildProxy.kt
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : inlineFunctionProxy.0.kt -> inlineFunctionProxy.kt
U : simpleChild.0.6.kt -> simpleChild.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
added file: inlineChild.kt, inlineChildProxy.kt, inlineFunction.kt, inlineFunctionProxy.kt, simpleChild.kt, simpleFunction.kt
STEP 1:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineChildProxy.kt, inlineFunction.kt
STEP 2:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
STEP 3:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineChildProxy.kt, inlineFunction.kt
STEP 4:
dependencies: lib1
modifications:
U : inlineChild.4.kt -> inlineChild.kt
U : inlineFunction.4.kt -> inlineFunction.kt
U : simpleChild.4.kt -> simpleChild.kt
U : simpleFunction.4.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
STEP 5:
dependencies: lib1
STEP 6:
dependencies: lib1
modifications:
U : inlineChild.0.6.kt -> inlineChild.kt
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : simpleChild.0.6.kt -> simpleChild.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt, inlineChildProxy.kt
STEP 7:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, simpleFunction.kt, simpleChild.kt, inlineChild.kt, inlineChildProxy.kt, inlineFunction.kt
@@ -0,0 +1,5 @@
class SimpleChild : Class() {
fun simpleMethod(): String {
return "${CONST_VALUE}"
}
}
@@ -0,0 +1,5 @@
class SimpleChild : Class() {
fun simpleMethod(): String {
return "4"
}
}
@@ -0,0 +1,3 @@
fun simpleFunction(): String {
return "${Class.CONST_VALUE}"
}
@@ -0,0 +1,3 @@
fun simpleFunction(): String {
return "4"
}
@@ -0,0 +1,17 @@
fun box(stepId: Int): String {
val expected = if (stepId == 5) stepId - 1 else stepId
var got = simpleFunction()
if (got != "$expected") return "Fail simpleFunction: '$got' != '$expected'"
got = inlineFunctionProxy()
if (got != "$expected") return "Fail inlineFunctionProxy: '$got' != '$expected'"
got = SimpleChild().simpleMethod()
if (got != "$expected") return "Fail SimpleChild.simpleMethod: '$got' != '$expected'"
got = inlineChildProxy()
if (got != "$expected") return "Fail inlineChildProxy: '$got' != '$expected'"
return "OK"
}
@@ -0,0 +1,5 @@
STEP 0:
dependencies: lib1, lib2
added file: m.kt
STEP 1..7:
dependencies: lib1, lib2
@@ -0,0 +1,26 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2, main
dirty js modules: lib1, lib2, main
dirty js files: lib1/l1, lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction, main, main/m, main/m.export
STEP 1..3:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction
STEP 4:
libs: lib1, lib2, main
dirty js modules: lib2
dirty js files: lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction
STEP 5:
libs: lib1, lib2, main
dirty js modules: lib1
dirty js files: lib1/l1
STEP 6:
libs: lib1, lib2, main
dirty js modules: lib2
dirty js files: lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction
STEP 7:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction
@@ -0,0 +1,18 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2, main
dirty js modules: lib1, lib2, main
dirty js files: lib1/l1, lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction, main, main/m, main/m.export
STEP 1..4:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction
STEP 5:
libs: lib1, lib2, main
dirty js modules: lib1
dirty js files: lib1/l1
STEP 6..7:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/inlineChildProxy, lib2/inlineChild, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/simpleChild, lib2/inlineFunction
@@ -0,0 +1,2 @@
const val CONST_KEY = "KEY"
const val CONST_VALUE = "0"
@@ -0,0 +1,2 @@
const val CONST_KEY = "KEY"
const val CONST_VALUE = "1"
@@ -0,0 +1,2 @@
const val CONST_KEY = "KEY"
const val CONST_VALUE = 2
@@ -0,0 +1,2 @@
const val CONST_KEY = "KEY"
const val CONST_VALUE = 3
@@ -0,0 +1,2 @@
const val CONST_KEY = "KEY"
const val CONST_VALUE = 6
@@ -0,0 +1,2 @@
const val CONST_KEY = "KEY"
const val CONST_VALUE = 7
@@ -0,0 +1,26 @@
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:
STEP 5:
modifications:
U : l1.5.kt -> l1.kt
modified ir: l1.kt
STEP 6:
STEP 7:
modifications:
U : l1.7.kt -> l1.kt
modified ir: l1.kt
@@ -0,0 +1,28 @@
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:
updated exports: l1.kt
STEP 7:
modifications:
U : l1.7.kt -> l1.kt
modified ir: l1.kt
@@ -0,0 +1,3 @@
inline fun inlineFunction(): String {
return js("var testObj = { $CONST_KEY: '$CONST_VALUE' }; testObj.$CONST_KEY") as String
}
@@ -0,0 +1,3 @@
inline fun inlineFunction(): String {
return js("'4'") as String
}
@@ -0,0 +1 @@
fun inlineFunctionProxy() = inlineFunction()
@@ -0,0 +1,31 @@
STEP 0:
dependencies: lib1
modifications:
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : inlineFunctionProxy.0.kt -> inlineFunctionProxy.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
added file: inlineFunction.kt, inlineFunctionProxy.kt, simpleFunction.kt
STEP 1..3:
dependencies: lib1
updated imports: inlineFunctionProxy.kt
modified ir: simpleFunction.kt, inlineFunction.kt
STEP 4:
dependencies: lib1
modifications:
U : inlineFunction.4.kt -> inlineFunction.kt
U : simpleFunction.4.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt
STEP 5:
dependencies: lib1
STEP 6:
dependencies: lib1
modifications:
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt
STEP 7:
dependencies: lib1
updated imports: inlineFunctionProxy.kt
modified ir: simpleFunction.kt, inlineFunction.kt
@@ -0,0 +1,36 @@
STEP 0:
dependencies: lib1
modifications:
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : inlineFunctionProxy.0.kt -> inlineFunctionProxy.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
added file: inlineFunction.kt, inlineFunctionProxy.kt, simpleFunction.kt
STEP 1:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, simpleFunction.kt, inlineFunction.kt
STEP 2:
dependencies: lib1
updated imports: inlineFunctionProxy.kt
modified ir: simpleFunction.kt, inlineFunction.kt
STEP 3:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, simpleFunction.kt, inlineFunction.kt
STEP 4:
dependencies: lib1
modifications:
U : inlineFunction.4.kt -> inlineFunction.kt
U : simpleFunction.4.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, , inlineFunction.kt
updated imports: inlineFunctionProxy.kt
STEP 5:
dependencies: lib1
STEP 6:
dependencies: lib1
modifications:
U : inlineFunction.0.6.kt -> inlineFunction.kt
U : simpleFunction.0.6.kt -> simpleFunction.kt
modified ir: simpleFunction.kt, inlineFunction.kt
updated imports: inlineFunctionProxy.kt
STEP 7:
dependencies: lib1
updated imports: inlineFunctionProxy.kt, simpleFunction.kt, inlineFunction.kt
@@ -0,0 +1,3 @@
fun simpleFunction(): String {
return js("var testObj = { $CONST_KEY: '$CONST_VALUE' }; testObj.$CONST_KEY") as String
}
@@ -0,0 +1,3 @@
fun simpleFunction(): String {
return js("'4'") as String
}
@@ -0,0 +1,11 @@
fun box(stepId: Int): String {
val expected = if (stepId == 5) stepId - 1 else stepId
var got = simpleFunction()
if (got != "$expected") return "Fail simpleFunction: '$got' != '$expected'"
got = inlineFunctionProxy()
if (got != "$expected") return "Fail inlineFunctionProxy: '$got' != '$expected'"
return "OK"
}
@@ -0,0 +1,5 @@
STEP 0:
dependencies: lib1, lib2
added file: m.kt
STEP 1..7:
dependencies: lib1, lib2
@@ -0,0 +1,26 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2, main
dirty js modules: lib1, lib2, main
dirty js files: lib1/l1, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction, main, main/m, main/m.export
STEP 1..3:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction
STEP 4:
libs: lib1, lib2, main
dirty js modules: lib2
dirty js files: lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction
STEP 5:
libs: lib1, lib2, main
dirty js modules: lib1
dirty js files: lib1/l1
STEP 6:
libs: lib1, lib2, main
dirty js modules: lib2
dirty js files: lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction
STEP 7:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction
@@ -0,0 +1,18 @@
MODULES: lib1, lib2, main
STEP 0:
libs: lib1, lib2, main
dirty js modules: lib1, lib2, main
dirty js files: lib1/l1, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction, main, main/m, main/m.export
STEP 1..4:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction
STEP 5:
libs: lib1, lib2, main
dirty js modules: lib1
dirty js files: lib1/l1
STEP 6..7:
libs: lib1, lib2, main
dirty js modules: lib1, lib2
dirty js files: lib1/l1, lib2/simpleFunction, lib2/inlineFunctionProxy, lib2/inlineFunction