6e6ffa12a6
- New module ":compiler:backend.wasm"
- Initial compiler infra (driver, phaser, context)
- Subset of Wasm AST
- Skeleton of IR -> Wasm AST
- Wasm AST -> WAT transformer
- Testing infra
- SpiderMonkey jsshell tool
59 lines
2.0 KiB
Kotlin
59 lines
2.0 KiB
Kotlin
/*
|
|
* 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",
|
|
"EXTERNAL_TYPE_EXTENDS_NON_EXTERNAL_TYPE",
|
|
"PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED",
|
|
"WRONG_MODIFIER_TARGET"
|
|
)
|
|
|
|
package kotlin
|
|
|
|
import kotlin.wasm.internal.WasmInstruction
|
|
import kotlin.wasm.internal.wasm_i32_compareTo
|
|
|
|
/**
|
|
* 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<Boolean> {
|
|
/**
|
|
* Returns the inverse of this boolean.
|
|
*/
|
|
@WasmInstruction(WasmInstruction.I32_EQZ)
|
|
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.
|
|
*/
|
|
@WasmInstruction(WasmInstruction.I32_AND)
|
|
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.
|
|
*/
|
|
@WasmInstruction(WasmInstruction.I32_OR)
|
|
public infix fun or(other: Boolean): Boolean
|
|
|
|
/**
|
|
* Performs a logical `xor` operation between this Boolean and the [other] one.
|
|
*/
|
|
@WasmInstruction(WasmInstruction.I32_XOR)
|
|
public infix fun xor(other: Boolean): Boolean
|
|
|
|
public override fun compareTo(other: Boolean): Int =
|
|
wasm_i32_compareTo(this.asInt(), other.asInt())
|
|
|
|
@WasmInstruction(WasmInstruction.NOP)
|
|
internal fun asInt(): Int
|
|
|
|
@SinceKotlin("1.3")
|
|
companion object {}
|
|
}
|