[K/JS, K/Wasm] Implement enumEntries top-level function ^KT-59712 Fixed

This commit is contained in:
Artem Kobzar
2023-07-27 09:43:01 +00:00
committed by Space Team
parent 34b271b13d
commit 029c71ebb1
10 changed files with 41 additions and 12 deletions
@@ -118,6 +118,7 @@ class WasmSymbols(
val enumValueOfIntrinsic = getInternalFunction("enumValueOfIntrinsic")
val enumValuesIntrinsic = getInternalFunction("enumValuesIntrinsic")
val enumEntriesIntrinsic = getEnumsFunction("enumEntriesIntrinsic")
val coroutineEmptyContinuation: IrPropertySymbol = symbolTable.descriptorExtension.referenceProperty(
getProperty(FqName.fromSegments(listOf("kotlin", "wasm", "internal", "EmptyContinuation")))
@@ -382,6 +383,8 @@ class WasmSymbols(
private fun getInternalFunction(name: String) = getFunction(name, wasmInternalPackage)
private fun getEnumsFunction(name: String) = getFunction(name, enumsInternalPackage)
private fun getIrClass(fqName: FqName): IrClassSymbol = symbolTable.descriptorExtension.referenceClass(getClass(fqName))
private fun getInternalClass(name: String): IrClassSymbol = getIrClass(FqName("kotlin.wasm.internal.$name"))
fun getKFunctionType(type: IrType, list: List<IrType>): IrType {
@@ -182,6 +182,8 @@ class BuiltInsLowering(val context: WasmBackendContext) : FileLoweringPass {
return EnumIntrinsicsUtils.transformEnumValueOfIntrinsic(call)
symbols.enumValuesIntrinsic ->
return EnumIntrinsicsUtils.transformEnumValuesIntrinsic(call)
symbols.enumEntriesIntrinsic ->
return EnumIntrinsicsUtils.transformEnumEntriesIntrinsic(call)
}
return call