From 050a1e782e40e79a9b101f3f0e997d22b09aa1ef Mon Sep 17 00:00:00 2001 From: Alexey Andreev Date: Mon, 7 Nov 2016 18:26:25 +0300 Subject: [PATCH] JS: fix translation of call to suspend function with optional parameters --- .../js/translate/reference/CallArgumentTranslator.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt index fce1bc7ac81..277a3f3bb1e 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/reference/CallArgumentTranslator.kt @@ -21,6 +21,7 @@ import com.google.dart.compiler.backend.js.ast.metadata.SideEffectKind import com.google.dart.compiler.backend.js.ast.metadata.sideEffects import com.intellij.util.SmartList import org.jetbrains.kotlin.descriptors.ClassDescriptor +import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor import org.jetbrains.kotlin.js.translate.context.Namer @@ -157,7 +158,11 @@ class CallArgumentTranslator private constructor( } } - removeLastUndefinedArguments(result) + val callableDescriptor = resolvedCall.resultingDescriptor + if (callableDescriptor !is FunctionDescriptor || !callableDescriptor.isSuspend) { + removeLastUndefinedArguments(result) + } + return ArgumentsInfo(result, hasSpreadOperator, cachedReceiver) }