JS: verified that String concatenation with large Long's is fixed (KT-8666)

This commit is contained in:
Anton Bannykh
2017-01-30 20:02:59 +03:00
parent 20f9e67244
commit f5a431490c
5 changed files with 42 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
val MAX_LONG = "9223372036854775807"
val PREFIX = "max = "
fun box(): String {
if (MAX_LONG != "${Long.MAX_VALUE}") return "fail template"
if (MAX_LONG != "" + Long.MAX_VALUE) return "fail \"\" +"
if (MAX_LONG != "".plus(Long.MAX_VALUE)) return "fail \"\".plus"
if (MAX_LONG != (String::plus)("", Long.MAX_VALUE)) return "fail String::plus"
if (MAX_LONG != (""::plus)(Long.MAX_VALUE)) return "fail \"\"::plus"
if (PREFIX + MAX_LONG != "max = ${Long.MAX_VALUE}") return "fail template with prefix"
if (PREFIX + MAX_LONG != PREFIX + Long.MAX_VALUE) return "fail \"$PREFIX\" +"
if (PREFIX + MAX_LONG != PREFIX.plus(Long.MAX_VALUE)) return "fail \"$PREFIX\".plus"
if (PREFIX + MAX_LONG != (String::plus)(PREFIX, Long.MAX_VALUE)) return "fail String::plus($PREFIX, ...)"
if (PREFIX + MAX_LONG != (PREFIX::plus)(Long.MAX_VALUE)) return "fail \"$PREFIX\"::plus"
return "OK"
}