[stdlib] Remove @PublishedApi annotations from throw helpers
diff --git a/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/RuntimeUtils.kt b/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/RuntimeUtils.kt
index 1ee0f43..b1577e1 100644
--- a/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/RuntimeUtils.kt
+++ b/kotlin-native/runtime/src/main/kotlin/kotlin/native/internal/RuntimeUtils.kt
@@ -17,6 +17,7 @@
 import kotlin.native.internal.escapeAnalysis.Escapes
 
 @ExportForCppRuntime
+// KT-77876: Remove @PublishedApi after fix of KT-77876
 @PublishedApi
 internal fun ThrowNullPointerException(): Nothing {
     throw NullPointerException()
@@ -34,26 +35,22 @@
 }
 
 @ExportForCppRuntime
-@PublishedApi
 internal fun ThrowClassCastException(instance: Any, typeInfo: NativePtr): Nothing {
     val clazz = KClassImpl<Any>(typeInfo)
     throw ClassCastException("${instance::class} cannot be cast to $clazz")
 }
 
 @ExportForCppRuntime
-@PublishedApi
 internal fun ThrowTypeCastException(instance: Any, typeName: String): Nothing {
     throw TypeCastException("${instance::class} cannot be cast to class $typeName")
 }
 
 @ExportForCppRuntime
-@PublishedApi
 internal fun ThrowKotlinNothingValueException(): Nothing {
     throw KotlinNothingValueException()
 }
 
 @ExportForCppRuntime
-@PublishedApi
 internal fun ThrowInvalidReceiverTypeException(klass: KClass<*>): Nothing {
     throw RuntimeException("Unexpected receiver type: " + (klass.qualifiedName ?: "noname"))
 }
@@ -73,7 +70,6 @@
     throw OutOfMemoryError()
 }
 
-@PublishedApi
 internal fun ThrowNoWhenBranchMatchedException(): Nothing {
     throw NoWhenBranchMatchedException()
 }
@@ -155,7 +151,6 @@
 }
 
 // TODO: Can be removed only when native-mt coroutines stop using it.
