[JS IR BE] Add intrinsic for hashCode on String
This commit is contained in:
@@ -145,6 +145,7 @@ class JsIntrinsics(private val irBuiltIns: IrBuiltIns, val context: JsIrBackendC
|
||||
val jsHashCode = getInternalFunction("hashCode")
|
||||
val jsGetNumberHashCode = getInternalFunction("getNumberHashCode")
|
||||
val jsGetObjectHashCode = getInternalFunction("getObjectHashCode")
|
||||
val jsGetStringHashCode = getInternalFunction("getStringHashCode")
|
||||
val jsToString = getInternalFunction("toString")
|
||||
val jsAnyToString = getInternalFunction("anyToString")
|
||||
val jsCompareTo = getInternalFunction("compareTo")
|
||||
|
||||
+6
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
@@ -7,15 +7,12 @@ package org.jetbrains.kotlin.ir.backend.js.lower.calls
|
||||
|
||||
import org.jetbrains.kotlin.ir.backend.js.JsIrBackendContext
|
||||
import org.jetbrains.kotlin.ir.declarations.IrConstructor
|
||||
import org.jetbrains.kotlin.ir.expressions.IrCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionAccessExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||
import org.jetbrains.kotlin.ir.util.getSimpleFunction
|
||||
import org.jetbrains.kotlin.ir.util.getPropertyGetter
|
||||
import org.jetbrains.kotlin.ir.util.getSimpleFunction
|
||||
|
||||
class PrimitiveContainerMemberCallTransformer(private val context: JsIrBackendContext) : CallsTransformer {
|
||||
private val intrinsics = context.intrinsics
|
||||
@@ -48,6 +45,7 @@ class PrimitiveContainerMemberCallTransformer(private val context: JsIrBackendCo
|
||||
}
|
||||
}
|
||||
|
||||
add(context.irBuiltIns.stringClass.hashCodeFunction, intrinsics.jsGetStringHashCode, true)
|
||||
add(context.irBuiltIns.stringClass.lengthProperty, context.intrinsics.jsArrayLength, true)
|
||||
add(context.irBuiltIns.stringClass.getFunction, intrinsics.jsCharSequenceGet, true)
|
||||
add(context.irBuiltIns.stringClass.subSequence, intrinsics.jsCharSequenceSubSequence, true)
|
||||
@@ -89,3 +87,6 @@ private val IrClassSymbol.lengthProperty
|
||||
|
||||
private val IrClassSymbol.subSequence
|
||||
get() = getSimpleFunction("subSequence")!!
|
||||
|
||||
private val IrClassSymbol.hashCodeFunction
|
||||
get() = getSimpleFunction("hashCode")!!
|
||||
|
||||
Reference in New Issue
Block a user