From 8f71bdbf01475ce29f28e9087ff8717c551a1c80 Mon Sep 17 00:00:00 2001 From: Roman Artemev Date: Thu, 14 May 2020 13:21:36 +0300 Subject: [PATCH] [JS SCRIPT] Fix IrScript visit order --- .../jetbrains/kotlin/backend/common/Lower.kt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Lower.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Lower.kt index 1af9c4d853c..8bfc79d116a 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Lower.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/Lower.kt @@ -139,6 +139,15 @@ fun BodyLoweringPass.runOnFilePostfix(irFile: IrFile, withLocalDeclarations: Boo } } } + + override fun visitScript(declaration: IrScript, data: IrDeclaration?) { + ArrayList(declaration.declarations).forEach { it.accept(this, declaration) } + if (withLocalDeclarations) { + declaration.statements.forEach { it.accept(this, null) } + } + declaration.thisReceiver.accept(this, declaration) + } + }, null) } } @@ -239,6 +248,17 @@ fun DeclarationTransformer.runPostfix(withLocalDeclarations: Boolean = false): D declaration.declarations.transformFlat(this@runPostfix::transformFlatRestricted) } + + override fun visitScript(declaration: IrScript) { + ArrayList(declaration.declarations).forEach { it.accept(this, null) } + declaration.declarations.transformFlat(this@runPostfix::transformFlatRestricted) + + if (withLocalDeclarations) { + declaration.statements.forEach { it.accept(this, null) } + } + + declaration.thisReceiver.accept(this, null) + } }) return this@runPostfix.transformFlatRestricted(declaration)