[JS IR] Fix export of constructor with default argument (KT-41275)

This commit is contained in:
Svyatoslav Kuzmich
2020-08-31 15:32:23 +03:00
parent 5b136516c4
commit 162d9744ff
9 changed files with 56 additions and 15 deletions
@@ -30,4 +30,8 @@ declare namespace JS_TESTS {
static delegateToPrimary(y: string): DerivedClassWithSecondaryCtor;
static delegateToCreateFromInts(y: number, z: number): DerivedClassWithSecondaryCtor;
}
class KotlinGreeter {
constructor(greeting: string);
readonly greeting: string;
}
}
@@ -8,6 +8,8 @@
// TODO fix statics export in DCE-driven mode
// SKIP_DCE_DRIVEN
// FILE: f1.kt
@file:JsExport
class ClassWithDefaultCtor {
@@ -54,4 +56,9 @@ class DerivedClassWithSecondaryCtor : OpenClassWithMixedConstructors {
@JsName("delegateToCreateFromInts")
constructor(y: Int, z: Int) : super(y, z)
}
}
// FILE: f2.kt
@JsExport
class KotlinGreeter(val greeting: String = "helau")
@@ -1,5 +1,5 @@
"use strict";
var ClassWithDefaultCtor = JS_TESTS.ClassWithDefaultCtor, ClassWithPrimaryCtor = JS_TESTS.ClassWithPrimaryCtor, ClassWithSecondaryCtor = JS_TESTS.ClassWithSecondaryCtor, ClassWithMultipleSecondaryCtors = JS_TESTS.ClassWithMultipleSecondaryCtors, DerivedClassWithSecondaryCtor = JS_TESTS.DerivedClassWithSecondaryCtor, OpenClassWithMixedConstructors = JS_TESTS.OpenClassWithMixedConstructors;
var ClassWithDefaultCtor = JS_TESTS.ClassWithDefaultCtor, ClassWithPrimaryCtor = JS_TESTS.ClassWithPrimaryCtor, ClassWithSecondaryCtor = JS_TESTS.ClassWithSecondaryCtor, ClassWithMultipleSecondaryCtors = JS_TESTS.ClassWithMultipleSecondaryCtors, DerivedClassWithSecondaryCtor = JS_TESTS.DerivedClassWithSecondaryCtor, OpenClassWithMixedConstructors = JS_TESTS.OpenClassWithMixedConstructors, KotlinGreeter = JS_TESTS.KotlinGreeter;
function box() {
var o1 = new ClassWithDefaultCtor();
if (o1.x !== "ClassWithDefaultCtor::x")
@@ -31,5 +31,8 @@ function box() {
var o10 = DerivedClassWithSecondaryCtor.delegateToCreateFromInts(-10, 20);
if (o10.x !== "fromStrings:-10:20")
return "Fail: DerivedClassWithSecondaryCtor.delegateToCreateFromInts";
var kg = new KotlinGreeter("Hi");
if (kg.greeting != "Hi")
return "Fail: KotlinGreeter";
return "OK";
}
@@ -4,7 +4,8 @@ const {
ClassWithSecondaryCtor,
ClassWithMultipleSecondaryCtors,
DerivedClassWithSecondaryCtor,
OpenClassWithMixedConstructors
OpenClassWithMixedConstructors,
KotlinGreeter
} = JS_TESTS;
function box(): string {
@@ -43,5 +44,9 @@ function box(): string {
const o10 = DerivedClassWithSecondaryCtor.delegateToCreateFromInts(-10, 20);
if (o10.x !== "fromStrings:-10:20") return "Fail: DerivedClassWithSecondaryCtor.delegateToCreateFromInts";
const kg = new KotlinGreeter("Hi");
if (kg.greeting != "Hi") return "Fail: KotlinGreeter";
return "OK";
}