mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 10:47:35 +00:00
LibJS: Hide all the constructors!
Now that the GC allocator is able to invoke Cell subclass constructors directly via friendship, we no longer need to keep them public. :^)
This commit is contained in:
parent
d54ba587f3
commit
35c9aa7c05
196 changed files with 456 additions and 242 deletions
|
@ -20,12 +20,13 @@ class Calendar final : public Object {
|
|||
JS_OBJECT(Calendar, Object);
|
||||
|
||||
public:
|
||||
Calendar(String identifier, Object& prototype);
|
||||
virtual ~Calendar() override = default;
|
||||
|
||||
[[nodiscard]] String const& identifier() const { return m_identifier; }
|
||||
|
||||
private:
|
||||
Calendar(String identifier, Object& prototype);
|
||||
|
||||
// 12.5 Properties of Temporal.Calendar Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-calendar-instances
|
||||
String m_identifier; // [[Identifier]]
|
||||
};
|
||||
|
|
|
@ -14,7 +14,6 @@ class CalendarConstructor final : public NativeFunction {
|
|||
JS_OBJECT(CalendarConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit CalendarConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~CalendarConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit CalendarConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class CalendarPrototype final : public PrototypeObject<CalendarPrototype, Calend
|
|||
JS_PROTOTYPE_OBJECT(CalendarPrototype, Calendar, Temporal.Calendar);
|
||||
|
||||
public:
|
||||
explicit CalendarPrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~CalendarPrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit CalendarPrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(id_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(date_from_fields);
|
||||
JS_DECLARE_NATIVE_FUNCTION(year_month_from_fields);
|
||||
|
|
|
@ -22,7 +22,6 @@ class Duration final : public Object {
|
|||
JS_OBJECT(Duration, Object);
|
||||
|
||||
public:
|
||||
Duration(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds, Object& prototype);
|
||||
virtual ~Duration() override = default;
|
||||
|
||||
[[nodiscard]] double years() const { return m_years; }
|
||||
|
@ -37,6 +36,8 @@ public:
|
|||
[[nodiscard]] double nanoseconds() const { return m_nanoseconds; }
|
||||
|
||||
private:
|
||||
Duration(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds, Object& prototype);
|
||||
|
||||
// 7.4 Properties of Temporal.Duration Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-duration-instances
|
||||
double m_years; // [[Years]]
|
||||
double m_months; // [[Months]]
|
||||
|
|
|
@ -14,7 +14,6 @@ class DurationConstructor final : public NativeFunction {
|
|||
JS_OBJECT(DurationConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit DurationConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~DurationConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit DurationConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class DurationPrototype final : public PrototypeObject<DurationPrototype, Durati
|
|||
JS_PROTOTYPE_OBJECT(DurationPrototype, Duration, Temporal.Duration);
|
||||
|
||||
public:
|
||||
explicit DurationPrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~DurationPrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit DurationPrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(years_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(months_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(weeks_getter);
|
||||
|
|
|
@ -20,12 +20,13 @@ class Instant final : public Object {
|
|||
JS_OBJECT(Instant, Object);
|
||||
|
||||
public:
|
||||
Instant(BigInt const& nanoseconds, Object& prototype);
|
||||
virtual ~Instant() override = default;
|
||||
|
||||
[[nodiscard]] BigInt const& nanoseconds() const { return m_nanoseconds; }
|
||||
|
||||
private:
|
||||
Instant(BigInt const& nanoseconds, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 8.4 Properties of Temporal.Instant Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-instant-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class InstantConstructor final : public NativeFunction {
|
|||
JS_OBJECT(InstantConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit InstantConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~InstantConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit InstantConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class InstantPrototype final : public PrototypeObject<InstantPrototype, Instant>
|
|||
JS_PROTOTYPE_OBJECT(InstantPrototype, Instant, Temporal.Instant);
|
||||
|
||||
public:
|
||||
explicit InstantPrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~InstantPrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit InstantPrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(epoch_seconds_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(epoch_milliseconds_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(epoch_microseconds_getter);
|
||||
|
|
|
@ -15,11 +15,12 @@ class Now final : public Object {
|
|||
JS_OBJECT(Now, Object);
|
||||
|
||||
public:
|
||||
explicit Now(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~Now() override = default;
|
||||
|
||||
private:
|
||||
explicit Now(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(time_zone);
|
||||
JS_DECLARE_NATIVE_FUNCTION(instant);
|
||||
JS_DECLARE_NATIVE_FUNCTION(plain_date_time);
|
||||
|
|
|
@ -18,7 +18,6 @@ class PlainDate final : public Object {
|
|||
JS_OBJECT(PlainDate, Object);
|
||||
|
||||
public:
|
||||
PlainDate(i32 iso_year, u8 iso_month, u8 iso_day, Object& calendar, Object& prototype);
|
||||
virtual ~PlainDate() override = default;
|
||||
|
||||
[[nodiscard]] i32 iso_year() const { return m_iso_year; }
|
||||
|
@ -28,6 +27,8 @@ public:
|
|||
[[nodiscard]] Object& calendar() { return m_calendar; }
|
||||
|
||||
private:
|
||||
PlainDate(i32 iso_year, u8 iso_month, u8 iso_day, Object& calendar, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 3.4 Properties of Temporal.PlainDate Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-plaindate-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class PlainDateConstructor final : public NativeFunction {
|
|||
JS_OBJECT(PlainDateConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit PlainDateConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainDateConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit PlainDateConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class PlainDatePrototype final : public PrototypeObject<PlainDatePrototype, Plai
|
|||
JS_PROTOTYPE_OBJECT(PlainDatePrototype, PlainDate, Temporal.PlainDate);
|
||||
|
||||
public:
|
||||
explicit PlainDatePrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainDatePrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit PlainDatePrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(calendar_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(year_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(month_getter);
|
||||
|
|
|
@ -19,7 +19,6 @@ class PlainDateTime final : public Object {
|
|||
JS_OBJECT(PlainDateTime, Object);
|
||||
|
||||
public:
|
||||
PlainDateTime(i32 iso_year, u8 iso_month, u8 iso_day, u8 iso_hour, u8 iso_minute, u8 iso_second, u16 iso_millisecond, u16 iso_microsecond, u16 iso_nanosecond, Object& calendar, Object& prototype);
|
||||
virtual ~PlainDateTime() override = default;
|
||||
|
||||
[[nodiscard]] i32 iso_year() const { return m_iso_year; }
|
||||
|
@ -35,6 +34,8 @@ public:
|
|||
[[nodiscard]] Object& calendar() { return m_calendar; }
|
||||
|
||||
private:
|
||||
PlainDateTime(i32 iso_year, u8 iso_month, u8 iso_day, u8 iso_hour, u8 iso_minute, u8 iso_second, u16 iso_millisecond, u16 iso_microsecond, u16 iso_nanosecond, Object& calendar, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 5.4 Properties of Temporal.PlainDateTime Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-plaindatetime-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class PlainDateTimeConstructor final : public NativeFunction {
|
|||
JS_OBJECT(PlainDateTimeConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit PlainDateTimeConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainDateTimeConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit PlainDateTimeConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class PlainDateTimePrototype final : public PrototypeObject<PlainDateTimePrototy
|
|||
JS_PROTOTYPE_OBJECT(PlainDateTimePrototype, PlainDateTime, Temporal.PlainDateTime);
|
||||
|
||||
public:
|
||||
explicit PlainDateTimePrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainDateTimePrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit PlainDateTimePrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(calendar_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(year_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(month_getter);
|
||||
|
|
|
@ -14,7 +14,6 @@ class PlainMonthDay final : public Object {
|
|||
JS_OBJECT(PlainMonthDay, Object);
|
||||
|
||||
public:
|
||||
PlainMonthDay(u8 iso_month, u8 iso_day, i32 iso_year, Object& calendar, Object& prototype);
|
||||
virtual ~PlainMonthDay() override = default;
|
||||
|
||||
[[nodiscard]] i32 iso_year() const { return m_iso_year; }
|
||||
|
@ -24,6 +23,8 @@ public:
|
|||
[[nodiscard]] Object& calendar() { return m_calendar; }
|
||||
|
||||
private:
|
||||
PlainMonthDay(u8 iso_month, u8 iso_day, i32 iso_year, Object& calendar, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 10.4 Properties of Temporal.PlainMonthDay Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-plainmonthday-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class PlainMonthDayConstructor final : public NativeFunction {
|
|||
JS_OBJECT(PlainMonthDayConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit PlainMonthDayConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainMonthDayConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit PlainMonthDayConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class PlainMonthDayPrototype final : public PrototypeObject<PlainMonthDayPrototy
|
|||
JS_PROTOTYPE_OBJECT(PlainMonthDayPrototype, PlainMonthDay, Temporal.PlainMonthDay);
|
||||
|
||||
public:
|
||||
explicit PlainMonthDayPrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainMonthDayPrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit PlainMonthDayPrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(calendar_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(month_code_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(day_getter);
|
||||
|
|
|
@ -19,7 +19,6 @@ class PlainTime final : public Object {
|
|||
JS_OBJECT(PlainDateTime, Object);
|
||||
|
||||
public:
|
||||
PlainTime(u8 iso_hour, u8 iso_minute, u8 iso_second, u16 iso_millisecond, u16 iso_microsecond, u16 iso_nanosecond, Calendar& calendar, Object& prototype);
|
||||
virtual ~PlainTime() override = default;
|
||||
|
||||
[[nodiscard]] u8 iso_hour() const { return m_iso_hour; }
|
||||
|
@ -32,6 +31,8 @@ public:
|
|||
[[nodiscard]] Calendar& calendar() { return m_calendar; }
|
||||
|
||||
private:
|
||||
PlainTime(u8 iso_hour, u8 iso_minute, u8 iso_second, u16 iso_millisecond, u16 iso_microsecond, u16 iso_nanosecond, Calendar& calendar, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 4.4 Properties of Temporal.PlainTime Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-plaintime-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class PlainTimeConstructor final : public NativeFunction {
|
|||
JS_OBJECT(PlainTimeConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit PlainTimeConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainTimeConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit PlainTimeConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class PlainTimePrototype final : public PrototypeObject<PlainTimePrototype, Plai
|
|||
JS_PROTOTYPE_OBJECT(PlainTimePrototype, PlainTime, Temporal.PlainTime);
|
||||
|
||||
public:
|
||||
explicit PlainTimePrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainTimePrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit PlainTimePrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(calendar_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(hour_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(minute_getter);
|
||||
|
|
|
@ -15,7 +15,6 @@ class PlainYearMonth final : public Object {
|
|||
JS_OBJECT(PlainYearMonth, Object);
|
||||
|
||||
public:
|
||||
PlainYearMonth(i32 iso_year, u8 iso_month, u8 iso_day, Object& calendar, Object& prototype);
|
||||
virtual ~PlainYearMonth() override = default;
|
||||
|
||||
[[nodiscard]] i32 iso_year() const { return m_iso_year; }
|
||||
|
@ -25,6 +24,8 @@ public:
|
|||
[[nodiscard]] Object& calendar() { return m_calendar; }
|
||||
|
||||
private:
|
||||
PlainYearMonth(i32 iso_year, u8 iso_month, u8 iso_day, Object& calendar, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 9.4 Properties of Temporal.PlainYearMonth Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-plainyearmonth-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class PlainYearMonthConstructor final : public NativeFunction {
|
|||
JS_OBJECT(PlainYearMonthConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit PlainYearMonthConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainYearMonthConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit PlainYearMonthConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class PlainYearMonthPrototype final : public PrototypeObject<PlainYearMonthProto
|
|||
JS_PROTOTYPE_OBJECT(PlainYearMonthPrototype, PlainYearMonth, Temporal.PlainYearMonth);
|
||||
|
||||
public:
|
||||
explicit PlainYearMonthPrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~PlainYearMonthPrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit PlainYearMonthPrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(calendar_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(year_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(month_getter);
|
||||
|
|
|
@ -14,9 +14,11 @@ class Temporal final : public Object {
|
|||
JS_OBJECT(Temporal, Object);
|
||||
|
||||
public:
|
||||
explicit Temporal(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~Temporal() override = default;
|
||||
|
||||
private:
|
||||
explicit Temporal(Realm&);
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ public:
|
|||
// Needs to store values in the range -8.64 * 10^13 to 8.64 * 10^13
|
||||
using OffsetType = double;
|
||||
|
||||
explicit TimeZone(Object& prototype);
|
||||
virtual ~TimeZone() override = default;
|
||||
|
||||
[[nodiscard]] String const& identifier() const { return m_identifier; }
|
||||
|
@ -30,6 +29,8 @@ public:
|
|||
void set_offset_nanoseconds(OffsetType offset_nanoseconds) { m_offset_nanoseconds = offset_nanoseconds; };
|
||||
|
||||
private:
|
||||
explicit TimeZone(Object& prototype);
|
||||
|
||||
// 11.5 Properties of Temporal.TimeZone Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-timezone-instances
|
||||
String m_identifier; // [[Identifier]]
|
||||
Optional<OffsetType> m_offset_nanoseconds; // [[OffsetNanoseconds]]
|
||||
|
|
|
@ -14,7 +14,6 @@ class TimeZoneConstructor final : public NativeFunction {
|
|||
JS_OBJECT(TimeZoneConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit TimeZoneConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~TimeZoneConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit TimeZoneConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class TimeZonePrototype final : public PrototypeObject<TimeZonePrototype, TimeZo
|
|||
JS_PROTOTYPE_OBJECT(TimeZonePrototype, TimeZone, Temporal.TimeZone);
|
||||
|
||||
public:
|
||||
explicit TimeZonePrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~TimeZonePrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit TimeZonePrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(id_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(get_offset_nanoseconds_for);
|
||||
JS_DECLARE_NATIVE_FUNCTION(get_offset_string_for);
|
||||
|
|
|
@ -15,7 +15,6 @@ class ZonedDateTime final : public Object {
|
|||
JS_OBJECT(ZonedDateTime, Object);
|
||||
|
||||
public:
|
||||
ZonedDateTime(BigInt const& nanoseconds, Object& time_zone, Object& calendar, Object& prototype);
|
||||
virtual ~ZonedDateTime() override = default;
|
||||
|
||||
[[nodiscard]] BigInt const& nanoseconds() const { return m_nanoseconds; }
|
||||
|
@ -25,6 +24,8 @@ public:
|
|||
[[nodiscard]] Object& calendar() { return m_calendar; }
|
||||
|
||||
private:
|
||||
ZonedDateTime(BigInt const& nanoseconds, Object& time_zone, Object& calendar, Object& prototype);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
// 6.4 Properties of Temporal.ZonedDateTime Instances, https://tc39.es/proposal-temporal/#sec-properties-of-temporal-zoneddatetime-instances
|
||||
|
|
|
@ -14,7 +14,6 @@ class ZonedDateTimeConstructor final : public NativeFunction {
|
|||
JS_OBJECT(ZonedDateTimeConstructor, NativeFunction);
|
||||
|
||||
public:
|
||||
explicit ZonedDateTimeConstructor(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~ZonedDateTimeConstructor() override = default;
|
||||
|
||||
|
@ -22,6 +21,8 @@ public:
|
|||
virtual ThrowCompletionOr<Object*> construct(FunctionObject& new_target) override;
|
||||
|
||||
private:
|
||||
explicit ZonedDateTimeConstructor(Realm&);
|
||||
|
||||
virtual bool has_constructor() const override { return true; }
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(from);
|
||||
|
|
|
@ -15,11 +15,12 @@ class ZonedDateTimePrototype final : public PrototypeObject<ZonedDateTimePrototy
|
|||
JS_PROTOTYPE_OBJECT(ZonedDateTimePrototype, ZonedDateTime, Temporal.ZonedDateTime);
|
||||
|
||||
public:
|
||||
explicit ZonedDateTimePrototype(Realm&);
|
||||
virtual void initialize(Realm&) override;
|
||||
virtual ~ZonedDateTimePrototype() override = default;
|
||||
|
||||
private:
|
||||
explicit ZonedDateTimePrototype(Realm&);
|
||||
|
||||
JS_DECLARE_NATIVE_FUNCTION(calendar_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(time_zone_getter);
|
||||
JS_DECLARE_NATIVE_FUNCTION(year_getter);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue