JS IR: minor fix for callable ref translation
The caching variable has to have no initializers so that there is no dependence on evaluation order.
This commit is contained in:
+4
-4
@@ -257,12 +257,12 @@ class CallableReferenceLowering(val context: JsIrBackendContext) : FileLoweringP
|
||||
val cacheName = "${getterFunction.name}_${Namer.KCALLABLE_CACHE_SUFFIX}"
|
||||
val cacheVarSymbol =
|
||||
JsSymbolBuilder.buildVar(getterFunction.descriptor.containingDeclaration, getterFunction.returnType, cacheName, true)
|
||||
val irCacheNull = JsIrBuilder.buildNull(cacheVarSymbol.descriptor.type)
|
||||
val irCacheDeclaration = JsIrBuilder.buildVar(cacheVarSymbol, irCacheNull)
|
||||
val irNull = JsIrBuilder.buildNull(cacheVarSymbol.descriptor.type)
|
||||
val irCacheDeclaration = JsIrBuilder.buildVar(cacheVarSymbol)
|
||||
val irCacheValue = JsIrBuilder.buildGetValue(cacheVarSymbol)
|
||||
val irIfCondition = JsIrBuilder.buildCall(context.irBuiltIns.eqeqeqSymbol).apply {
|
||||
val irIfCondition = JsIrBuilder.buildCall(context.irBuiltIns.eqeqSymbol).apply {
|
||||
putValueArgument(0, irCacheValue)
|
||||
putValueArgument(1, irCacheNull)
|
||||
putValueArgument(1, irNull)
|
||||
}
|
||||
val irSetCache = JsIrBuilder.buildSetVariable(cacheVarSymbol, JsIrBuilder.buildGetValue(varSymbol))
|
||||
val thenStatements = mutableListOf<IrStatement>().apply {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class Delegate<T>(val f: (T) -> Int) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
class A {
|
||||
companion object
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
package a.b
|
||||
|
||||
interface Test {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
typealias S = String
|
||||
|
||||
typealias SF<T> = (T) -> S
|
||||
|
||||
Vendored
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// NO_CHECK_LAMBDA_INLINING
|
||||
// FILE: 1.kt
|
||||
package test
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1114
|
||||
package foo
|
||||
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1116
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1111
|
||||
package foo
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JS_IR
|
||||
// EXPECTED_REACHABLE_NODES: 1112
|
||||
/*
|
||||
* Copy of JVM-backend test
|
||||
|
||||
Reference in New Issue
Block a user