Fix for value equality in JS
This commit is contained in:
parent
56679cff23
commit
d1061a6669
@ -133,12 +133,12 @@ class NumberValue(override val number: Number) : Value {
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is Value) return false
|
||||
return when (number) {
|
||||
is Short -> number == other.number.toShort()
|
||||
is Long -> number == other.number.toLong()
|
||||
is Byte -> number == other.number.toByte()
|
||||
is Int -> number == other.number.toInt()
|
||||
is Float -> number == other.number.toFloat()
|
||||
is Double -> number == other.number.toDouble()
|
||||
is Short -> number.toShort() == other.number.toShort()
|
||||
is Long -> number.toLong() == other.number.toLong()
|
||||
is Byte -> number.toByte() == other.number.toByte()
|
||||
is Int -> number.toInt() == other.number.toInt()
|
||||
is Float -> number.toFloat() == other.number.toFloat()
|
||||
is Double -> number.toDouble() == other.number.toDouble()
|
||||
else -> number.toString() == other.number.toString()
|
||||
}
|
||||
}
|
||||
|
@ -27,7 +27,8 @@ class HtmlOutput<T : Any>(override val context: Context, private val consumer: T
|
||||
} else {
|
||||
val value = cache[obj::class]
|
||||
if (value == null) {
|
||||
val answer = context.top<HtmlBuilder<*>>(HTML_CONVERTER_TYPE).values.firstOrNull { it.type.isInstance(obj) }
|
||||
val answer =
|
||||
context.top<HtmlBuilder<*>>(HTML_CONVERTER_TYPE).values.firstOrNull { it.type.isInstance(obj) }
|
||||
if (answer != null) {
|
||||
cache[obj::class] = answer
|
||||
answer
|
||||
@ -39,6 +40,7 @@ class HtmlOutput<T : Any>(override val context: Context, private val consumer: T
|
||||
}
|
||||
}
|
||||
context.launch(Dispatchers.Output) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
(builder as HtmlBuilder<T>).run { consumer.render(obj) }
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user