diff --git a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/LongOperationFIF.kt b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/LongOperationFIF.kt index f28f769c110..b68d51fdca1 100644 --- a/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/LongOperationFIF.kt +++ b/js/js.translator/src/org/jetbrains/kotlin/js/translate/intrinsic/functions/factories/LongOperationFIF.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2015 JetBrains s.r.o. + * Copyright 2010-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,12 +29,12 @@ import org.jetbrains.kotlin.utils.identity as ID object LongOperationFIF : FunctionIntrinsicFactory { val LONG_EQUALS_ANY = pattern("Long.equals") - val LONG_BINARY_OPERATION_LONG = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod|and|or|xor(Long)") + val LONG_BINARY_OPERATION_LONG = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod|rem|and|or|xor(Long)") val LONG_BIT_SHIFTS = pattern("Long.shl|shr|ushr(Int)") - val LONG_BINARY_OPERATION_INTEGER = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod(Int|Short|Byte)") - val LONG_BINARY_OPERATION_FLOATING_POINT = pattern("Long.compareTo|plus|minus|times|div|mod(Double|Float)") - val INTEGER_BINARY_OPERATION_LONG = pattern("Int|Short|Byte.compareTo|rangeTo|plus|minus|times|div|mod(Long)") - val FLOATING_POINT_BINARY_OPERATION_LONG = pattern("Double|Float.compareTo|plus|minus|times|div|mod(Long)") + val LONG_BINARY_OPERATION_INTEGER = pattern("Long.compareTo|rangeTo|plus|minus|times|div|mod|rem(Int|Short|Byte)") + val LONG_BINARY_OPERATION_FLOATING_POINT = pattern("Long.compareTo|plus|minus|times|div|mod|rem(Double|Float)") + val INTEGER_BINARY_OPERATION_LONG = pattern("Int|Short|Byte.compareTo|rangeTo|plus|minus|times|div|mod|rem(Long)") + val FLOATING_POINT_BINARY_OPERATION_LONG = pattern("Double|Float.compareTo|plus|minus|times|div|mod|rem(Long)") private val longBinaryIntrinsics = ( @@ -47,6 +47,7 @@ object LongOperationFIF : FunctionIntrinsicFactory { "times" to "multiply", "div" to "div", "mod" to "modulo", + "rem" to "modulo", "shl" to "shiftLeft", "shr" to "shiftRight", "ushr" to "shiftRightUnsigned", @@ -62,7 +63,8 @@ object LongOperationFIF : FunctionIntrinsicFactory { "minus" to BaseBinaryIntrinsic(::subtract), "times" to BaseBinaryIntrinsic(::mul), "div" to BaseBinaryIntrinsic(::div), - "mod" to BaseBinaryIntrinsic(::mod) + "mod" to BaseBinaryIntrinsic(::mod), + "rem" to BaseBinaryIntrinsic(::mod) ) class BaseBinaryIntrinsic(val applyFun: (left: JsExpression, right: JsExpression) -> JsExpression) : FunctionIntrinsic() {