diff --git a/js/js.translator/testData/box/char/topLevelCallables.kt b/js/js.translator/testData/box/char/topLevelCallables.kt index 02282b69c38..6c25996fd62 100644 --- a/js/js.translator/testData/box/char/topLevelCallables.kt +++ b/js/js.translator/testData/box/char/topLevelCallables.kt @@ -1,4 +1,5 @@ // SKIP_MINIFICATION +// IGNORE_BACKEND: JS_IR @JsName("foo") @JsExport fun foo(): Char = '1' diff --git a/js/js.translator/testData/box/coercion/bridgeChar.kt b/js/js.translator/testData/box/coercion/bridgeChar.kt index 894b781a4d8..eda0ef634fa 100644 --- a/js/js.translator/testData/box/coercion/bridgeChar.kt +++ b/js/js.translator/testData/box/coercion/bridgeChar.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1293 +// IGNORE_BACKEND: JS_IR open class A { fun foo(): Char = 'X' } diff --git a/js/js.translator/testData/box/coercion/charValParameter.kt b/js/js.translator/testData/box/coercion/charValParameter.kt index 050ad57c5e4..97ef1bdee0f 100644 --- a/js/js.translator/testData/box/coercion/charValParameter.kt +++ b/js/js.translator/testData/box/coercion/charValParameter.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1276 +// IGNORE_BACKEND: JS_IR class A(val x: Char) fun typeOf(x: dynamic): String = js("typeof x") diff --git a/js/js.translator/testData/box/coercion/defaultAccessors.kt b/js/js.translator/testData/box/coercion/defaultAccessors.kt index 4768c3549c6..d470bde747d 100644 --- a/js/js.translator/testData/box/coercion/defaultAccessors.kt +++ b/js/js.translator/testData/box/coercion/defaultAccessors.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1288 +// IGNORE_BACKEND: JS_IR interface I { val a: Char } diff --git a/js/js.translator/testData/box/coercion/derivedFunctionReturningChar.kt b/js/js.translator/testData/box/coercion/derivedFunctionReturningChar.kt index 87f84604411..b7ad5693fd7 100644 --- a/js/js.translator/testData/box/coercion/derivedFunctionReturningChar.kt +++ b/js/js.translator/testData/box/coercion/derivedFunctionReturningChar.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1292 +// IGNORE_BACKEND: JS_IR abstract class A { abstract fun foo(): T } diff --git a/js/js.translator/testData/box/coercion/extensionReceiver.kt b/js/js.translator/testData/box/coercion/extensionReceiver.kt index 1b247053d73..2d5e6654ca8 100644 --- a/js/js.translator/testData/box/coercion/extensionReceiver.kt +++ b/js/js.translator/testData/box/coercion/extensionReceiver.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1282 +// IGNORE_BACKEND: JS_IR fun box(): String { val a = 'Q'.foo() if (a != "number") return "fail1: $a" diff --git a/js/js.translator/testData/box/coercion/lambdaParameters.kt b/js/js.translator/testData/box/coercion/lambdaParameters.kt index 8b54c9d9ed4..979da14a381 100644 --- a/js/js.translator/testData/box/coercion/lambdaParameters.kt +++ b/js/js.translator/testData/box/coercion/lambdaParameters.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1283 +// IGNORE_BACKEND: JS_IR // CHECK_NOT_CALLED_IN_SCOPE: function=toBoxedChar scope=box$lambda // CHECK_CALLED_IN_SCOPE: function=unboxChar scope=box$lambda // CHECK_CALLED_IN_SCOPE: function=toBoxedChar scope=box diff --git a/js/js.translator/testData/box/coercion/propertyBridgeChar.kt b/js/js.translator/testData/box/coercion/propertyBridgeChar.kt index 87e1924428e..aaec1ac98a6 100644 --- a/js/js.translator/testData/box/coercion/propertyBridgeChar.kt +++ b/js/js.translator/testData/box/coercion/propertyBridgeChar.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1289 +// IGNORE_BACKEND: JS_IR open class A { val foo: Char get() = 'X' diff --git a/js/js.translator/testData/box/coercion/receiverSmartCast.kt b/js/js.translator/testData/box/coercion/receiverSmartCast.kt index 0ba720655bc..5d81279dc31 100644 --- a/js/js.translator/testData/box/coercion/receiverSmartCast.kt +++ b/js/js.translator/testData/box/coercion/receiverSmartCast.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1283 +// IGNORE_BACKEND: JS_IR fun foo(x: Any): String { return when (x) { is Char -> "char: ${x.toInt()}" diff --git a/js/js.translator/testData/box/reflection/primitives-11.kt b/js/js.translator/testData/box/reflection/primitives-11.kt index 6cd46ff71b0..f16efce7fe2 100644 --- a/js/js.translator/testData/box/reflection/primitives-11.kt +++ b/js/js.translator/testData/box/reflection/primitives-11.kt @@ -1,6 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1290 // LANGUAGE_VERSION: 1.1 -// IGNORE_BACKEND: JS_IR import kotlin.reflect.KClass fun box(): String { diff --git a/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt b/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt index 595386fee49..bc0bd75da93 100644 --- a/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt +++ b/js/js.translator/testData/box/standardClasses/arrayFactoryMethods.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1293 +// IGNORE_BACKEND: JS_IR package foo diff --git a/js/js.translator/testData/box/standardClasses/charArrayGetSet.kt b/js/js.translator/testData/box/standardClasses/charArrayGetSet.kt index 3275dd5d08d..c4d0b33a773 100644 --- a/js/js.translator/testData/box/standardClasses/charArrayGetSet.kt +++ b/js/js.translator/testData/box/standardClasses/charArrayGetSet.kt @@ -1,4 +1,5 @@ // EXPECTED_REACHABLE_NODES: 1281 +// IGNORE_BACKEND: JS_IR fun box(): String { val a = CharArray(1) val aType = jsTypeOf(a.asDynamic()[0]) diff --git a/libraries/stdlib/js-ir/builtins/Char.kt b/libraries/stdlib/js-ir/builtins/Char.kt index 135d82b29ca..08b8185557f 100644 --- a/libraries/stdlib/js-ir/builtins/Char.kt +++ b/libraries/stdlib/js-ir/builtins/Char.kt @@ -9,9 +9,11 @@ package kotlin * Represents a 16-bit Unicode character. * On the JVM, non-nullable values of this type are represented as values of the primitive type `char`. */ -@Suppress("NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS") -public inline class Char internal constructor (val value: Int) : Comparable { - +// TODO: KT-35100 +//@Suppress("NON_PUBLIC_PRIMARY_CONSTRUCTOR_OF_INLINE_CLASS") +//public inline class Char internal constructor (val value: Int) : Comparable { +public data class Char internal constructor(val value: Int) : Comparable { + /** * Compares this value with the specified value for order. * Returns zero if this value is equal to the specified other value, a negative number if it's less than other, diff --git a/libraries/stdlib/js-ir/runtime/arrays.kt b/libraries/stdlib/js-ir/runtime/arrays.kt index 75987853a9f..36c38a394d4 100644 --- a/libraries/stdlib/js-ir/runtime/arrays.kt +++ b/libraries/stdlib/js-ir/runtime/arrays.kt @@ -33,7 +33,8 @@ internal fun booleanArray(size: Int): BooleanArray = withType("BooleanArray", fi internal fun booleanArrayOf(arr: Array): BooleanArray = withType("BooleanArray", arr.asDynamic().slice()).unsafeCast() -internal fun charArray(size: Int): CharArray = withType("CharArray", fillArrayVal(Array(size), 0)).unsafeCast() +//internal fun charArray(size: Int): CharArray = withType("CharArray", fillArrayVal(Array(size), 0)).unsafeCast() +internal fun charArray(size: Int): CharArray = withType("CharArray", fillArrayVal(Array(size), Char(0))).unsafeCast() internal fun charArrayOf(arr: Array): CharArray = withType("CharArray", arr.asDynamic().slice()).unsafeCast()