diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/TopLevelFIF.java b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/TopLevelFIF.java index 45d36c5f4fb..713e6ced122 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/TopLevelFIF.java +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/TopLevelFIF.java @@ -65,7 +65,7 @@ public final class TopLevelFIF extends CompositeFIF { public static final KotlinFunctionIntrinsic KOTLIN_EQUALS = new KotlinFunctionIntrinsic("equals"); @NotNull - public static final KotlinFunctionIntrinsic KOTLIN_SUBSEQUENCE = new KotlinFunctionIntrinsic("subSequence"); + private static final KotlinFunctionIntrinsic KOTLIN_SUBSEQUENCE = new KotlinFunctionIntrinsic("subSequence"); @NotNull private static final DescriptorPredicate HASH_CODE_IN_ANY = pattern("kotlin", "Any", "hashCode"); @@ -147,11 +147,13 @@ public final class TopLevelFIF extends CompositeFIF { } }; - private static final FunctionIntrinsic STRING_SUBSTRING = new FunctionIntrinsic() { + private static final FunctionIntrinsic STRING_SUBSTRING = new FunctionIntrinsicWithReceiverComputed() { @NotNull @Override public JsExpression apply( - @Nullable JsExpression receiver, @NotNull List arguments, @NotNull TranslationContext context + @Nullable JsExpression receiver, + @NotNull List arguments, + @NotNull TranslationContext context ) { return new JsInvocation(new JsNameRef("substring", receiver), arguments); } diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/utils.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/utils.kt index 56ea513326c..8f2c42373fc 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/utils.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/utils/utils.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.js.backend.ast.metadata.CoroutineMetadata import org.jetbrains.kotlin.js.backend.ast.metadata.coroutineMetadata import org.jetbrains.kotlin.js.translate.context.Namer import org.jetbrains.kotlin.js.translate.context.TranslationContext +import org.jetbrains.kotlin.js.translate.intrinsic.functions.basic.FunctionIntrinsicWithReceiverComputed import org.jetbrains.kotlin.js.translate.reference.ReferenceTranslator import org.jetbrains.kotlin.js.translate.utils.TranslationUtils.simpleReturnFunction import org.jetbrains.kotlin.name.FqName @@ -64,7 +65,7 @@ fun generateDelegateCall( } val intrinsic = context.intrinsics().getFunctionIntrinsic(toDescriptor) - val invocation = if (intrinsic.exists()) { + val invocation = if (intrinsic.exists() && intrinsic is FunctionIntrinsicWithReceiverComputed) { intrinsic.apply(thisObject, args, context) } else {