| // FIR_IDENTICAL |
| |
| @OptIn(ExperimentalStdlibApi::class) |
| fun anyExample(@JsExternalArgument x : Any) = x |
| |
| @OptIn(ExperimentalStdlibApi::class) |
| fun anyOrNullExample(@JsExternalArgument x : Any?) = x |
| |
| @OptIn(ExperimentalStdlibApi::class) |
| fun <T> genericExample(@JsExternalArgument x : T) = x |
| |
| @OptIn(ExperimentalStdlibApi::class) |
| fun <T> genericOrNullExample(@JsExternalArgument x : T?) = x |
| |
| @OptIn(ExperimentalStdlibApi::class) |
| fun dynamicExample(@JsExternalArgument x : dynamic) = x |
| |
| @OptIn(ExperimentalStdlibApi::class) |
| fun severalParams(@JsExternalArgument x : Any?, @JsExternalArgument y : Any?, @JsExternalArgument z : dynamic) = x ?: y ?: z |
| |
| external interface ExternalInterface |
| |
| fun boxExternalInterface(i: ExternalInterface) { |
| anyExample(i) |
| anyOrNullExample(i) |
| genericExample(i) |
| genericOrNullExample(i) |
| dynamicExample(i) |
| } |
| |
| fun boxExternalInterfaceOrNull(iOrNull: ExternalInterface?) { |
| anyOrNullExample(iOrNull) |
| genericExample(iOrNull) |
| genericOrNullExample(iOrNull) |
| dynamicExample(iOrNull) |
| } |
| |
| external class ExternalClass |
| |
| fun boxExternalClass(c: ExternalClass) { |
| anyExample(c) |
| anyOrNullExample(c) |
| genericExample(c) |
| genericOrNullExample(c) |
| dynamicExample(c) |
| } |
| |
| external object ExternalObject |
| |
| fun boxExternalObject() { |
| anyExample(ExternalObject) |
| anyOrNullExample(ExternalObject) |
| genericExample(ExternalObject) |
| genericOrNullExample(ExternalObject) |
| dynamicExample(ExternalObject) |
| } |
| |
| interface Interface |
| |
| fun boxInterface(i: Interface) { |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>i<!>) |
| anyOrNullExample(<!JS_EXTERNAL_ARGUMENT!>i<!>) |
| genericExample(<!JS_EXTERNAL_ARGUMENT!>i<!>) |
| genericOrNullExample(<!JS_EXTERNAL_ARGUMENT!>i<!>) |
| dynamicExample(<!JS_EXTERNAL_ARGUMENT!>i<!>) |
| } |
| |
| fun boxInterfaceOrNull(iOrNull: Interface?) { |
| anyOrNullExample(<!JS_EXTERNAL_ARGUMENT!>iOrNull<!>) |
| genericExample(<!JS_EXTERNAL_ARGUMENT!>iOrNull<!>) |
| genericOrNullExample(<!JS_EXTERNAL_ARGUMENT!>iOrNull<!>) |
| dynamicExample(<!JS_EXTERNAL_ARGUMENT!>iOrNull<!>) |
| } |
| |
| class Class |
| |
| fun boxInterface(c: Class) { |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>c<!>) |
| anyOrNullExample(<!JS_EXTERNAL_ARGUMENT!>c<!>) |
| genericExample(<!JS_EXTERNAL_ARGUMENT!>c<!>) |
| genericOrNullExample(<!JS_EXTERNAL_ARGUMENT!>c<!>) |
| dynamicExample(<!JS_EXTERNAL_ARGUMENT!>c<!>) |
| } |
| |
| object Object |
| |
| fun boxObject() { |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>Object<!>) |
| anyOrNullExample(<!JS_EXTERNAL_ARGUMENT!>Object<!>) |
| genericExample(<!JS_EXTERNAL_ARGUMENT!>Object<!>) |
| genericOrNullExample(<!JS_EXTERNAL_ARGUMENT!>Object<!>) |
| dynamicExample(<!JS_EXTERNAL_ARGUMENT!>Object<!>) |
| } |
| |
| fun boxDynamic(d: dynamic) { |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>d<!>) |
| anyOrNullExample(<!JS_EXTERNAL_ARGUMENT!>d<!>) |
| genericExample(<!JS_EXTERNAL_ARGUMENT!>d<!>) |
| genericOrNullExample(<!JS_EXTERNAL_ARGUMENT!>d<!>) |
| dynamicExample(<!JS_EXTERNAL_ARGUMENT!>d<!>) |
| } |
| |
| fun boxPrimitiveTypes() { |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>1<!>) |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>1.2<!>) |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>true<!>) |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>"hello"<!>) |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>{}<!>) |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>{}()<!>) |
| anyOrNullExample(<!JS_EXTERNAL_ARGUMENT!>null<!>) |
| } |
| |
| fun boxArgExpression(i: Interface, iOrNull: Interface?) { |
| anyExample(<!JS_EXTERNAL_ARGUMENT!>iOrNull ?: i<!>) |
| } |
| |
| fun boxNamedArgExpression(i: Interface, iOrNull: Interface?, d: dynamic) { |
| anyExample(x = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: i<!>) |
| |
| severalParams( |
| x = <!JS_EXTERNAL_ARGUMENT!>i<!>, |
| y = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: i<!>, |
| z = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: d<!> |
| ) |
| |
| severalParams( |
| z = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: d<!>, |
| x = <!JS_EXTERNAL_ARGUMENT!>i<!>, |
| y = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: i<!> |
| ) |
| |
| severalParams( |
| <!JS_EXTERNAL_ARGUMENT!>i<!>, |
| z = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: d<!>, |
| y = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: i<!> |
| ) |
| |
| severalParams( |
| x = <!JS_EXTERNAL_ARGUMENT!>i<!>, |
| y = ExternalObject, |
| z = <!JS_EXTERNAL_ARGUMENT!>iOrNull ?: d<!> |
| ) |
| } |