diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt index 7345208d2d4..60397889bf3 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/js/JsCodegenUtil.kt @@ -160,7 +160,10 @@ internal fun SerializerJsTranslator.serializerInstance( val desc = requireNotNull( KSerializerDescriptorResolver.findSerializerConstructorForTypeArgumentsSerializers(serializerClass) ) { "Generated serializer does not have constructor with required number of arguments" } - JsInvocation(context.getInnerReference(desc), args) + if (!desc.isPrimary) + JsInvocation(context.getInnerReference(desc), args) + else + JsNew(context.getInnerReference(desc), args) } else { JsNew(context.translateQualifiedReference(serializerClass), args) }