@@ -59,7 +59,9 @@ internal fun getQualifiedName(rtti: kotlin.wasm.internal.reftypes.structref): St
5959}
6060
6161internal fun getPackageName (rtti : kotlin.wasm.internal.reftypes.structref): String {
62- val flagFitsOneBitQualifier = wasmGetRttiIntField(5 , rtti) and TYPE_INFO_FLAG_FITS_LATIN1_QUALIFIER
62+ if (getWasmAbiVersion() < 1 ) return getPackageName0(rtti)
63+
64+ val flagFitsOneBitQualifier = wasmGetRttiIntField(9 , rtti) and TYPE_INFO_FLAG_FITS_LATIN1_QUALIFIER
6365 val poolId = wasmGetRttiIntField(2 , rtti)
6466 return if (flagFitsOneBitQualifier != 0 )
6567 stringLiteralLatin1(poolId)
@@ -68,7 +70,9 @@ internal fun getPackageName(rtti: kotlin.wasm.internal.reftypes.structref): Stri
6870}
6971
7072internal fun getSimpleName (rtti : kotlin.wasm.internal.reftypes.structref): String {
71- val flagFitsOneBitSimpleName = wasmGetRttiIntField(5 , rtti) and TYPE_INFO_FLAG_FITS_LATIN1_SIMPLE_NAME
73+ if (getWasmAbiVersion() < 1 ) return getSimpleName0(rtti)
74+
75+ val flagFitsOneBitSimpleName = wasmGetRttiIntField(9 , rtti) and TYPE_INFO_FLAG_FITS_LATIN1_SIMPLE_NAME
7276 val poolId = wasmGetRttiIntField(3 , rtti)
7377 return if (flagFitsOneBitSimpleName != 0 )
7478 stringLiteralLatin1(poolId)
@@ -77,13 +81,13 @@ internal fun getSimpleName(rtti: kotlin.wasm.internal.reftypes.structref): Strin
7781}
7882
7983internal fun getTypeId (rtti : kotlin.wasm.internal.reftypes.structref): Long =
80- wasmGetRttiLongField(4 , rtti)
84+ wasmGetRttiLongField(8 , rtti)
8185
8286internal fun isAnonymousClass (rtti : kotlin.wasm.internal.reftypes.structref): Boolean =
83- (wasmGetRttiIntField(5 , rtti) and TYPE_INFO_FLAG_ANONYMOUS_CLASS ) != 0
87+ (wasmGetRttiIntField(9 , rtti) and TYPE_INFO_FLAG_ANONYMOUS_CLASS ) != 0
8488
8589internal fun isLocalClass (rtti : kotlin.wasm.internal.reftypes.structref): Boolean =
86- (wasmGetRttiIntField(5 , rtti) and TYPE_INFO_FLAG_LOCAL_CLASS ) != 0
90+ (wasmGetRttiIntField(9 , rtti) and TYPE_INFO_FLAG_LOCAL_CLASS ) != 0
8791
8892@Suppress(" UNUSED_PARAMETER" )
8993@ExcludedFromCodegen
@@ -121,3 +125,17 @@ internal fun wasmGetRttiLongField(intFieldIndex: Int, obj: kotlin.wasm.internal.
121125@ExcludedFromCodegen
122126internal fun wasmGetRttiSuperClass (rtti : kotlin.wasm.internal.reftypes.structref): kotlin.wasm.internal.reftypes.structref? =
123127 implementedAsIntrinsic
128+
129+ // TODO remove following *0 declarations after bootstrap
130+
131+ internal fun getPackageName0 (rtti : kotlin.wasm.internal.reftypes.structref): String = stringLiteral(
132+ start = wasmGetRttiIntField(2 , rtti),
133+ length = wasmGetRttiIntField(3 , rtti),
134+ poolId = wasmGetRttiIntField(4 , rtti),
135+ )
136+
137+ internal fun getSimpleName0 (rtti : kotlin.wasm.internal.reftypes.structref): String = stringLiteral(
138+ start = wasmGetRttiIntField(5 , rtti),
139+ length = wasmGetRttiIntField(6 , rtti),
140+ poolId = wasmGetRttiIntField(7 , rtti),
141+ )
0 commit comments