93 lines
2.6 KiB
Kotlin
Vendored
93 lines
2.6 KiB
Kotlin
Vendored
// TARGET_BACKEND: WASM
|
|
|
|
// FILE: 1.mjs
|
|
|
|
export function add(x, y) { return x + y; }
|
|
|
|
export function giveMeFive(x) {
|
|
if (x !== 5)
|
|
throw "I expected 5";
|
|
}
|
|
|
|
// FILE: 2.mjs
|
|
|
|
function sub(x, y) { return x - y; };
|
|
|
|
export { sub };
|
|
export { sub as "(˹˻𔗎⁽₍❨❪⟮﴾︵﹙(⦅❲❴⟦⟨⟪⟬⦇⦉⦕⸢⸤︗︷︹︻︽︿﹁﹃﹇﹛﹝[{「«‘“‹❮" }
|
|
export { sub as "~!@#\$%^&*()_+\`-={}|[]\\\\:\\\";'<>?,./" }
|
|
export { sub as "" }
|
|
export { sub as "\n \r \t" }
|
|
export default sub;
|
|
|
|
// FILE: 3.mjs
|
|
|
|
export function provideUByte() { return -1 }
|
|
|
|
export function provideUShort() { return -1 }
|
|
|
|
export function provideUInt() { return -1 }
|
|
|
|
export function provideULong() { return -1n }
|
|
|
|
// FILE: wasmImport.kt
|
|
import kotlin.wasm.WasmImport
|
|
|
|
@WasmImport("./1.mjs", "add")
|
|
external fun addImportRenamed(x: Int, y: Int): Int
|
|
|
|
@WasmImport("./1.mjs")
|
|
external fun giveMeFive(x: Int): Unit // Test unit return type
|
|
|
|
@WasmImport("./1.mjs")
|
|
external fun add(x: Int, y: Int): Int
|
|
|
|
@WasmImport("./2.mjs")
|
|
external fun sub(x: Float, y: Float): Float
|
|
|
|
@WasmImport("./2.mjs", "(˹˻𔗎⁽₍❨❪⟮﴾︵﹙(⦅❲❴⟦⟨⟪⟬⦇⦉⦕⸢⸤︗︷︹︻︽︿﹁﹃﹇﹛﹝[{「«‘“‹❮")
|
|
external fun sub2(x: Float, y: Float): Float
|
|
|
|
@WasmImport("./2.mjs", "~!@#\$%^&*()_+`-={}|[]\\\\:\\\";'<>?,./")
|
|
external fun sub3(x: Float, y: Float): Float
|
|
|
|
@WasmImport("./2.mjs", "")
|
|
external fun sub4(x: Float, y: Float): Float
|
|
|
|
@WasmImport("./2.mjs", "\n \r \t")
|
|
external fun sub5(x: Float, y: Float): Float
|
|
|
|
@WasmImport("./2.mjs", "default")
|
|
external fun sub6(x: Float, y: Float): Float
|
|
|
|
@WasmImport("./3.mjs", "provideUByte")
|
|
external fun provideUByte(): UByte
|
|
|
|
@WasmImport("./3.mjs", "provideUShort")
|
|
external fun provideUShort(): UShort
|
|
|
|
@WasmImport("./3.mjs", "provideUInt")
|
|
external fun provideUInt(): UInt
|
|
|
|
@WasmImport("./3.mjs", "provideULong")
|
|
external fun provideULong(): ULong
|
|
|
|
fun box(): String {
|
|
if (addImportRenamed(5, 6) != 11) return "Fail1"
|
|
if (add(5, 6) != 11) return "Fail1"
|
|
giveMeFive(5)
|
|
|
|
if (sub(5f, 6f) != -1f) return "Fail2"
|
|
if (sub2(5f, 6f) != -1f) return "Fail3"
|
|
if (sub3(5f, 6f) != -1f) return "Fail4"
|
|
if (sub4(5f, 6f) != -1f) return "Fail5"
|
|
if (sub5(5f, 6f) != -1f) return "Fail6"
|
|
if (sub6(5f, 6f) != -1f) return "Fail7"
|
|
|
|
if (provideUByte() != UByte.MAX_VALUE) return "Fail9"
|
|
if (provideUShort() != UShort.MAX_VALUE) return "Fail10"
|
|
if (provideUInt() != UInt.MAX_VALUE) return "Fail11"
|
|
if (provideULong() != ULong.MAX_VALUE) return "Fail12"
|
|
|
|
return "OK"
|
|
} |