v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
js-temporal-objects-inl.h File Reference
#include "src/objects/js-temporal-objects.h"
#include "src/api/api-inl.h"
#include "src/objects/objects-inl.h"
#include "src/objects/object-macros.h"
#include "torque-generated/src/objects/js-temporal-objects-tq-inl.inc"
#include "src/objects/object-macros-undef.h"
Include dependency graph for js-temporal-objects-inl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::internal
 

Macros

#define TEMPORAL_INLINE_GETTER_SETTER(T, data, field, lower, upper, B)
 
#define TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, field, lower, upper, B)
 
#define TEMPORAL_DATE_INLINE_GETTER_SETTER(T, data)
 
#define TEMPORAL_TIME_INLINE_GETTER_SETTER(T, data1, data2)
 

Functions

 v8::internal::TEMPORAL_TIME_INLINE_GETTER_SETTER (JSTemporalPlainDateTime, hour_minute_second, second_parts) TEMPORAL_TIME_INLINE_GETTER_SETTER(JSTemporalPlainTime
 
second_parts v8::internal::BIT_FIELD_ACCESSORS (JSTemporalCalendar, flags, calendar_index, JSTemporalCalendar::CalendarIndexBits) TEMPORAL_INLINE_SIGNED_GETTER_SETTER(JSTemporalTimeZone
 
second_parts OffsetMillisecondsOrTimeZoneIndex v8::internal::TEMPORAL_INLINE_SIGNED_GETTER_SETTER (JSTemporalTimeZone, details, offset_sub_milliseconds, -1000000, 1000000, OffsetSubMilliseconds) BIT_FIELD_ACCESSORS(JSTemporalTimeZone
 

Variables

 v8::internal::hour_minute_second
 
second_parts v8::internal::offset_milliseconds
 
second_parts OffsetMillisecondsOrTimeZoneIndex v8::internal::offset_milliseconds_or_time_zone_index
 

Macro Definition Documentation

◆ TEMPORAL_DATE_INLINE_GETTER_SETTER

#define TEMPORAL_DATE_INLINE_GETTER_SETTER ( T,
data )
Value:
TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, iso_year, -271821, 275760, \
IsoYear) \
TEMPORAL_INLINE_GETTER_SETTER(T, data, iso_month, 1, 12, IsoMonth) \
TEMPORAL_INLINE_GETTER_SETTER(T, data, iso_day, 1, 31, IsoDay)
#define TEMPORAL_INLINE_SIGNED_GETTER_SETTER(T, data, field, lower, upper, B)

Definition at line 59 of file js-temporal-objects-inl.h.

◆ TEMPORAL_INLINE_GETTER_SETTER

#define TEMPORAL_INLINE_GETTER_SETTER ( T,
data,
field,
lower,
upper,
B )
Value:
inline void T::set_##field(int32_t field) { \
DCHECK_GE(upper, field); \
DCHECK_LE(lower, field); \
int hints = data(); \
hints = B##Bits::update(hints, field); \
set_##data(hints); \
} \
inline int32_t T::field() const { \
int32_t v = B##Bits::decode(data()); \
DCHECK_GE(upper, v); \
DCHECK_LE(lower, v); \
return v; \
}
union v8::internal::@341::BuiltinMetadata::KindSpecificData data
ZoneVector< InstructionOperand > * set_

Definition at line 22 of file js-temporal-objects-inl.h.

◆ TEMPORAL_INLINE_SIGNED_GETTER_SETTER

#define TEMPORAL_INLINE_SIGNED_GETTER_SETTER ( T,
data,
field,
lower,
upper,
B )
Value:
inline void T::set_##field(int32_t field) { \
DCHECK_GE(upper, field); \
DCHECK_LE(lower, field); \
int hints = data(); \
/* Mask out unrelated bits */ \
field &= (static_cast<uint32_t>(int32_t{-1})) ^ \
(static_cast<uint32_t>(int32_t{-1}) << B##Bits::kSize); \
hints = B##Bits::update(hints, field); \
set_##data(hints); \
} \
inline int32_t T::field() const { \
int32_t v = B##Bits::decode(data()); \
/* Restore bits for negative values based on the MSB in that field */ \
v |= ((int32_t{1} << (B##Bits::kSize - 1) & v) \
? (static_cast<uint32_t>(int32_t{-1}) << B##Bits::kSize) \
: 0); \
DCHECK_GE(upper, v); \
DCHECK_LE(lower, v); \
return v; \
}
int int32_t
Definition unicode.cc:40
constexpr int B

Definition at line 37 of file js-temporal-objects-inl.h.

◆ TEMPORAL_TIME_INLINE_GETTER_SETTER

#define TEMPORAL_TIME_INLINE_GETTER_SETTER ( T,
data1,
data2 )
Value:
TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_hour, 0, 23, IsoHour) \
TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_minute, 0, 59, IsoMinute) \
TEMPORAL_INLINE_GETTER_SETTER(T, data1, iso_second, 0, 59, IsoSecond) \
TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_millisecond, 0, 999, \
IsoMillisecond) \
TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_microsecond, 0, 999, \
IsoMicrosecond) \
TEMPORAL_INLINE_GETTER_SETTER(T, data2, iso_nanosecond, 0, 999, IsoNanosecond)
#define TEMPORAL_INLINE_GETTER_SETTER(T, data, field, lower, upper, B)

Definition at line 65 of file js-temporal-objects-inl.h.