KT-12877: add JsNonModule with support on front-end
This commit is contained in:
committed by
Alexey Andreev
parent
3f2ec6871d
commit
0238b182cc
@@ -0,0 +1,39 @@
|
||||
// MODULE: m1
|
||||
// FILE: a.kt
|
||||
package foo
|
||||
|
||||
import kotlin.js.*
|
||||
|
||||
@JsModule("A") @native object A {
|
||||
fun f(): Int
|
||||
|
||||
val g: Int
|
||||
}
|
||||
|
||||
@JsModule("B") @native open class B {
|
||||
fun foo(): Int
|
||||
}
|
||||
|
||||
@JsModule("bar") @native fun bar(): Unit
|
||||
|
||||
// MODULE: m2(m1)
|
||||
// FILE: b.kt
|
||||
// TODO: it's hard to test @JsNonModule on file from an external module
|
||||
@file:JsModule("foo")
|
||||
package foo
|
||||
|
||||
@native fun baz(): Unit
|
||||
|
||||
// FILE: c.kt
|
||||
package bar
|
||||
|
||||
import foo.*
|
||||
|
||||
fun box() {
|
||||
A.<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>f<!>()+A.<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>g<!>
|
||||
<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>B<!>()
|
||||
<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>bar<!>()
|
||||
<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>baz<!>()
|
||||
}
|
||||
|
||||
@native class DerivedB : <!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>B<!>()
|
||||
@@ -0,0 +1,43 @@
|
||||
// -- Module: <m1> --
|
||||
package
|
||||
|
||||
package foo {
|
||||
@kotlin.js.JsModule(import = "bar") @kotlin.js.native public fun bar(): kotlin.Unit
|
||||
|
||||
@kotlin.js.JsModule(import = "A") @kotlin.js.native public object A {
|
||||
private constructor A()
|
||||
public final val g: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun f(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.js.JsModule(import = "B") @kotlin.js.native public open class B {
|
||||
public constructor B()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m2> --
|
||||
package
|
||||
|
||||
package bar {
|
||||
public fun box(): kotlin.Unit
|
||||
|
||||
@kotlin.js.native public final class DerivedB : foo.B {
|
||||
public constructor DerivedB()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
package foo {
|
||||
@kotlin.js.native public fun baz(): kotlin.Unit
|
||||
}
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
// MODULE: m1
|
||||
// FILE: a.kt
|
||||
package foo
|
||||
|
||||
import kotlin.js.*
|
||||
|
||||
@JsNonModule @native object A {
|
||||
fun f(): Int
|
||||
|
||||
val g: Int
|
||||
}
|
||||
|
||||
@JsNonModule @native open class B {
|
||||
fun foo(): Int
|
||||
}
|
||||
|
||||
@JsNonModule @native fun bar(): Unit
|
||||
|
||||
// MODULE: m2(m1)
|
||||
// MODULE_KIND: AMD
|
||||
// TODO: it's hard to test @JsNonModule on file from an external module
|
||||
// FILE: c.kt
|
||||
package bar
|
||||
|
||||
import foo.*
|
||||
|
||||
fun box() {
|
||||
A.<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>f<!>()+A.<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>g<!>
|
||||
<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>B<!>()
|
||||
<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>bar<!>()
|
||||
}
|
||||
|
||||
@native class DerivedB : <!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>B<!>()
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package
|
||||
|
||||
package bar {
|
||||
public fun box(): kotlin.Unit
|
||||
|
||||
@kotlin.js.native public final class DerivedB : foo.B {
|
||||
public constructor DerivedB()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
package foo {
|
||||
@kotlin.js.JsNonModule @kotlin.js.native public fun bar(): kotlin.Unit
|
||||
|
||||
@kotlin.js.JsNonModule @kotlin.js.native public object A {
|
||||
private constructor A()
|
||||
public final val g: kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun f(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
@kotlin.js.JsNonModule @kotlin.js.native public open class B {
|
||||
public constructor B()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final fun foo(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user