From 3fd55673a896d3cb5357ea450014faca45bc22eb Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Wed, 17 Apr 2019 16:06:54 +0300 Subject: [PATCH] [JS IR BE] Workaround for println IR backend has a bug in decomposition of dynamic calls. Workaround: don't use inline function call inside dynamic call argument. --- libraries/stdlib/js/src/kotlin/console.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libraries/stdlib/js/src/kotlin/console.kt b/libraries/stdlib/js/src/kotlin/console.kt index ec5d4ecc145..c5dcc2fe8cb 100644 --- a/libraries/stdlib/js/src/kotlin/console.kt +++ b/libraries/stdlib/js/src/kotlin/console.kt @@ -23,7 +23,11 @@ internal abstract class BaseOutput { /** JsName used to make the declaration available outside of module to test it */ @JsName("NodeJsOutput") internal class NodeJsOutput(val outputStream: dynamic) : BaseOutput() { - override fun print(message: Any?) = outputStream.write(String(message)) + override fun print(message: Any?) { + // TODO: Using local variable because of bug in block decomposition lowering in IR backend + val messageString = String(message) + outputStream.write(messageString) + } } /** JsName used to make the declaration available outside of module to test it */