From 8e788e2169f87f25880f13a4520b371de7dd56ee Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Sun, 1 Dec 2019 15:17:44 +0300 Subject: [PATCH] [stdlib-js-ir] Copy Boolean and String sources and add equals, hashCode, toString --- libraries/stdlib/js-ir/builtins/Boolean.kt | 48 ++++++++++++++++++++++ libraries/stdlib/js-ir/builtins/String.kt | 41 ++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 libraries/stdlib/js-ir/builtins/Boolean.kt create mode 100644 libraries/stdlib/js-ir/builtins/String.kt diff --git a/libraries/stdlib/js-ir/builtins/Boolean.kt b/libraries/stdlib/js-ir/builtins/Boolean.kt new file mode 100644 index 00000000000..8cf8aed0a9e --- /dev/null +++ b/libraries/stdlib/js-ir/builtins/Boolean.kt @@ -0,0 +1,48 @@ +/* + * 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("NON_ABSTRACT_FUNCTION_WITH_NO_BODY") + +package kotlin + +/** + * Represents a value which is either `true` or `false`. On the JVM, non-nullable values of this type are + * represented as values of the primitive type `boolean`. + */ +public class Boolean private constructor() : Comparable { + /** + * Returns the inverse of this boolean. + */ + public operator fun not(): Boolean + + /** + * Performs a logical `and` operation between this Boolean and the [other] one. Unlike the `&&` operator, + * this function does not perform short-circuit evaluation. Both `this` and [other] will always be evaluated. + */ + public infix fun and(other: Boolean): Boolean + + /** + * Performs a logical `or` operation between this Boolean and the [other] one. Unlike the `||` operator, + * this function does not perform short-circuit evaluation. Both `this` and [other] will always be evaluated. + */ + public infix fun or(other: Boolean): Boolean + + /** + * Performs a logical `xor` operation between this Boolean and the [other] one. + */ + public infix fun xor(other: Boolean): Boolean + + public override fun compareTo(other: Boolean): Int + + + public override fun equals(other: Any?): Boolean + + public override fun hashCode(): Int + + public override fun toString(): String + + @SinceKotlin("1.3") + companion object {} +} diff --git a/libraries/stdlib/js-ir/builtins/String.kt b/libraries/stdlib/js-ir/builtins/String.kt new file mode 100644 index 00000000000..7d3c2bc7afb --- /dev/null +++ b/libraries/stdlib/js-ir/builtins/String.kt @@ -0,0 +1,41 @@ +/* + * 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("NON_ABSTRACT_FUNCTION_WITH_NO_BODY", "MUST_BE_INITIALIZED_OR_BE_ABSTRACT") + +package kotlin + +/** + * The `String` class represents character strings. All string literals in Kotlin programs, such as `"abc"`, are + * implemented as instances of this class. + */ +public class String : Comparable, CharSequence { + companion object {} + + /** + * Returns a string obtained by concatenating this string with the string representation of the given [other] object. + */ + public operator fun plus(other: Any?): String + + public override val length: Int + + /** + * Returns the character of this string at the specified [index]. + * + * If the [index] is out of bounds of this string, throws an [IndexOutOfBoundsException] except in Kotlin/JS + * where the behavior is unspecified. + */ + public override fun get(index: Int): Char + + public override fun subSequence(startIndex: Int, endIndex: Int): CharSequence + + public override fun compareTo(other: String): Int + + public override fun equals(other: Any?): Boolean + + public override fun hashCode(): Int + + public override fun toString(): String +}