[JS IR] Fix export of constructor with default argument (KT-41275)
This commit is contained in:
@@ -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")
|
||||
+4
-1
@@ -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";
|
||||
}
|
||||
|
||||
+6
-1
@@ -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";
|
||||
}
|
||||
Reference in New Issue
Block a user