-@PublishedApi
 @ExportForCppRuntime
 @OptIn(ExperimentalNativeApi::class)
 internal fun OnUnhandledException(throwable: Throwable) {
@@ -181,7 +176,6 @@
 @ExportForCppRuntime
 internal fun TheEmptyString() = ""
 
-@PublishedApi
 internal fun <T: Enum<T>> valueOfForEnum(name: String, values: Array<T>) : T {
     var left = 0
     var right = values.size - 1
@@ -197,7 +191,6 @@
     throw IllegalArgumentException("Invalid enum value name: $name")
 }
 
-@PublishedApi
 internal fun <T: Enum<T>> valuesForEnum(values: Array<T>): Array<T> {
     val result = @Suppress("TYPE_PARAMETER_AS_REIFIED") Array<T?>(values.size)
     for (value in values)
@@ -220,32 +213,24 @@
 
 @TypedIntrinsic(IntrinsicType.CREATE_EMPTY_STRING)
 @InternalForKotlinNative
-@PublishedApi
 internal external fun createEmptyString(): String
 
-@PublishedApi
 @TypedIntrinsic(IntrinsicType.IS_SUBTYPE)
 internal external fun <T> isSubtype(objTypeInfo: NativePtr): Boolean
 
-@PublishedApi
 internal fun checkProgressionStep(step: Int): Int =
         if (step > 0) step else throw IllegalArgumentException("Step must be positive, was: $step.")
-@PublishedApi
 internal fun checkProgressionStep(step: Long): Long =
         if (step > 0) step else throw IllegalArgumentException("Step must be positive, was: $step.")
 
-@PublishedApi
 internal fun getProgressionLast(start: Char, end: Char, step: Int): Char =
         getProgressionLast(start.code, end.code, step).toChar()
 
-@PublishedApi
 internal fun getProgressionLast(start: Int, end: Int, step: Int): Int =
         getProgressionLastElement(start, end, step)
-@PublishedApi
 internal fun getProgressionLast(start: Long, end: Long, step: Long): Long =
         getProgressionLastElement(start, end, step)
 
-@PublishedApi
 // Called by the debugger.
 @ExportForCppRuntime
 internal fun KonanObjectToUtf8Array(value: Any?): ByteArray {
@@ -268,7 +253,6 @@
     return string.encodeToByteArray()
 }
 
-@PublishedApi
 @TypedIntrinsic(IntrinsicType.IMMUTABLE_BLOB)
 @Escapes.Nothing
 internal external fun immutableBlobOfImpl(data: String): ImmutableBlob
diff --git a/libraries/stdlib/js/runtime/hacks.kt b/libraries/stdlib/js/runtime/hacks.kt
index 5b43d2c..a149b3a 100644
--- a/libraries/stdlib/js/runtime/hacks.kt
+++ b/libraries/stdlib/js/runtime/hacks.kt
@@ -13,6 +13,7 @@
 internal fun throwUnsupportedOperationException(message: String): Nothing =
     throw UnsupportedOperationException(message)
 
+// KT-77876: Remove @PublishedApi after fix of KT-77876
 @PublishedApi
 internal fun throwKotlinNothingValueException(): Nothing =
     throw KotlinNothingValueException()
diff --git a/libraries/tools/binary-compatibility-validator/klib-public-api/kotlin-stdlib.api b/libraries/tools/binary-compatibility-validator/klib-public-api/kotlin-stdlib.api
index e88aba8..4a124f3 100644
--- a/libraries/tools/binary-compatibility-validator/klib-public-api/kotlin-stdlib.api
+++ b/libraries/tools/binary-compatibility-validator/klib-public-api/kotlin-stdlib.api
@@ -12551,9 +12551,6 @@
 final fun <#A: kotlin/Any?> kotlin.native.internal/getContinuation(): kotlin.coroutines/Continuation<#A> // kotlin.native.internal/getContinuation|getContinuation(){0§<kotlin.Any?>}[0]
 
 // Targets: [native]
-final fun <#A: kotlin/Any?> kotlin.native.internal/isSubtype(kotlin.native.internal/NativePtr): kotlin/Boolean // kotlin.native.internal/isSubtype|isSubtype(kotlin.native.internal.NativePtr){0§<kotlin.Any?>}[0]
-
-// Targets: [native]
 final fun <#A: kotlin/Any?> kotlin.native.ref/createCleaner(#A, kotlin/Function1<#A, kotlin/Unit>): kotlin.native.ref/Cleaner // kotlin.native.ref/createCleaner|createCleaner(0:0;kotlin.Function1<0:0,kotlin.Unit>){0§<kotlin.Any?>}[0]
 
 // Targets: [native]
@@ -12623,12 +12620,6 @@
 final fun <#A: kotlin/Enum<#A>> kotlin.native.internal/enumValuesIntrinsic(): kotlin/Array<#A> // kotlin.native.internal/enumValuesIntrinsic|enumValuesIntrinsic(){0§<kotlin.Enum<0:0>>}[0]
 
 // Targets: [native]
-final fun <#A: kotlin/Enum<#A>> kotlin.native.internal/valueOfForEnum(kotlin/String, kotlin/Array<#A>): #A // kotlin.native.internal/valueOfForEnum|valueOfForEnum(kotlin.String;kotlin.Array<0:0>){0§<kotlin.Enum<0:0>>}[0]
-
-// Targets: [native]
-final fun <#A: kotlin/Enum<#A>> kotlin.native.internal/valuesForEnum(kotlin/Array<#A>): kotlin/Array<#A> // kotlin.native.internal/valuesForEnum|valuesForEnum(kotlin.Array<0:0>){0§<kotlin.Enum<0:0>>}[0]
-
-// Targets: [native]
 final fun <#A: kotlin/Float> (kotlinx.cinterop/NativePlacement).kotlinx.cinterop/alloc(#A): kotlinx.cinterop/FloatVarOf<#A> // kotlinx.cinterop/alloc|alloc@kotlinx.cinterop.NativePlacement(0:0){0§<kotlin.Float>}[0]
 
 // Targets: [native]
@@ -12776,9 +12767,6 @@
 final fun kotlin.native.internal.test/worker(kotlin/Array<kotlin/String>) // kotlin.native.internal.test/worker|worker(kotlin.Array<kotlin.String>){}[0]
 
 // Targets: [native]
-final fun kotlin.native.internal/KonanObjectToUtf8Array(kotlin/Any?): kotlin/ByteArray // kotlin.native.internal/KonanObjectToUtf8Array|KonanObjectToUtf8Array(kotlin.Any?){}[0]
-
-// Targets: [native]
 final fun kotlin.native.internal/Kotlin_boxUnit(): kotlin/Unit? // kotlin.native.internal/Kotlin_boxUnit|Kotlin_boxUnit(){}[0]
 
 // Targets: [native]
@@ -12791,27 +12779,9 @@
 final fun kotlin.native.internal/Kotlin_toString(kotlin/Any): kotlin/String // kotlin.native.internal/Kotlin_toString|Kotlin_toString(kotlin.Any){}[0]
 
 // Targets: [native]
-final fun kotlin.native.internal/OnUnhandledException(kotlin/Throwable) // kotlin.native.internal/OnUnhandledException|OnUnhandledException(kotlin.Throwable){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/ThrowClassCastException(kotlin/Any, kotlin.native.internal/NativePtr): kotlin/Nothing // kotlin.native.internal/ThrowClassCastException|ThrowClassCastException(kotlin.Any;kotlin.native.internal.NativePtr){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/ThrowInvalidReceiverTypeException(kotlin.reflect/KClass<*>): kotlin/Nothing // kotlin.native.internal/ThrowInvalidReceiverTypeException|ThrowInvalidReceiverTypeException(kotlin.reflect.KClass<*>){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/ThrowKotlinNothingValueException(): kotlin/Nothing // kotlin.native.internal/ThrowKotlinNothingValueException|ThrowKotlinNothingValueException(){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/ThrowNoWhenBranchMatchedException(): kotlin/Nothing // kotlin.native.internal/ThrowNoWhenBranchMatchedException|ThrowNoWhenBranchMatchedException(){}[0]
-
-// Targets: [native]
 final fun kotlin.native.internal/ThrowNullPointerException(): kotlin/Nothing // kotlin.native.internal/ThrowNullPointerException|ThrowNullPointerException(){}[0]
 
 // Targets: [native]
-final fun kotlin.native.internal/ThrowTypeCastException(kotlin/Any, kotlin/String): kotlin/Nothing // kotlin.native.internal/ThrowTypeCastException|ThrowTypeCastException(kotlin.Any;kotlin.String){}[0]
-
-// Targets: [native]
 final fun kotlin.native.internal/ThrowUninitializedPropertyAccessException(kotlin/String): kotlin/Nothing // kotlin.native.internal/ThrowUninitializedPropertyAccessException|ThrowUninitializedPropertyAccessException(kotlin.String){}[0]
 
 // Targets: [native]
@@ -12881,15 +12851,6 @@
 final fun kotlin.native.internal/boxUShort(kotlin/UShort): kotlin/UShort? // kotlin.native.internal/boxUShort|boxUShort(kotlin.UShort){}[0]
 
 // Targets: [native]
-final fun kotlin.native.internal/checkProgressionStep(kotlin/Int): kotlin/Int // kotlin.native.internal/checkProgressionStep|checkProgressionStep(kotlin.Int){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/checkProgressionStep(kotlin/Long): kotlin/Long // kotlin.native.internal/checkProgressionStep|checkProgressionStep(kotlin.Long){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/createEmptyString(): kotlin/String // kotlin.native.internal/createEmptyString|createEmptyString(){}[0]
-
-// Targets: [native]
 final fun kotlin.native.internal/getCachedBooleanBox(kotlin/Boolean): kotlin/Boolean? // kotlin.native.internal/getCachedBooleanBox|getCachedBooleanBox(kotlin.Boolean){}[0]
 
 // Targets: [native]
@@ -12914,24 +12875,12 @@
 final fun kotlin.native.internal/getNativeNullPtr(): kotlin.native.internal/NativePtr // kotlin.native.internal/getNativeNullPtr|getNativeNullPtr(){}[0]
 
 // Targets: [native]
-final fun kotlin.native.internal/getProgressionLast(kotlin/Char, kotlin/Char, kotlin/Int): kotlin/Char // kotlin.native.internal/getProgressionLast|getProgressionLast(kotlin.Char;kotlin.Char;kotlin.Int){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/getProgressionLast(kotlin/Int, kotlin/Int, kotlin/Int): kotlin/Int // kotlin.native.internal/getProgressionLast|getProgressionLast(kotlin.Int;kotlin.Int;kotlin.Int){}[0]
-
-// Targets: [native]
-final fun kotlin.native.internal/getProgressionLast(kotlin/Long, kotlin/Long, kotlin/Long): kotlin/Long // kotlin.native.internal/getProgressionLast|getProgressionLast(kotlin.Long;kotlin.Long;kotlin.Long){}[0]
-
-// Targets: [native]
 final fun kotlin.native.internal/ieee754Equals(kotlin/Double, kotlin/Double): kotlin/Boolean // kotlin.native.internal/ieee754Equals|ieee754Equals(kotlin.Double;kotlin.Double){}[0]
 
 // Targets: [native]
 final fun kotlin.native.internal/ieee754Equals(kotlin/Float, kotlin/Float): kotlin/Boolean // kotlin.native.internal/ieee754Equals|ieee754Equals(kotlin.Float;kotlin.Float){}[0]
 
 // Targets: [native]
-final fun kotlin.native.internal/immutableBlobOfImpl(kotlin/String): kotlin.native/ImmutableBlob // kotlin.native.internal/immutableBlobOfImpl|immutableBlobOfImpl(kotlin.String){}[0]
-
-// Targets: [native]
 final fun kotlin.native.internal/inBooleanBoxCache(kotlin/Boolean): kotlin/Boolean // kotlin.native.internal/inBooleanBoxCache|inBooleanBoxCache(kotlin.Boolean){}[0]
 
 // Targets: [native]