Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Make relevant internal classes public for JSS.Lib #4

Merged
merged 1 commit into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions JSS.Lib/AST/Values/Boolean.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
namespace JSS.Lib.AST.Values;

internal sealed class Boolean : Value
public sealed class Boolean : Value
{
public Boolean(bool value)
internal Boolean(bool value)
{
Value = value;
}
Expand Down
40 changes: 20 additions & 20 deletions JSS.Lib/AST/Values/Number.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
namespace JSS.Lib.AST.Values;

internal sealed class Number : Value
public sealed class Number : Value
{
public Number(double value)
internal Number(double value)
{
Value = value;
}
Expand All @@ -25,7 +25,7 @@ override public int GetHashCode()
}

// 6.1.6.1.1 Number::unaryMinus ( x ), https://tc39.es/ecma262/#sec-numeric-types-number-unaryMinus
static public Number UnaryMinus(Number x)
static internal Number UnaryMinus(Number x)
{
// 1. If x is NaN, return NaN.
if (double.IsNaN(x.Value)) return x;
Expand All @@ -35,7 +35,7 @@ static public Number UnaryMinus(Number x)
}

// 6.1.6.1.2 Number::bitwiseNOT ( x ), https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseNOT
static public Number BitwiseNOT(Number x)
static internal Number BitwiseNOT(Number x)
{
// FIXME: 1. Let oldValue be ! ToInt32(x).

Expand All @@ -46,7 +46,7 @@ static public Number BitwiseNOT(Number x)
}

// 6.1.6.1.3 Number::exponentiate ( base, exponent ), https://tc39.es/ecma262/#sec-numeric-types-number-exponentiate
static public Number Exponentiate(Number expBase, Number exponent)
static internal Number Exponentiate(Number expBase, Number exponent)
{
// FIXME: 1. If exponent is NaN, return NaN.
// FIXME: 2. If exponent is either + 0𝔽 or - 0𝔽, return 1𝔽.
Expand Down Expand Up @@ -82,7 +82,7 @@ static public Number Exponentiate(Number expBase, Number exponent)
}

// 6.1.6.1.4 Number::multiply ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-multiply
static public Number Multiply(Number x, Number y)
static internal Number Multiply(Number x, Number y)
{
// FIXME: 1. If x is NaN or y is NaN, return NaN.
// FIXME: 2. If x is either +∞𝔽 or -∞𝔽, then
Expand All @@ -105,7 +105,7 @@ static public Number Multiply(Number x, Number y)
}

// 6.1.6.1.5 Number::divide ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-divide
static public Number Divide(Number x, Number y)
static internal Number Divide(Number x, Number y)
{
// FIXME: 1. If x is NaN or y is NaN, return NaN.
// FIXME: 2. If x is either +∞𝔽 or -∞𝔽, then
Expand All @@ -130,7 +130,7 @@ static public Number Divide(Number x, Number y)
}

// 6.1.6.1.6 Number::remainder ( n, d ), https://tc39.es/ecma262/#sec-numeric-types-number-remainder
static public Number Remainder(Number n, Number d)
static internal Number Remainder(Number n, Number d)
{
// FIXME: 1. If n is NaN or d is NaN, return NaN.
// FIXME: 2. If n is either +∞𝔽 or -∞𝔽, return NaN.
Expand All @@ -147,7 +147,7 @@ static public Number Remainder(Number n, Number d)
}

// 6.1.6.1.7 Number::add ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-add
static public Number Add(Number x, Number y)
static internal Number Add(Number x, Number y)
{
// FIXME: 1. If x is NaN or y is NaN, return NaN.
// FIXME: 2. If x is +∞𝔽 and y is -∞𝔽, return NaN.
Expand All @@ -162,13 +162,13 @@ static public Number Add(Number x, Number y)
}

// 6.1.6.1.8 Number::subtract ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-subtract
static public Number Subtract(Number x, Number y)
static internal Number Subtract(Number x, Number y)
{
return Add(x, UnaryMinus(y));
}

// 6.1.6.1.9 Number::leftShift ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-leftShift
static public Number LeftShift(Number x, Number y)
static internal Number LeftShift(Number x, Number y)
{
// FIXME: 1. Let lnum be !ToInt32(x).
// FIXME: 2. Let rnum be !ToUint32(y).
Expand All @@ -180,7 +180,7 @@ static public Number LeftShift(Number x, Number y)
}

// 6.1.6.1.10 Number::signedRightShift ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-signedRightShift
static public Number SignedRightShift(Number x, Number y)
static internal Number SignedRightShift(Number x, Number y)
{
// FIXME: 1. Let lnum be !ToInt32(x).
// FIXME: 2. Let rnum be !ToUint32(y).
Expand All @@ -192,7 +192,7 @@ static public Number SignedRightShift(Number x, Number y)
}

// 6.1.6.1.11 Number::unsignedRightShift ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-unsignedRightShift
static public Number UnsignedRightShift(Number x, Number y)
static internal Number UnsignedRightShift(Number x, Number y)
{
// FIXME: 1. Let lnum be !ToUint32(x).
// FIXME: 2. Let rnum be !ToUint32(y).
Expand All @@ -204,7 +204,7 @@ static public Number UnsignedRightShift(Number x, Number y)
}

// 6.1.6.1.12 Number::lessThan(x, y), https://tc39.es/ecma262/#sec-numeric-types-number-lessThan
static public Value LessThan(Number x, Number y)
static internal Value LessThan(Number x, Number y)
{
// FIXME: 1. If x is NaN, return undefined.
// FIXME: 2. If y is NaN, return undefined.
Expand All @@ -222,7 +222,7 @@ static public Value LessThan(Number x, Number y)
}

// 6.1.6.1.13 Number::equal ( x, y )
static public Boolean Equal(Number x, Number y)
static internal Boolean Equal(Number x, Number y)
{
// 1. If x is NaN, return false.
if (double.IsNaN(x.Value))
Expand Down Expand Up @@ -257,7 +257,7 @@ internal enum BitwiseOp
}

// 6.1.6.1.16 NumberBitwiseOp ( op, x, y ), https://tc39.es/ecma262/#sec-numberbitwiseop
static public Number NumberBitwiseOp(BitwiseOp op, Number x, Number y)
static internal Number NumberBitwiseOp(BitwiseOp op, Number x, Number y)
{
// FIXME: 1. Let lnum be !ToInt32(x).
// FIXME: 2. Let rnum be !ToInt32(y).
Expand All @@ -284,27 +284,27 @@ static public Number NumberBitwiseOp(BitwiseOp op, Number x, Number y)
}

// 6.1.6.1.17 Number::bitwiseAND ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseAND
static public Number BitwiseAND(Number x, Number y)
static internal Number BitwiseAND(Number x, Number y)
{
// 1. Return NumberBitwiseOp(&, x, y).
return NumberBitwiseOp(BitwiseOp.AND, x, y);
}

// 6.1.6.1.18 Number::bitwiseXOR ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseXOR
static public Number BitwiseXOR(Number x, Number y)
static internal Number BitwiseXOR(Number x, Number y)
{
// 1. Return NumberBitwiseOp(^, x, y).
return NumberBitwiseOp(BitwiseOp.XOR, x, y);
}

// 6.1.6.1.19 Number::bitwiseOR ( x, y ), https://tc39.es/ecma262/#sec-numeric-types-number-bitwiseOR
static public Number BitwiseOR(Number x, Number y)
static internal Number BitwiseOR(Number x, Number y)
{
// 1. Return NumberBitwiseOp(|, x, y).
return NumberBitwiseOp(BitwiseOp.OR, x, y);
}

static public Number NaN
static internal Number NaN
{
get
{
Expand Down
36 changes: 18 additions & 18 deletions JSS.Lib/AST/Values/Object.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ public Property(Value value, Attributes attributes)
}

// 6.1.7 The Object Type, https://tc39.es/ecma262/#sec-object-type
internal class Object : Value
public class Object : Value
{
public Object(Object? prototype)
internal Object(Object? prototype)
{
Prototype = prototype ?? this;
DataProperties = new();
Expand All @@ -31,14 +31,14 @@ public Object(Object? prototype)
override public ValueType Type() { return ValueType.Object; }

// 7.3.2 Get ( O, P ), https://tc39.es/ecma262/#sec-get-o-p
static public Completion Get(Object O, string P)
static internal Completion Get(Object O, string P)
{
// 1. Return ? O.[[Get]](P, O).
return O.Get(P, O);
}

// 7.3.4 Set ( O, P, V, Throw ), https://tc39.es/ecma262/#sec-set-o-p-v-throw
static public Completion Set(Object O, string P, Value V, bool Throw)
static internal Completion Set(Object O, string P, Value V, bool Throw)
{
// 1. Let success be ? O.[[Set]](P, V, O).
var success = O.Set(P, V, O);
Expand All @@ -57,7 +57,7 @@ static public Completion Set(Object O, string P, Value V, bool Throw)
}

// 7.3.9 DefinePropertyOrThrow ( O, P, desc ), https://tc39.es/ecma262/#sec-definepropertyorthrow
static public Completion DefinePropertyOrThrow(Object O, string P, Property desc)
static internal Completion DefinePropertyOrThrow(Object O, string P, Property desc)
{
// 1. Let success be ? O.[[DefineOwnProperty]](P, desc).
var success = O.DefineOwnProperty(P, desc);
Expand All @@ -72,14 +72,14 @@ static public Completion DefinePropertyOrThrow(Object O, string P, Property desc
}

// 7.3.12 HasProperty ( O, P ), https://tc39.es/ecma262/#sec-hasproperty
static public Completion HasProperty(Object O, string P)
static internal Completion HasProperty(Object O, string P)
{
// 1. Return ? O.[[HasProperty]](P).
return O.HasProperty(P);
}

// 7.3.13 HasOwnProperty ( O, P ), https://tc39.es/ecma262/#sec-hasownproperty
static public Completion HasOwnProperty(Object O, string P)
static internal Completion HasOwnProperty(Object O, string P)
{
// 1. Let desc be ? O.[[GetOwnProperty]](P).
var desc = O.GetOwnProperty(P);
Expand All @@ -91,7 +91,7 @@ static public Completion HasOwnProperty(Object O, string P)
}

// 7.3.14 Call ( F, V [ , argumentsList ] )
static public Completion Call(VM vm, Value F, Value V, Value? argumentsList = null)
static internal Completion Call(VM vm, Value F, Value V, Value? argumentsList = null)
{
// 1. If argumentsList is not present, set argumentsList to a new empty List.
argumentsList ??= new List();
Expand All @@ -108,7 +108,7 @@ static public Completion Call(VM vm, Value F, Value V, Value? argumentsList = nu
}

// 10.1.5 [[GetOwnProperty]] ( P )
public Completion GetOwnProperty(string P)
internal Completion GetOwnProperty(string P)
{
// 1. Return OrdinaryGetOwnProperty(O, P).
return OrdinaryGetOwnProperty(this, P);
Expand Down Expand Up @@ -139,14 +139,14 @@ private Completion OrdinaryGetOwnProperty(Object O, string P)
}

// 10.1.6 [[DefineOwnProperty]] ( P, Desc ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-defineownproperty-p-desc
public Completion DefineOwnProperty(string P, Property desc)
internal Completion DefineOwnProperty(string P, Property desc)
{
// 1. Return ? OrdinaryDefineOwnProperty(O, P, Desc).
return OrdinaryDefineOwnProperty(this, P, desc);
}

// 10.1.6.1 OrdinaryDefineOwnProperty ( O, P, Desc ), https://tc39.es/ecma262/#sec-ordinarydefineownproperty
static public Completion OrdinaryDefineOwnProperty(Object O, string P, Property desc)
static internal Completion OrdinaryDefineOwnProperty(Object O, string P, Property desc)
{
// FIXME: 1. Let current be ? O.[[GetOwnProperty]](P).
// FIXME: 2. Let extensible be ? IsExtensible(O).
Expand All @@ -163,7 +163,7 @@ private Completion HasProperty(string P)
}

// 10.1.7.1 OrdinaryHasProperty ( O, P ), https://tc39.es/ecma262/#sec-ordinaryhasproperty
static public Completion OrdinaryHasProperty(Object O, string P)
static internal Completion OrdinaryHasProperty(Object O, string P)
{
// 1. Let hasOwn be ? O.[[GetOwnProperty]](P).
var hasOwn = O.GetOwnProperty(P);
Expand All @@ -179,14 +179,14 @@ static public Completion OrdinaryHasProperty(Object O, string P)
}

// 10.1.8 [[Get]] ( P, Receiver ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-get-p-receiver
public Completion Get(string P, Object receiver)
internal Completion Get(string P, Object receiver)
{
// 1. Return ? OrdinaryGet(O, P, Receiver).
return OrdinaryGet(this, P, receiver);
}

// 10.1.8.1 OrdinaryGet ( O, P, Receiver ), https://tc39.es/ecma262/#sec-ordinaryget
static public Completion OrdinaryGet(Object O, string P, Object receiver)
static internal Completion OrdinaryGet(Object O, string P, Object receiver)
{
// FIXME: 1. Let desc be ? O.[[GetOwnProperty]](P).
// FIXME: 2. If desc is undefined, then
Expand All @@ -204,14 +204,14 @@ static public Completion OrdinaryGet(Object O, string P, Object receiver)
}

// 10.1.9 [[Set]] ( P, V, Receiver ), https://tc39.es/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots-set-p-v-receiver
public Completion Set(string P, Value V, Object receiver)
internal Completion Set(string P, Value V, Object receiver)
{
// 1. Return ? OrdinarySet(O, P, V, Receiver).
return OrdinarySet(this, P, V, receiver);
}

// 10.1.9.1 OrdinarySet ( O, P, V, Receiver ), https://tc39.es/ecma262/#sec-ordinaryset
static public Completion OrdinarySet(Object O, string P, Value V, Object receiver)
static internal Completion OrdinarySet(Object O, string P, Value V, Object receiver)
{
// FIXME: 1. Let ownDesc be ? O.[[GetOwnProperty]](P).
// FIXME: 2. Return ? OrdinarySetWithOwnDescriptor(O, P, V, Receiver, ownDesc).
Expand All @@ -229,6 +229,6 @@ static public Completion OrdinarySet(Object O, string P, Value V, Object receive
}

// FIXME: Accessor Attributes
public Object Prototype { get; }
public Dictionary<string, Property> DataProperties { get; }
internal Object Prototype { get; }
internal Dictionary<string, Property> DataProperties { get; }
}
4 changes: 2 additions & 2 deletions JSS.Lib/AST/Values/Reference.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
namespace JSS.Lib.AST.Values;

// 6.2.5 The Reference Record Specification Type, https://tc39.es/ecma262/#sec-reference-record-specification-type
internal class Reference : Value
public class Reference : Value
{
public Reference(Value? @base, string referencedName, Value thisValue)
internal Reference(Value? @base, string referencedName, Value thisValue)
{
Base = @base;
ReferencedName = referencedName;
Expand Down
4 changes: 2 additions & 2 deletions JSS.Lib/AST/Values/String.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
namespace JSS.Lib.AST.Values;

internal sealed class String : Value
public sealed class String : Value
{
public String(string value)
internal String(string value)
{
Value = value;
}
Expand Down
Loading
Loading