[K/JS] Use intrinsics instead of new functions in IR backend.
This commit is contained in:
@@ -117,6 +117,10 @@ internal fun jsBitShiftL(a: Any?, b: Any?): Int
|
||||
@JsIntrinsic
|
||||
internal fun jsInstanceOfIntrinsic(a: Any?, b: Any?): Boolean
|
||||
|
||||
// @JsIntrinsic
|
||||
// To prevent people to insert @OptIn every time
|
||||
public external fun jsTypeOf(a: Any?): String
|
||||
|
||||
@JsIntrinsic
|
||||
internal fun jsNewTarget(a: Any?): Any?
|
||||
|
||||
@@ -216,4 +220,4 @@ internal fun <reified T : Any> jsClassIntrinsic(): JsClass<T>
|
||||
internal fun jsInIntrinsic(lhs: Any?, rhs: Any): Boolean
|
||||
|
||||
@JsIntrinsic
|
||||
internal fun jsDelete(e: Any?)
|
||||
internal fun jsDelete(e: Any?)
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright 2010-2022 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.
|
||||
*/
|
||||
package kotlin.js
|
||||
|
||||
// Inlined intrinsics for backward compatibility with already implemented functions in stdlib for old JS backend
|
||||
@OptIn(JsIntrinsic::class)
|
||||
@kotlin.internal.InlineOnly
|
||||
internal inline fun jsDeleteProperty(obj: dynamic, property: Any) = jsDelete(obj[property])
|
||||
|
||||
@OptIn(JsIntrinsic::class)
|
||||
@kotlin.internal.InlineOnly
|
||||
internal inline fun jsBitwiseOr(lhs: Any?, rhs: Any?): Int = jsBitOr(lhs, rhs)
|
||||
|
||||
@OptIn(JsIntrinsic::class)
|
||||
@kotlin.internal.InlineOnly
|
||||
internal inline fun jsBitwiseAnd(lhs: Any?, rhs: Any?): Int = jsBitAnd(lhs, rhs)
|
||||
|
||||
@OptIn(JsIntrinsic::class)
|
||||
@kotlin.internal.InlineOnly
|
||||
internal inline fun jsInstanceOf(obj: Any?, jsClass: Any?): Boolean = jsInstanceOfIntrinsic(obj, jsClass)
|
||||
|
||||
@OptIn(JsIntrinsic::class)
|
||||
@kotlin.internal.InlineOnly
|
||||
internal inline fun jsIn(lhs: Any?, rhs: Any): Boolean = jsInIntrinsic(lhs, rhs)
|
||||
Reference in New Issue
Block a user