[JS IR] Fix case with bridge with nested classes
^KT-54686 fixed
This commit is contained in:
committed by
Space Team
parent
2e48557a0d
commit
fd5fba6f09
@@ -415,10 +415,4 @@ class JsIrBackendContext(
|
||||
outlinedJsCodeFunctions[symbol] = parsedJsFunction
|
||||
return parsedJsFunction
|
||||
}
|
||||
|
||||
private var irFunctionSignatureCache = hashMapOf<IrFunction, String>()
|
||||
|
||||
fun getFunctionSignatureFromCache(f: IrFunction): String {
|
||||
return irFunctionSignatureCache.getOrPut(f) { calculateJsFunctionSignature(f, this) }
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -34,7 +34,10 @@ class JsBridgesConstruction(context: JsIrBackendContext) : BridgesConstruction<J
|
||||
private val primitiveToLiteralConstructor = context.intrinsics.primitiveToLiteralConstructor
|
||||
|
||||
override fun getFunctionSignature(function: IrSimpleFunction) =
|
||||
jsFunctionSignature(function, context)
|
||||
jsFunctionSignature(
|
||||
function,
|
||||
context
|
||||
)
|
||||
|
||||
override fun getBridgeOrigin(bridge: IrSimpleFunction): IrDeclarationOrigin =
|
||||
when {
|
||||
|
||||
@@ -158,7 +158,10 @@ fun calculateJsFunctionSignature(declaration: IrFunction, context: JsIrBackendCo
|
||||
) + "_" + abs(signature.hashCode()).toString(Character.MAX_RADIX) + RESERVED_MEMBER_NAME_SUFFIX
|
||||
}
|
||||
|
||||
fun jsFunctionSignature(declaration: IrFunction, context: JsIrBackendContext): String {
|
||||
fun jsFunctionSignature(
|
||||
declaration: IrFunction,
|
||||
context: JsIrBackendContext
|
||||
): String {
|
||||
require(!declaration.isStaticMethodOfClass)
|
||||
require(declaration.dispatchReceiverParameter != null)
|
||||
|
||||
@@ -172,7 +175,7 @@ fun jsFunctionSignature(declaration: IrFunction, context: JsIrBackendContext): S
|
||||
}
|
||||
|
||||
val declarationSignature = (declaration as? IrSimpleFunction)?.resolveFakeOverride() ?: declaration
|
||||
return context.getFunctionSignatureFromCache(declarationSignature)
|
||||
return calculateJsFunctionSignature(declarationSignature, context)
|
||||
}
|
||||
|
||||
class NameTables(
|
||||
|
||||
Reference in New Issue
Block a user