MODULES: lib1, lib2, main

STEP 0:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2, main
    dirty js files:   lib1/l1a, lib1/l1b, lib1/l1c, lib1/l1d, lib2/l2a, main/m, main/m.export, main
STEP 1:
    libs: lib1, lib2, main
    dirty js modules: lib2
    dirty js files:   lib2/l2a, lib2/l2b, main/m
STEP 2:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2
    dirty js files:   lib1/l1c, lib2/l2a
STEP 3:
    libs: lib1, lib2, main
    dirty js modules: lib2
    dirty js files:   lib2/l2a, lib2/l2b
STEP 4:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2
    dirty js files:   lib1/l1b, lib2/l2b
STEP 5:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2, main
    dirty js files:   lib1/l1a, lib1/l1d, lib1/l1c, lib2/l2b, main/m
STEP 6:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2
    dirty js files:   lib1/l1b, lib1/l1c, lib2/l2b
STEP 7:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2, main
    dirty js files:   lib1/l1a, lib1/l1b, lib1/l1c, lib1/l1d, lib2/l2a, main/m
STEP 8:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2
    dirty js files:   lib1/l1c, lib2/l2a, lib2/l2b, main/m
STEP 9:
    libs: lib1, lib2, main
    dirty js modules: lib1, lib2
    dirty js files:   lib1/l1b, lib2/l2a, lib2/l2b
