From bd3953c09f42860242c7678057d73abf125018ae Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Thu, 9 May 2019 15:23:53 +0300 Subject: [PATCH] [JS IR BE] Turn on strict mode in generated code. Fix multiple import of the same javascript module. --- .../js/transformers/irToJs/IrModuleToJsTransformer.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt index eb9e72209b5..26505157821 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/transformers/irToJs/IrModuleToJsTransformer.kt @@ -28,7 +28,9 @@ class IrModuleToJsTransformer( private val moduleKind = backendContext.configuration[JSConfigurationKeys.MODULE_KIND]!! private fun generateModuleBody(module: IrModuleFragment, context: JsGenerationContext): List { - val statements = mutableListOf() + val statements = mutableListOf( + JsStringLiteral("use strict").makeStmt() + ) // TODO: fix it up with new name generator val anyName = context.getNameForClass(backendContext.irBuiltIns.anyClass.owner) @@ -251,7 +253,7 @@ class IrModuleToJsTransformer( } } - val importedJsModules = declarationLevelJsModules + packageLevelJsModules + val importedJsModules = (declarationLevelJsModules + packageLevelJsModules).distinctBy { it.key } return Pair(importStatements, importedJsModules) }