[K/JS] chore: stop unnecessary defineProperties generating.
This commit is contained in:
@@ -2112,6 +2112,12 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/export/exportAllFile.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassPropertiesInDifferentCombinations.kt")
|
||||
public void testExportClassPropertiesInDifferentCombinations() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
+6
@@ -2584,6 +2584,12 @@ public class FirJsTestGenerated extends AbstractFirJsTest {
|
||||
runTest("js/js.translator/testData/box/export/exportAllFile.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassPropertiesInDifferentCombinations.kt")
|
||||
public void testExportClassPropertiesInDifferentCombinations() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
+6
@@ -2584,6 +2584,12 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest {
|
||||
runTest("js/js.translator/testData/box/export/exportAllFile.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassPropertiesInDifferentCombinations.kt")
|
||||
public void testExportClassPropertiesInDifferentCombinations() throws Exception {
|
||||
runTest("js/js.translator/testData/box/export/exportClassPropertiesInDifferentCombinations.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("exportClassWithInternal.kt")
|
||||
public void testExportClassWithInternal() throws Exception {
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
// FILE: lib.kt
|
||||
|
||||
@JsExport
|
||||
fun `@do something like-this`(): Int = 42
|
||||
fun `@do something like-this`(`test value`: Int = 42): Int = `test value`
|
||||
|
||||
// FILE: test.js
|
||||
function box() {
|
||||
|
||||
+227
@@ -0,0 +1,227 @@
|
||||
// EXPECTED_REACHABLE_NODES: 1252
|
||||
// IGNORE_BACKEND: JS
|
||||
// RUN_PLAIN_BOX_FUNCTION
|
||||
// INFER_MAIN_MODULE
|
||||
|
||||
// MODULE: export_class_properties
|
||||
// FILE: lib.kt
|
||||
|
||||
@JsExport
|
||||
interface IOwner {
|
||||
val interfaceValOpen: String
|
||||
|
||||
val interfaceGetterOnly: String
|
||||
get() = "Interface with Getter"
|
||||
|
||||
var interfaceVarOpen: String
|
||||
}
|
||||
|
||||
@JsExport
|
||||
open class Owner {
|
||||
open val classOpenReadonly: String = "Class Readonly Open"
|
||||
open var classOpenVar: String = "Class Var Open"
|
||||
|
||||
val classFinalReadonly: String = "Class Readonly Final"
|
||||
var classFinalVar: String = "Class Default"
|
||||
|
||||
val classGetterOnly: String
|
||||
get() = "Class with Final Getter"
|
||||
|
||||
open val classOpenGetterOnly: String
|
||||
get() = "Class with Open Getter"
|
||||
|
||||
var classSetterOnly: String = "Class setter only"
|
||||
set(value) { classOpenVar = "Class Changed by class setter only $value" }
|
||||
|
||||
open var classOpenSetterOnly: String = "Class open setter only"
|
||||
set(value) { classOpenVar = "Class Changed by class open setter only $value" }
|
||||
|
||||
var classGetterAndSetter: String = "Class Getter and Setter"
|
||||
get() = field + " by class getter"
|
||||
set(value) { field = value }
|
||||
|
||||
open var classOpenGetterAndSetter: String = "Class Open Getter and Setter"
|
||||
get() = field + " by class open getter"
|
||||
set(value) { field = value }
|
||||
}
|
||||
|
||||
open class HiddenChild : Owner(), IOwner {
|
||||
override val interfaceValOpen: String = "Hidden Child Open Val"
|
||||
override var interfaceVarOpen: String = "Hidden Child Open Var"
|
||||
|
||||
val hiddenDefaultVal: String = "Hidden Default Val"
|
||||
val hiddenDefaultGetter: String get() = "Hidden Default Getter"
|
||||
var hiddenDefaultVar: String = "Hidden Default Var"
|
||||
}
|
||||
|
||||
open class AnotherOneHiddenChild: HiddenChild() {
|
||||
override val interfaceGetterOnly: String
|
||||
get() = "Another One Hidden Child with Getter"
|
||||
}
|
||||
|
||||
@JsExport
|
||||
class ExportedChild: AnotherOneHiddenChild() {
|
||||
override val classOpenReadonly: String = "Exported Child Readonly Open"
|
||||
override var classOpenVar: String = "Exported Child Var Open"
|
||||
|
||||
override val classOpenGetterOnly: String
|
||||
get() = "Exported Child with Open Getter"
|
||||
|
||||
override var classOpenSetterOnly: String = super.classOpenSetterOnly
|
||||
set(value) { classOpenVar = "Exported Child Changed by class open setter only $value" }
|
||||
|
||||
override var classOpenGetterAndSetter: String = super.classOpenGetterAndSetter
|
||||
get() = field + " by exported child open getter"
|
||||
set(value) { field = value }
|
||||
}
|
||||
|
||||
@JsExport
|
||||
fun generateHiddenChild() = HiddenChild()
|
||||
|
||||
@JsExport
|
||||
fun generateAnotherHiddenChild() = AnotherOneHiddenChild()
|
||||
|
||||
// FILE: test.js
|
||||
|
||||
function assertEquals(actualValue, expectedValue) {
|
||||
if (actualValue !== expectedValue) {
|
||||
throw new Error("Expected value is '" + expectedValue + "', but got '" + actualValue + "'")
|
||||
}
|
||||
}
|
||||
|
||||
function testOwner(pkg) {
|
||||
var owner = new pkg.Owner();
|
||||
|
||||
assertEquals(owner.classOpenReadonly, "Class Readonly Open")
|
||||
assertEquals(owner.classOpenVar, "Class Var Open")
|
||||
|
||||
assertEquals(owner.classFinalReadonly, "Class Readonly Final")
|
||||
assertEquals(owner.classFinalVar, "Class Default")
|
||||
|
||||
assertEquals(owner.classGetterOnly, "Class with Final Getter")
|
||||
assertEquals(owner.classOpenGetterOnly, "Class with Open Getter")
|
||||
|
||||
assertEquals(owner.classGetterAndSetter, "Class Getter and Setter by class getter")
|
||||
assertEquals(owner.classOpenGetterAndSetter, "Class Open Getter and Setter by class open getter")
|
||||
|
||||
assertEquals(owner.classSetterOnly, "Class setter only")
|
||||
|
||||
owner.classSetterOnly = "test1"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class setter only test1")
|
||||
|
||||
assertEquals(owner.classOpenSetterOnly, "Class open setter only")
|
||||
|
||||
owner.classOpenSetterOnly = "test2"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class open setter only test2")
|
||||
}
|
||||
|
||||
function testHiddenChild(pkg) {
|
||||
var owner = pkg.generateHiddenChild()
|
||||
|
||||
assertEquals(owner.hiddenDefaultVal, undefined)
|
||||
assertEquals(owner.hiddenDefaultGetter, undefined)
|
||||
assertEquals(owner.hiddenDefaultVar, undefined)
|
||||
|
||||
assertEquals(owner.interfaceValOpen, "Hidden Child Open Val")
|
||||
assertEquals(owner.interfaceVarOpen, "Hidden Child Open Var")
|
||||
|
||||
assertEquals(owner.interfaceGetterOnly, "Interface with Getter")
|
||||
|
||||
assertEquals(owner.classOpenReadonly, "Class Readonly Open")
|
||||
assertEquals(owner.classOpenVar, "Class Var Open")
|
||||
|
||||
assertEquals(owner.classFinalReadonly, "Class Readonly Final")
|
||||
assertEquals(owner.classFinalVar, "Class Default")
|
||||
|
||||
assertEquals(owner.classGetterOnly, "Class with Final Getter")
|
||||
assertEquals(owner.classOpenGetterOnly, "Class with Open Getter")
|
||||
|
||||
assertEquals(owner.classGetterAndSetter, "Class Getter and Setter by class getter")
|
||||
assertEquals(owner.classOpenGetterAndSetter, "Class Open Getter and Setter by class open getter")
|
||||
|
||||
assertEquals(owner.classSetterOnly, "Class setter only")
|
||||
|
||||
owner.classSetterOnly = "test1"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class setter only test1")
|
||||
|
||||
assertEquals(owner.classOpenSetterOnly, "Class open setter only")
|
||||
|
||||
owner.classOpenSetterOnly = "test2"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class open setter only test2")
|
||||
}
|
||||
|
||||
function testAnotherHiddenChild(pkg) {
|
||||
var owner = pkg.generateAnotherHiddenChild()
|
||||
|
||||
assertEquals(owner.hiddenDefaultVal, undefined)
|
||||
assertEquals(owner.hiddenDefaultGetter, undefined)
|
||||
assertEquals(owner.hiddenDefaultVar, undefined)
|
||||
|
||||
assertEquals(owner.interfaceValOpen, "Hidden Child Open Val")
|
||||
assertEquals(owner.interfaceVarOpen, "Hidden Child Open Var")
|
||||
|
||||
assertEquals(owner.interfaceGetterOnly, "Another One Hidden Child with Getter")
|
||||
|
||||
assertEquals(owner.classOpenReadonly, "Class Readonly Open")
|
||||
assertEquals(owner.classOpenVar, "Class Var Open")
|
||||
|
||||
assertEquals(owner.classFinalReadonly, "Class Readonly Final")
|
||||
assertEquals(owner.classFinalVar, "Class Default")
|
||||
|
||||
assertEquals(owner.classGetterOnly, "Class with Final Getter")
|
||||
assertEquals(owner.classOpenGetterOnly, "Class with Open Getter")
|
||||
|
||||
assertEquals(owner.classGetterAndSetter, "Class Getter and Setter by class getter")
|
||||
assertEquals(owner.classOpenGetterAndSetter, "Class Open Getter and Setter by class open getter")
|
||||
|
||||
owner.classSetterOnly = "test1"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class setter only test1")
|
||||
|
||||
owner.classOpenSetterOnly = "test2"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class open setter only test2")
|
||||
}
|
||||
|
||||
function testExportedChild(pkg) {
|
||||
var owner = pkg.generateAnotherHiddenChild()
|
||||
|
||||
assertEquals(owner.hiddenDefaultVal, undefined)
|
||||
assertEquals(owner.hiddenDefaultGetter, undefined)
|
||||
assertEquals(owner.hiddenDefaultVar, undefined)
|
||||
|
||||
assertEquals(owner.interfaceValOpen, "Hidden Child Open Val")
|
||||
assertEquals(owner.interfaceVarOpen, "Hidden Child Open Var")
|
||||
|
||||
assertEquals(owner.interfaceGetterOnly, "Another One Hidden Child with Getter")
|
||||
|
||||
assertEquals(owner.classOpenReadonly, "Exported Child Readonly Open")
|
||||
assertEquals(owner.classOpenVar, "Exported Child Var Open")
|
||||
|
||||
assertEquals(owner.classFinalReadonly, "Class Readonly Final")
|
||||
assertEquals(owner.classFinalVar, "Class Default")
|
||||
|
||||
assertEquals(owner.classGetterOnly, "Class with Final Getter")
|
||||
assertEquals(owner.classOpenGetterOnly, "Exported Child with Open Getter")
|
||||
|
||||
assertEquals(owner.classGetterAndSetter, "Class Getter and Setter by class getter")
|
||||
assertEquals(owner.classOpenGetterAndSetter, "Class Open Getter and Setter by exported child open getter")
|
||||
|
||||
assertEquals(owner.classSetterOnly, "Class setter only")
|
||||
|
||||
owner.classSetterOnly = "test1"
|
||||
assertEquals(owner.classOpenVar, "Class Changed by class setter only test1")
|
||||
|
||||
assertEquals(owner.classOpenSetterOnly, "Class open setter only")
|
||||
|
||||
owner.classOpenSetterOnly = "test2"
|
||||
assertEquals(owner.classOpenVar, "Exported Child Changed by class open setter only test2")
|
||||
}
|
||||
|
||||
function box() {
|
||||
var pkg = this["export_class_properties"]
|
||||
|
||||
testOwner(pkg)
|
||||
testHiddenChild(pkg)
|
||||
testAnotherHiddenChild(pkg)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user