JS: optimize range check for int and long

See KT-2218

Additionally, fix temporary variable elimination for && and ||
This commit is contained in:
Alexey Andreev
2017-10-25 16:36:25 +03:00
parent 43302ce00c
commit 1be86e05ae
10 changed files with 259 additions and 5 deletions
@@ -119,6 +119,8 @@ var JsName.imported by MetadataProperty(default = false)
var JsFunction.coroutineMetadata: CoroutineMetadata? by MetadataProperty(default = null)
var JsExpression.range: Pair<RangeType, RangeKind>? by MetadataProperty(default = null)
data class CoroutineMetadata(
val doResumeName: JsName,
val stateName: JsName,
@@ -161,4 +163,14 @@ enum class BoxingKind {
NONE,
BOXING,
UNBOXING
}
enum class RangeType {
INT,
LONG
}
enum class RangeKind {
RANGE_TO,
UNTIL
}