Add reproducer
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerFileTestGenerated.java
index bed42ab..84dedd8 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerFileTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerFileTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerModuleTestGenerated.java
index 568226e..90e8061 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerModuleTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirES6InvalidationPerModuleTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java
index 6f921df..fb427ae 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerFileTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java
index 1dce3f5..4d0b514 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsFirInvalidationPerModuleTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java
index 647b3fa..95a2335 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerFileTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java
index 0b30e13..0035324 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrES6InvalidationPerModuleTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java
index 8fbcdf9..6b596cc 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerFileTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java
index 0cf149a..4d551f8 100644
--- a/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java
+++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/incremental/JsIrInvalidationPerModuleTestGenerated.java
@@ -577,6 +577,12 @@
   }
 
   @Test
+  @TestMetadata("unstableIrReproducer")
+  public void testUnstableIrReproducer() {
+    runTest("js/js.translator/testData/incremental/invalidation/unstableIrReproducer/");
+  }
+
+  @Test
   @TestMetadata("updateExports")
   public void testUpdateExports() {
     runTest("js/js.translator/testData/incremental/invalidation/updateExports/");
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f1.1.kt b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f1.1.kt
new file mode 100644
index 0000000..162c999
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f1.1.kt
@@ -0,0 +1,7 @@
+fun f1(x: Int): Int {
+    when (x) {
+        10 -> return 100
+        else -> return 1
+    }
+    return 0
+}
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f1.kt b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f1.kt
new file mode 100644
index 0000000..b2255a5
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f1.kt
@@ -0,0 +1,7 @@
+fun f1(x: Int): Int {
+//    when (x) {
+//        10 -> return 100
+//        else -> return 1
+//    }
+    return 0
+}
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f2.kt b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f2.kt
new file mode 100644
index 0000000..42bc26c
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/f2.kt
@@ -0,0 +1,7 @@
+fun f2(x: Int): Int {
+    when (x) {
+        1 -> return 0
+        else -> return 10
+    }
+    return 100
+}
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/module.info b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/module.info
new file mode 100644
index 0000000..6f15157
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib1/module.info
@@ -0,0 +1,6 @@
+STEP 0:
+    added file: f1.kt, f2.kt
+STEP 1:
+    modifications:
+        U : f1.1.kt -> f1.kt
+    modified ir: f1.kt
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib2/l2.kt b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib2/l2.kt
new file mode 100644
index 0000000..71a01e7
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib2/l2.kt
@@ -0,0 +1 @@
+fun qux() = f1(1) + f2(1)
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib2/module.info b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib2/module.info
new file mode 100644
index 0000000..d1d31ca
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/lib2/module.info
@@ -0,0 +1,5 @@
+STEP 0:
+    dependencies: lib1
+    added file: l2.kt
+STEP 1:
+    dependencies: lib1
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/main/m.kt b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/main/m.kt
new file mode 100644
index 0000000..ab57885
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/main/m.kt
@@ -0,0 +1,8 @@
+fun box(stepId: Int): String {
+    when (stepId) {
+        0 -> if (qux() != 0) return "Fail"
+        1 -> if (qux() != 1) return "Fail"
+        else -> return "Unknown"
+    }
+    return "OK"
+}
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/main/module.info b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/main/module.info
new file mode 100644
index 0000000..406ec8b
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/main/module.info
@@ -0,0 +1,5 @@
+STEP 0:
+    dependencies: lib1, lib2
+    added file: m.kt
+STEP 1:
+    dependencies: lib1, lib2
diff --git a/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/project.info b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/project.info
new file mode 100644
index 0000000..962dfda
--- /dev/null
+++ b/js/js.translator/testData/incremental/invalidation/unstableIrReproducer/project.info
@@ -0,0 +1,10 @@
+MODULES: lib1, lib2, main
+
+STEP 0:
+    libs: lib1, lib2, main
+    dirty js modules: lib1, lib2, main
+    dirty js files:   lib1/l1, lib2/l2, main/m, main/m.export, main
+STEP 1:
+    libs: lib1, lib2, main
+    dirty js modules: lib1
+    dirty js files:   lib1/l1