blob: 8a00467ed1e00c484d951b64b190bdfd8c98dab6 [file]
package foo
import kotlinx.js.JsPlainObject
@JsPlainObject
external interface User {
var name: String
val age: Int
val email: String?
}
fun box(): String {
val user = User(name = "Name", age = 10)
if (user.name != "Name") return "Fail: problem with `name` property"
if (user.age != 10) return "Fail: problem with `age` property"
val json = js("JSON.stringify(user)")
if (json != "{\"name\":\"Name\",\"age\":10}") return "Fail: got the next json: $json"
val withEmail = User(name = "Name", age = 10, email = "test@test")
if (withEmail.name != "Name") return "Fail: problem with emailed `name` property"
if (withEmail.age != 10) return "Fail: problem with emailed `age` property"
if (withEmail.email != "test@test") return "Fail: problem with emailed `email` property"
val jsonWithEmail = js("JSON.stringify(withEmail)")
if (jsonWithEmail != "{\"name\":\"Name\",\"age\":10,\"email\":\"test@test\"}") return "Fail: got the next emailed json: $jsonWithEmail"
return "OK"
}