blob: d560ec42ff5a400c08ff4a71420c65adf9531bc4 [file]
// TARGET_BACKEND: WASM
// WITH_STDLIB
fun jsUpper(s: JsString): JsString = js("s.toUpperCase()")
fun jsSlice1(s: JsString): JsString = js("s.slice(1)")
fun jsConcat(a: JsString, b: JsString): JsString = js("a + b")
fun jsIsPrimitiveString(s: JsString): Boolean = js("typeof s === 'string' && !(s instanceof String)")
fun box(): String {
val s = "Привет🚀\u0000e\u0301"
val jsS = s.toJsString()
if (!jsIsPrimitiveString(jsS)) return "Fail1"
val up = jsUpper(jsS).toString()
if (up != "ПРИВЕТ🚀\u0000E\u0301") return "Fail2"
val sl = jsSlice1(jsS).toString()
if (sl != "ривет🚀\u0000e\u0301") return "Fail3"
val joined = jsConcat("<<".toJsString(), jsS).toString()
if (joined != "<<$s") return "Fail4"
if (jsS.toString() != s) return "Fail5"
return "OK"
}