/* * Copyright 2010-2019 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. */ @file:Suppress("NOTHING_TO_INLINE") package kotlin import kotlin.js.* /** * Returns a string representation of the object. Can be called with a null receiver, in which case * it returns the string "null". */ public fun Any?.toString(): String = this?.toString() ?: "null" /** * Concatenates this string with the string representation of the given [other] object. If either the receiver * or the [other] object are null, they are represented as the string "null". */ public operator fun String?.plus(other: Any?): String = (this?.toString() ?: "null").plus(other?.toString() ?: "null") /** * Returns an array of objects of the given type with the given [size], initialized with null values. */ public inline fun arrayOfNulls(size: Int): Array = fillArrayVal(Array(size), null) /** * Returns an array containing the specified elements. */ public inline fun arrayOf(vararg elements: T): Array = elements.unsafeCast>() /** * Returns an array containing the specified [Double] numbers. */ public inline fun doubleArrayOf(vararg elements: Double): DoubleArray = elements /** * Returns an array containing the specified [Float] numbers. */ public inline fun floatArrayOf(vararg elements: Float): FloatArray = elements /** * Returns an array containing the specified [Long] numbers. */ public inline fun longArrayOf(vararg elements: Long): LongArray = elements /** * Returns an array containing the specified [Int] numbers. */ public inline fun intArrayOf(vararg elements: Int): IntArray = elements /** * Returns an array containing the specified characters. */ public inline fun charArrayOf(vararg elements: Char): CharArray = elements /** * Returns an array containing the specified [Short] numbers. */ public inline fun shortArrayOf(vararg elements: Short): ShortArray = elements /** * Returns an array containing the specified [Byte] numbers. */ public inline fun byteArrayOf(vararg elements: Byte): ByteArray = elements /** * Returns an array containing the specified boolean values. */ public inline fun booleanArrayOf(vararg elements: Boolean): BooleanArray = elements // Use non-inline calls to enumValuesIntrinsic and enumValueOfIntrinsic calls in order // for compiler to replace them with method calls of concrete enum classes after inlining. // TODO: Figure out better solution (Inline hacks? Dynamic calls to stable mangled names?) /** * Returns an array containing enum T entries. */ @SinceKotlin("1.1") public inline fun > enumValues(): Array = enumValuesIntrinsic() /** * Returns an enum entry with specified name. */ @SinceKotlin("1.1") public inline fun > enumValueOf(name: String): T = enumValueOfIntrinsic(name)