[K/JS] Prepare JS Plain Objects plugin to publication

This commit is contained in:
Artem Kobzar
2024-01-17 10:52:58 +00:00
committed by Space Team
parent 561be747c1
commit dfe2d8651e
53 changed files with 479 additions and 393 deletions
@@ -0,0 +1,27 @@
// FIR_IDENTICAL
// SKIP_TXT
// FILE: test.kt
import kotlinx.js.JsPlainObject
external interface A
external interface B
external interface C
@JsPlainObject
external interface D : <!JS_PLAIN_OBJECT_CAN_EXTEND_ONLY_OTHER_JS_PLAIN_OBJECTS!>A<!>, <!JS_PLAIN_OBJECT_CAN_EXTEND_ONLY_OTHER_JS_PLAIN_OBJECTS!>B<!>, <!JS_PLAIN_OBJECT_CAN_EXTEND_ONLY_OTHER_JS_PLAIN_OBJECTS!>C<!>
@JsPlainObject
external interface E
@JsPlainObject
external interface F
@JsPlainObject
external interface DEF: D, E, F
external interface G: A, C, <!IMPLEMENTING_OF_JS_PLAIN_OBJECT_IS_NOT_SUPPORTED!>E<!>
class Foo : A, <!IMPLEMENTING_OF_JS_PLAIN_OBJECT_IS_NOT_SUPPORTED!>D<!>, B
@@ -0,0 +1,15 @@
// FIR_IDENTICAL
// SKIP_TXT
// FILE: test.kt
import kotlinx.js.JsPlainObject
@JsPlainObject
external interface Foo {
val foo: String
val bar: Int?
val fn: () -> String
val fnOptional: (() -> String)?
<!METHODS_ARE_NOT_ALLOWED_INSIDE_JS_PLAIN_OBJECT!>fun test(): String<!>
}
@@ -0,0 +1,28 @@
// FIR_IDENTICAL
// SKIP_TXT
// FILE: test.kt
import kotlinx.js.JsPlainObject
<!NON_EXTERNAL_DECLARATIONS_NOT_SUPPORTED("class")!>@JsPlainObject
class Regular1<!>
@JsPlainObject
<!NON_EXTERNAL_DECLARATIONS_NOT_SUPPORTED("object")!>object Regular2<!>
<!NON_EXTERNAL_DECLARATIONS_NOT_SUPPORTED("enum class")!>@JsPlainObject
enum class Regular3<!>
<!ONLY_INTERFACES_ARE_SUPPORTED("class")!>@JsPlainObject
external class External1<!>
@JsPlainObject
external <!ONLY_INTERFACES_ARE_SUPPORTED("object")!>object External2<!>
@JsPlainObject
external interface External3
external class Nested {
@JsPlainObject
interface Inner
}