12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- using Jint.Runtime;
- namespace Jint.Native;
- public sealed class JsBoolean : JsValue, IEquatable<JsBoolean>
- {
- public static readonly JsBoolean False = new JsBoolean(false);
- public static readonly JsBoolean True = new JsBoolean(true);
- internal static readonly object BoxedTrue = true;
- internal static readonly object BoxedFalse = false;
- internal readonly bool _value;
- private JsBoolean(bool value) : base(Types.Boolean)
- {
- _value = value;
- }
- internal static JsBoolean Create(bool value) => value ? True : False;
- public override object ToObject() => _value ? BoxedTrue : BoxedFalse;
- internal override bool ToBoolean() => _value;
- public override string ToString()
- {
- return _value ? "true" : "false";
- }
- protected internal override bool IsLooselyEqual(JsValue value)
- {
- if (value is JsBoolean jsBoolean)
- {
- return Equals(jsBoolean);
- }
- return !value.IsNullOrUndefined() && base.IsLooselyEqual(value);
- }
- public override bool Equals(object? obj)
- {
- return Equals(obj as JsBoolean);
- }
- public override bool Equals(JsValue? other)
- {
- return Equals(other as JsBoolean);
- }
- public bool Equals(JsBoolean? other)
- {
- if (ReferenceEquals(this, other))
- {
- return true;
- }
- if (other is null)
- {
- return false;
- }
- return _value == other._value;
- }
- public override int GetHashCode()
- {
- return _value.GetHashCode();
- }
- }
|