5#ifndef V8_OBJECTS_JS_TEMPORAL_OBJECTS_INL_H_
6#define V8_OBJECTS_JS_TEMPORAL_OBJECTS_INL_H_
20#include "torque-generated/src/objects/js-temporal-objects-tq-inl.inc"
22#define TEMPORAL_INLINE_GETTER_SETTER(T, data, field, lower, upper, B) \
23 inline void T::set_##field(int32_t field) { \
24 DCHECK_GE(upper, field); \
25 DCHECK_LE(lower, field); \
27 hints = B##Bits::update(hints, field); \
30 inline int32_t T::field() const { \
31 int32_t v = B##Bits::decode(data()); \
32 DCHECK_GE(upper, v); \
33 DCHECK_LE(lower, v); \
37#define TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, field, lower, upper, B) \
38 inline void T::set_##field(int32_t field) { \
39 DCHECK_GE(upper, field); \
40 DCHECK_LE(lower, field); \
43 field &= (static_cast<uint32_t>(int32_t{-1})) ^ \
44 (static_cast<uint32_t>(int32_t{-1}) << B##Bits::kSize); \
45 hints = B##Bits::update(hints, field); \
48 inline int32_t T::field() const { \
49 int32_t v = B##Bits::decode(data()); \
51 v |= ((int32_t{1} << (B##Bits::kSize - 1) & v) \
52 ? (static_cast<uint32_t>(int32_t{-1}) << B##Bits::kSize) \
54 DCHECK_GE(upper, v); \
55 DCHECK_LE(lower, v); \
59#define TEMPORAL_DATE_INLINE_GETTER_SETTER(T, data) \
60 TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, iso_year, -271821, 275760, \
62 TEMPORAL_INLINE_GETTER_SETTER(T, data, iso_month, 1, 12, IsoMonth) \
63 TEMPORAL_INLINE_GETTER_SETTER(T, data, iso_day, 1, 31, IsoDay)
65#define TEMPORAL_TIME_INLINE_GETTER_SETTER(T, data1, data2) \
66 TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_hour, 0, 23, IsoHour) \
67 TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_minute, 0, 59, IsoMinute) \
68 TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_second, 0, 59, IsoSecond) \
69 TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_millisecond, 0, 999, \
71 TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_microsecond, 0, 999, \
73 TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_nanosecond, 0, 999, IsoNanosecond)
104 OffsetMillisecondsOrTimeZoneIndex)
107 offset_sub_milliseconds, -1000000, 1000000,
108 OffsetSubMilliseconds)
117#include "src/objects/object-macros-undef.h"
#define TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, field, lower, upper, B)
#define TEMPORAL_TIME_INLINE_GETTER_SETTER(T, data1, data2)
#define TEMPORAL_DATE_INLINE_GETTER_SETTER(T, data)
second_parts OffsetMillisecondsOrTimeZoneIndex offset_milliseconds_or_time_zone_index
second_parts offset_milliseconds
#define BOOL_ACCESSORS(holder, field, name, offset)
#define TQ_OBJECT_CONSTRUCTORS_IMPL(Type)
#define BIT_FIELD_ACCESSORS(holder, field, name, BitField)