[K/JS] Add support of compilation with ES-classes

This commit is contained in:
Artem Kobzar
2023-01-17 18:14:17 +00:00
committed by Space Team
parent 8d728d4f53
commit 71486a321c
239 changed files with 57567 additions and 1658 deletions
@@ -30,6 +30,6 @@ abstract class AbstractValueRemapper : IrElementTransformerVoid() {
}
}
open class ValueRemapper(private val map: Map<IrValueSymbol, IrValueSymbol>) : AbstractValueRemapper() {
open class ValueRemapper(protected open val map: Map<IrValueSymbol, IrValueSymbol>) : AbstractValueRemapper() {
override fun remapValue(oldValue: IrValueSymbol): IrValueSymbol? = map[oldValue]
}
@@ -125,6 +125,13 @@ class InlineClassLowering(val context: CommonBackendContext) {
return builder.irGet(initFunction.valueParameters.single())
return expression
}
override fun visitSetValue(expression: IrSetValue): IrExpression {
expression.transformChildrenVoid()
if (expression.symbol == origParameterSymbol)
return builder.irSet(initFunction.valueParameters.single(), expression.value)
return expression
}
})
}
+irReturn(unboxedInlineClassValue())