[JS IR BE] Add ranges to runtime, rangeTo for primitive numbers

This commit is contained in:
Svyatoslav Kuzmich
2018-07-03 15:29:33 +03:00
parent 4c38899a2a
commit 1abb4f42ac
93 changed files with 59 additions and 99 deletions
+6 -1
View File
@@ -55,10 +55,15 @@ open class UnsupportedOperationException(message: String?, cause: Throwable?) :
constructor(cause: Throwable?) : this(null, cause)
}
open class NoSuchElementException(message: String?, cause: Throwable?) : RuntimeException(message, cause) {
constructor() : this(null, null)
constructor(message: String?) : this(message, null)
}
// TODO: fix function names to satisfy style convention (depends on built-in names)
fun THROW_CCE() {
throw ClassCastException()
}
fun THROW_NPE() {
throw NullPointerException()
}
}
+15
View File
@@ -0,0 +1,15 @@
/*
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
* that can be found in the license/LICENSE.txt file.
*/
package kotlin.js
// Creates IntRange for {Byte, Short, Int}.rangeTo(x: {Byte, Short, Int})
fun numberRangeToNumber(start: dynamic, endInclusive: dynamic) =
IntRange(start, endInclusive)
// Create LongRange for {Byte, Short, Int}.rangeTo(x: Long)
// Long.rangeTo(x: *) should be implemented in Long class
fun numberRangeToLong(start: dynamic, endInclusive: dynamic) =
LongRange(numberToLong(start), endInclusive)