@@ -709,6 +709,86 @@ val loweringList = listOf<Lowering>(
709
709
validateIrAfterLowering
710
710
)
711
711
712
+ val es6LoweringList = listOf<Lowering >(
713
+ scriptRemoveReceiverLowering,
714
+ validateIrBeforeLowering,
715
+ testGenerationPhase,
716
+ expectDeclarationsRemovingPhase,
717
+ stripTypeAliasDeclarationsPhase,
718
+ arrayConstructorPhase,
719
+ lateinitNullableFieldsPhase,
720
+ lateinitDeclarationLoweringPhase,
721
+ lateinitUsageLoweringPhase,
722
+ sharedVariablesLoweringPhase,
723
+ localClassesInInlineLambdasPhase,
724
+ localClassesInInlineFunctionsPhase,
725
+ localClassesExtractionFromInlineFunctionsPhase,
726
+ functionInliningPhase,
727
+ copyInlineFunctionBodyLoweringPhase,
728
+ createScriptFunctionsPhase,
729
+ callableReferenceLowering,
730
+ singleAbstractMethodPhase,
731
+ tailrecLoweringPhase,
732
+ enumClassConstructorLoweringPhase,
733
+ enumClassConstructorBodyLoweringPhase,
734
+ localDelegatedPropertiesLoweringPhase,
735
+ localDeclarationsLoweringPhase,
736
+ localClassExtractionPhase,
737
+ innerClassesLoweringPhase,
738
+ innerClassesMemberBodyLoweringPhase,
739
+ innerClassConstructorCallsLoweringPhase,
740
+ propertiesLoweringPhase,
741
+ primaryConstructorLoweringPhase,
742
+ delegateToPrimaryConstructorLoweringPhase,
743
+ annotationConstructorLowering,
744
+ initializersLoweringPhase,
745
+ initializersCleanupLoweringPhase,
746
+ kotlinNothingValueExceptionPhase,
747
+ // Common prefix ends
748
+ enumEntryInstancesLoweringPhase,
749
+ enumEntryInstancesBodyLoweringPhase,
750
+ enumClassCreateInitializerLoweringPhase,
751
+ enumEntryCreateGetInstancesFunsLoweringPhase,
752
+ enumSyntheticFunsLoweringPhase,
753
+ enumUsageLoweringPhase,
754
+ enumEntryRemovalLoweringPhase,
755
+ suspendFunctionsLoweringPhase,
756
+ propertyReferenceLoweringPhase,
757
+ interopCallableReferenceLoweringPhase,
758
+ returnableBlockLoweringPhase,
759
+ forLoopsLoweringPhase,
760
+ primitiveCompanionLoweringPhase,
761
+ propertyAccessorInlinerLoweringPhase,
762
+ foldConstantLoweringPhase,
763
+ privateMembersLoweringPhase,
764
+ privateMemberUsagesLoweringPhase,
765
+ defaultArgumentStubGeneratorPhase,
766
+ defaultArgumentPatchOverridesPhase,
767
+ defaultParameterInjectorPhase,
768
+ defaultParameterCleanerPhase,
769
+ jsDefaultCallbackGeneratorPhase,
770
+ removeInlineFunctionsWithReifiedTypeParametersLoweringPhase,
771
+ throwableSuccessorsLoweringPhase,
772
+ es6AddInternalParametersToConstructorPhase,
773
+ es6ConstructorLowering,
774
+ varargLoweringPhase,
775
+ multipleCatchesLoweringPhase,
776
+ bridgesConstructionPhase,
777
+ typeOperatorLoweringPhase,
778
+ secondaryFactoryInjectorLoweringPhase,
779
+ classReferenceLoweringPhase,
780
+ inlineClassDeclarationLoweringPhase,
781
+ inlineClassUsageLoweringPhase,
782
+ autoboxingTransformerPhase,
783
+ blockDecomposerLoweringPhase,
784
+ constLoweringPhase,
785
+ objectDeclarationLoweringPhase,
786
+ objectUsageLoweringPhase,
787
+ callsLoweringPhase,
788
+ cleanupLoweringPhase,
789
+ validateIrAfterLowering
790
+ )
791
+
712
792
// TODO comment? Eliminate MouduleLowering's? Don't filter them here?
713
793
val pirLowerings = loweringList.filter { it is DeclarationLowering || it is BodyLowering } + staticMembersLoweringPhase
714
794
@@ -719,4 +799,12 @@ val jsPhases = namedIrModulePhase(
719
799
lower = loweringList.drop(1 ).fold(loweringList[0 ].modulePhase) { acc: CompilerPhase <JsIrBackendContext , IrModuleFragment , IrModuleFragment >, lowering ->
720
800
acc.then(lowering.modulePhase)
721
801
}
722
- )
802
+ )
803
+
804
+ val jsEs6Phases = namedIrModulePhase(
805
+ name = " ES6IrModuleLowering" ,
806
+ description = " ES6 IR module lowering" ,
807
+ lower = es6LoweringList.drop(1 ).fold(es6LoweringList[0 ].modulePhase) { acc: CompilerPhase <JsIrBackendContext , IrModuleFragment , IrModuleFragment >, lowering ->
808
+ acc.then(lowering.modulePhase)
809
+ }
810
+ )
0 commit comments