Class TemporalUtil

java.lang.Object
com.oracle.truffle.js.runtime.util.TemporalUtil

public final class TemporalUtil extends Object
  • Field Details

    • singularToPlural

      public static final Map<com.oracle.truffle.api.strings.TruffleString, com.oracle.truffle.api.strings.TruffleString> singularToPlural
    • temporalFieldDefaults

      public static final Map<com.oracle.truffle.api.strings.TruffleString, Object> temporalFieldDefaults
    • listEmpty

      public static final List<com.oracle.truffle.api.strings.TruffleString> listEmpty
    • listDMMCY

      public static final List<com.oracle.truffle.api.strings.TruffleString> listDMMCY
    • listMMCY

      public static final List<com.oracle.truffle.api.strings.TruffleString> listMMCY
    • listMCY

      public static final List<com.oracle.truffle.api.strings.TruffleString> listMCY
    • listDMC

      public static final List<com.oracle.truffle.api.strings.TruffleString> listDMC
    • listYD

      public static final List<com.oracle.truffle.api.strings.TruffleString> listYD
    • listY

      public static final List<com.oracle.truffle.api.strings.TruffleString> listY
    • listD

      public static final List<com.oracle.truffle.api.strings.TruffleString> listD
    • unitMappingDate

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingDate
    • unitMappingDateOrAuto

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingDateOrAuto
    • unitMappingTime

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingTime
    • unitMappingTimeOrDay

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingTimeOrDay
    • unitMappingTimeOrAuto

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingTimeOrAuto
    • unitMappingDateTime

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingDateTime
    • unitMappingDateTimeOrAuto

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingDateTimeOrAuto
    • unitMappingYearMonth

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingYearMonth
    • unitMappingYearMonthOrAuto

      public static final Map<com.oracle.truffle.api.strings.TruffleString, TemporalUtil.Unit> unitMappingYearMonthOrAuto
    • listAuto

      public static final List<com.oracle.truffle.api.strings.TruffleString> listAuto
    • listAutoNever

      public static final List<com.oracle.truffle.api.strings.TruffleString> listAutoNever
    • listAutoNeverCritical

      public static final List<com.oracle.truffle.api.strings.TruffleString> listAutoNeverCritical
    • listAutoAlwaysNeverCritical

      public static final List<com.oracle.truffle.api.strings.TruffleString> listAutoAlwaysNeverCritical
    • listConstrainReject

      public static final List<com.oracle.truffle.api.strings.TruffleString> listConstrainReject
    • listTimeZone

      public static final List<com.oracle.truffle.api.strings.TruffleString> listTimeZone
    • listTimeZoneOffset

      public static final List<com.oracle.truffle.api.strings.TruffleString> listTimeZoneOffset
    • listRoundingMode

      public static final List<com.oracle.truffle.api.strings.TruffleString> listRoundingMode
    • listOffset

      public static final List<com.oracle.truffle.api.strings.TruffleString> listOffset
    • listOffsets

      public static final List<com.oracle.truffle.api.strings.TruffleString> listOffsets
    • listDisambiguation

      public static final List<com.oracle.truffle.api.strings.TruffleString> listDisambiguation
    • TIME_LIKE_PROPERTIES

      public static final com.oracle.truffle.api.strings.TruffleString[] TIME_LIKE_PROPERTIES
    • MS_PER_DAY

      public static final int MS_PER_DAY
      See Also:
    • NS_PER_DAY_LONG

      public static final long NS_PER_DAY_LONG
      See Also:
    • NS_PER_DAY

      public static final double NS_PER_DAY
      See Also:
    • BI_NS_PER_DAY

      public static final BigInt BI_NS_PER_DAY
    • BI_NS_PER_HOUR

      public static final BigInt BI_NS_PER_HOUR
    • BI_NS_PER_MINUTE

      public static final BigInt BI_NS_PER_MINUTE
    • BI_NS_PER_SECOND

      public static final BigInt BI_NS_PER_SECOND
    • BI_NS_PER_MS

      public static final BigInt BI_NS_PER_MS
    • BI_1000

      public static final BigInt BI_1000
    • BI_24

      public static final BigInt BI_24
    • BI_60

      public static final BigInt BI_60
    • BD_10

      public static final BigDecimal BD_10
    • BD_60

      public static final BigDecimal BD_60
    • BD_1000

      public static final BigDecimal BD_1000
    • mc_20_floor

      public static final MathContext mc_20_floor
    • HOURS_PER_DAY

      public static final int HOURS_PER_DAY
      See Also:
    • MINUTES_PER_HOUR

      public static final int MINUTES_PER_HOUR
      See Also:
    • SECONDS_PER_MINUTE

      public static final int SECONDS_PER_MINUTE
      See Also:
    • SINCE

      public static final int SINCE
      See Also:
    • UNTIL

      public static final int UNTIL
      See Also:
    • SUBTRACT

      public static final int SUBTRACT
      See Also:
    • ADD

      public static final int ADD
      See Also:
  • Constructor Details

    • TemporalUtil

      public TemporalUtil()
  • Method Details

    • validateTemporalRoundingIncrement

      public static int validateTemporalRoundingIncrement(int increment, long dividend, boolean inclusive, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • toSecondsStringPrecisionRecord

      public static JSTemporalPrecisionRecord toSecondsStringPrecisionRecord(TemporalUtil.Unit smallestUnit, int fractionalDigitCount)
    • parseTemporalRelativeToString

      public static ParseISODateTimeResult parseTemporalRelativeToString(com.oracle.truffle.api.strings.TruffleString isoString)
    • parseTemporalMonthDayString

      public static JSTemporalDateTimeRecord parseTemporalMonthDayString(com.oracle.truffle.api.strings.TruffleString string)
    • validateTemporalUnitRange

      public static void validateTemporalUnitRange(TemporalUtil.Unit largestUnit, TemporalUtil.Unit smallestUnit)
    • maximumTemporalDurationRoundingIncrement

      public static Integer maximumTemporalDurationRoundingIncrement(TemporalUtil.Unit unit)
    • formatSecondsStringPart

      public static com.oracle.truffle.api.strings.TruffleString formatSecondsStringPart(long second, long millisecond, long microsecond, long nanosecond, Object precision)
    • nonNegativeModulo

      public static int nonNegativeModulo(double x, int y)
    • nonNegativeModulo

      public static int nonNegativeModulo(long x, int y)
    • nonNegativeModulo

      public static int nonNegativeModulo(int x, int y)
    • constrainToRange

      public static int constrainToRange(int value, int minimum, int maximum)
    • getUnsignedRoundingMode

      public static TemporalUtil.UnsignedRoundingMode getUnsignedRoundingMode(TemporalUtil.RoundingMode roundingMode, boolean isNegative)
    • applyUnsignedRoundingMode

      public static double applyUnsignedRoundingMode(double x, double r1, double r2, TemporalUtil.UnsignedRoundingMode urm)
    • applyUnsignedRoundingMode

      public static double applyUnsignedRoundingMode(BigInt numerator, BigInt denominator, double r1, double r2, TemporalUtil.UnsignedRoundingMode urm)
    • roundNumberToIncrement

      public static double roundNumberToIncrement(double x, double increment, TemporalUtil.RoundingMode roundingMode)
    • roundNumberToIncrementAsIfPositive

      public static BigInt roundNumberToIncrementAsIfPositive(BigInt x, BigInt increment, TemporalUtil.RoundingMode roundingMode)
    • roundNormalizedTimeDurationToIncrement

      public static BigInt roundNormalizedTimeDurationToIncrement(BigInt normalizedTimeDuration, long unitLengthInNs, int increment, TemporalUtil.RoundingMode roundingMode)
    • roundNormalizedTimeDurationToIncrement

      public static BigInt roundNormalizedTimeDurationToIncrement(BigInt normalizedTimeDuration, BigInt increment, TemporalUtil.RoundingMode roundingMode)
    • parseTemporalCalendarString

      public static com.oracle.truffle.api.strings.TruffleString parseTemporalCalendarString(com.oracle.truffle.api.strings.TruffleString string)
    • toPositiveInteger

      public static double toPositiveInteger(Object value)
    • toPositiveIntegerConstrainInt

      public static int toPositiveIntegerConstrainInt(Object value, JSToIntegerThrowOnInfinityNode toIntegerThrowOnInfinityNode, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • prepareTemporalFields

      public static JSObject prepareTemporalFields(JSContext ctx, Object fields, List<com.oracle.truffle.api.strings.TruffleString> fieldNames, List<com.oracle.truffle.api.strings.TruffleString> requiredFields)
    • regulateISOYearMonth

      public static TemporalUtil.ISOYearMonthRecord regulateISOYearMonth(int year, int month, TemporalUtil.Overflow overflow)
    • toISODayOfWeek

      public static long toISODayOfWeek(int year, int month, int day)
    • toISODayOfYear

      public static int toISODayOfYear(int year, int month, int day)
    • weekOfToISOWeekOfYear

      public static long weekOfToISOWeekOfYear(int year, int month, int day)
    • yearOfToISOWeekOfYear

      public static long yearOfToISOWeekOfYear(int year, int month, int day)
    • isoDaysInYear

      public static int isoDaysInYear(int year)
    • isoDaysInMonth

      public static int isoDaysInMonth(int year, int month)
    • balanceISOYearMonth

      public static ISODateRecord balanceISOYearMonth(int year, int month)
    • balanceISOYearMonth

      public static ISODateRecord balanceISOYearMonth(double year, double month)
    • isBuiltinCalendar

      public static boolean isBuiltinCalendar(com.oracle.truffle.api.strings.TruffleString id)
    • iterableToListOfTypeString

      public static List<com.oracle.truffle.api.strings.TruffleString> iterableToListOfTypeString(JSDynamicObject items)
    • parseTemporalDateTimeString

      public static JSTemporalDateTimeRecord parseTemporalDateTimeString(com.oracle.truffle.api.strings.TruffleString string)
    • parseTemporalDateString

      public static JSTemporalDateTimeRecord parseTemporalDateString(com.oracle.truffle.api.strings.TruffleString string)
    • parseTemporalTimeString

      public static JSTemporalDateTimeRecord parseTemporalTimeString(com.oracle.truffle.api.strings.TruffleString string)
    • buildISOMonthCode

      public static com.oracle.truffle.api.strings.TruffleString buildISOMonthCode(int month)
    • getAvailableNamedTimeZoneIdentifier

      public static Pair<com.oracle.truffle.api.strings.TruffleString, com.oracle.truffle.api.strings.TruffleString> getAvailableNamedTimeZoneIdentifier(com.oracle.truffle.api.strings.TruffleString timeZone)
    • isoDateTimeWithinLimits

      public static boolean isoDateTimeWithinLimits(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, int nanosecond)
    • getUTCEpochNanoseconds

      public static BigInt getUTCEpochNanoseconds(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, int nanosecond)
      The abstract operation GetUTCEpochNanoseconds.
      Parameters:
      year - an integer
      month - an integer in the inclusive interval from 1 to 12
      day - an integer in the inclusive interval from 1 to 31
      hour - an integer in the inclusive interval from 0 to 23
      minute - an integer in the inclusive interval from 0 to 59
      second - an integer in the inclusive interval from 0 to 59
      millisecond - an integer in the inclusive interval from 0 to 999
      microsecond - an integer in the inclusive interval from 0 to 999
      nanosecond - an integer in the inclusive interval from 0 to 999
      Returns:
      number of nanoseconds since the epoch that corresponds to the given ISO 8601 calendar date and wall-clock time in UTC.
    • toTemporalOverflow

      public static TemporalUtil.Overflow toTemporalOverflow(Object options)
    • toTemporalOverflow

      public static TemporalUtil.Overflow toTemporalOverflow(Object options, TemporalGetOptionNode getOptionNode)
    • getTemporalOverflowOption

      public static TemporalUtil.Overflow getTemporalOverflowOption(Object options, TemporalGetOptionNode getOptionNode)
    • interpretTemporalDateTimeFields

      public static JSTemporalDateTimeRecord interpretTemporalDateTimeFields(com.oracle.truffle.api.strings.TruffleString calendar, Object fields, TemporalUtil.Overflow overflow, TemporalCalendarDateFromFieldsNode dateFromFieldsNode)
    • regulateTime

      public static JSTemporalDurationRecord regulateTime(int hours, int minutes, int seconds, int milliseconds, int microseconds, int nanoseconds, TemporalUtil.Overflow overflow)
    • constrainTime

      public static JSTemporalDurationRecord constrainTime(int hours, int minutes, int seconds, int milliseconds, int microseconds, int nanoseconds)
    • toTemporalTimeRecord

      public static JSTemporalDateTimeRecord toTemporalTimeRecord(Object temporalTimeLike)
    • toIntegerThrowOnInfinity

      public static Number toIntegerThrowOnInfinity(Object value)
    • toIntegerOrInfinity

      public static Number toIntegerOrInfinity(Object value)
    • calendarDateAdd

      public static JSTemporalPlainDateObject calendarDateAdd(JSContext context, JSRealm realm, com.oracle.truffle.api.strings.TruffleString calendar, JSTemporalPlainDateObject isoDate, JSTemporalDurationObject duration, TemporalUtil.Overflow overflow, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • calendarDateUntil

      public static JSTemporalDurationObject calendarDateUntil(JSContext context, JSRealm realm, com.oracle.truffle.api.strings.TruffleString calendar, JSTemporalPlainDateObject one, JSTemporalPlainDateObject two, TemporalUtil.Unit largestUnit, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • roundTemporalInstant

      public static BigInt roundTemporalInstant(BigInt ns, int increment, TemporalUtil.Unit unit, TemporalUtil.RoundingMode roundingMode)
    • regulateISODate

      public static ISODateRecord regulateISODate(int year, int monthParam, int dayParam, TemporalUtil.Overflow overflow)
    • balanceISODate

      public static ISODateRecord balanceISODate(int year, int month, int day)
    • createISODateRecord

      public static ISODateRecord createISODateRecord(int year, int month, int day)
    • balanceISODate

      public static ISODateRecord balanceISODate(int year, int month, double day)
    • balanceISODate

      public static ISODateRecord balanceISODate(double year, double month, double day)
    • addISODate

      public static ISODateRecord addISODate(int year, int month, int day, int years, int months, int weeks, int daysP, TemporalUtil.Overflow overflow)
      Add ISO date. Only called with int range values, or constrained immediately afterwards.
    • addISODate

      public static ISODateRecord addISODate(int year, int month, int day, double years, double months, double weeks, double daysP, TemporalUtil.Overflow overflow)
      Add duration. Both the duration and the result can be outside the valid ISO Date range. However, we eager throw for values outside the supported range for simplicity.
    • compareISODate

      public static int compareISODate(int y1, int m1, int d1, int y2, int m2, int d2)
    • requireTemporalDate

      public static JSTemporalPlainDateObject requireTemporalDate(Object obj, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • requireTemporalDate

      public static JSTemporalPlainDateObject requireTemporalDate(Object obj)
    • requireTemporalDuration

      public static JSTemporalDurationObject requireTemporalDuration(Object obj)
    • isTemporalZonedDateTime

      public static boolean isTemporalZonedDateTime(Object obj)
    • toShowCalendarOption

      public static TemporalUtil.ShowCalendar toShowCalendarOption(JSDynamicObject options, TemporalGetOptionNode getOptionNode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • toZeroPaddedDecimalString

      public static com.oracle.truffle.api.strings.TruffleString toZeroPaddedDecimalString(long number, int digits)
    • padISOYear

      public static com.oracle.truffle.api.strings.TruffleString padISOYear(int year)
    • maybeFormatCalendarAnnotation

      public static com.oracle.truffle.api.strings.TruffleString maybeFormatCalendarAnnotation(Object calendar, TemporalUtil.ShowCalendar showCalendar)
    • formatCalendarAnnotation

      public static com.oracle.truffle.api.strings.TruffleString formatCalendarAnnotation(com.oracle.truffle.api.strings.TruffleString id, TemporalUtil.ShowCalendar showCalendar)
    • negateTemporalRoundingMode

      public static TemporalUtil.RoundingMode negateTemporalRoundingMode(TemporalUtil.RoundingMode roundingMode)
    • calendarEquals

      public static boolean calendarEquals(Object one, Object two, ToTemporalCalendarIdentifierNode toCalendarIdentifier)
    • calendarMergeFields

      public static JSDynamicObject calendarMergeFields(JSContext ctx, com.oracle.truffle.api.strings.TruffleString calendar, JSDynamicObject fields, JSDynamicObject additionalFields)
    • defaultMergeFields

      public static JSDynamicObject defaultMergeFields(JSContext ctx, JSDynamicObject fields, JSDynamicObject additionalFields)
    • createDataPropertyOrThrow

      public static void createDataPropertyOrThrow(JSContext ctx, JSDynamicObject obj, Object key, Object value)
    • listJoinRemoveDuplicates

      public static List<com.oracle.truffle.api.strings.TruffleString> listJoinRemoveDuplicates(List<com.oracle.truffle.api.strings.TruffleString> first, List<com.oracle.truffle.api.strings.TruffleString> second)
    • largerOfTwoTemporalUnits

      public static TemporalUtil.Unit largerOfTwoTemporalUnits(TemporalUtil.Unit a, TemporalUtil.Unit b)
    • createDateDurationRecord

      public static DateDurationRecord createDateDurationRecord(double years, double months, double weeks, double days)
    • createNormalizedDurationRecord

      public static NormalizedDurationRecord createNormalizedDurationRecord(double years, double months, double weeks, double days, BigInt normalizedTimeDuration)
    • combineDateAndNormalizedTimeDuration

      public static NormalizedDurationRecord combineDateAndNormalizedTimeDuration(DateDurationRecord dateDuration, BigInt normalizedTimeDuration)
    • mergeLargestUnitOption

      public static JSObject mergeLargestUnitOption(JSContext ctx, EnumerableOwnPropertyNamesNode namesNode, JSDynamicObject options, TemporalUtil.Unit largestUnit)
    • durationSign

      public static int durationSign(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
    • rejectDurationSign

      public static void rejectDurationSign(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
    • balanceTimeDuration

      public static TimeDurationRecord balanceTimeDuration(BigInt normalizedTimeDuration, TemporalUtil.Unit largestUnit)
    • toDynamicObject

      public static JSDynamicObject toDynamicObject(Object obj)
    • toJSDynamicObject

      public static JSDynamicObject toJSDynamicObject(Object item, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • isValidDuration

      public static boolean isValidDuration(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
    • defaultTemporalLargestUnit

      public static TemporalUtil.Unit defaultTemporalLargestUnit(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds)
    • addDaysToZonedDateTime

      public static TemporalUtil.AddDaysToZonedDateTimeResult addDaysToZonedDateTime(JSContext ctx, JSRealm realm, JSTemporalInstantObject instant, JSTemporalPlainDateTimeObject dateTime, com.oracle.truffle.api.strings.TruffleString timeZone, int days)
    • addDaysToZonedDateTime

      public static TemporalUtil.AddDaysToZonedDateTimeResult addDaysToZonedDateTime(JSContext ctx, JSRealm realm, JSTemporalInstantObject instant, JSTemporalPlainDateTimeObject dateTime, com.oracle.truffle.api.strings.TruffleString timeZone, int days, TemporalUtil.Overflow overflow)
    • totalDurationNanoseconds

      public static BigInt totalDurationNanoseconds(double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
    • normalizeTimeDuration

      public static BigInt normalizeTimeDuration(double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
      Returns normalized time duration consisting of whole seconds, and subseconds expressed in nanoseconds.. The normalized time duration can be stored losslessly in two 64-bit floating point numbers. Alternatively, normalizedSeconds * 10**9 + subseconds can be stored as a 96-bit integer.
      Returns:
      normalized time duration consisting of whole seconds, and subseconds expressed in nanoseconds
    • add24HourDaysToNormalizedTimeDuration

      public static BigInt add24HourDaysToNormalizedTimeDuration(BigInt timeDurationTotalNanoseconds, double days)
    • addNormalizedTimeDurationToEpochNanoseconds

      public static BigInt addNormalizedTimeDurationToEpochNanoseconds(BigInt timeDurationTotalNanoseconds, BigInt epochNs)
    • addNormalizedTimeDuration

      public static BigInt addNormalizedTimeDuration(BigInt one, BigInt two)
    • subtractNormalizedTimeDuration

      public static BigInt subtractNormalizedTimeDuration(BigInt one, BigInt two)
    • normalizedTimeDurationFromEpochNanosecondsDifference

      public static BigInt normalizedTimeDurationFromEpochNanosecondsDifference(BigInt one, BigInt two)
    • divideNormalizedTimeDurationAsDouble

      public static double divideNormalizedTimeDurationAsDouble(BigInt normalizedTimeDuration, long divisor)
    • divideNormalizedTimeDurationAsDoubleTruncate

      public static double divideNormalizedTimeDurationAsDoubleTruncate(BigInt normalizedTimeDuration, long divisor)
    • remainderNormalizedTimeDuration

      public static BigInt remainderNormalizedTimeDuration(BigInt normalizedTimeDuration, long divisor)
    • normalizeTimeDurationSeconds

      public static double normalizeTimeDurationSeconds(BigInt timeDurationTotalNanoseconds)
    • normalizeTimeDurationSubseconds

      public static double normalizeTimeDurationSubseconds(BigInt timeDurationTotalNanoseconds)
    • normalizedTimeDurationAbs

      public static BigInt normalizedTimeDurationAbs(BigInt timeDurationTotalNanoseconds)
    • normalizedTimeDurationSign

      public static int normalizedTimeDurationSign(BigInt timeDurationTotalNanoseconds)
    • zeroTimeDuration

      public static BigInt zeroTimeDuration()
    • daysUntil

      public static long daysUntil(JSTemporalPlainDateObject earlier, JSTemporalPlainDateObject later)
    • differenceTime

      public static BigInt differenceTime(int h1, int min1, int s1, int ms1, int mus1, int ns1, int h2, int min2, int s2, int ms2, int mus2, int ns2)
    • roundTimeDuration

      public static TemporalUtil.NormalizedDurationWithTotalRecord roundTimeDuration(double days0, BigInt norm0, int increment, TemporalUtil.Unit unit, TemporalUtil.RoundingMode roundingMode)
    • roundTime

      public static TimeRecord roundTime(int hours, int minutes, int seconds, int milliseconds, int microseconds, int nanoseconds, int increment, TemporalUtil.Unit unit, TemporalUtil.RoundingMode roundingMode, Long dayLengthNsParam)
    • balanceTimeDouble

      public static TimeRecord balanceTimeDouble(double h, double min, double sec, double mils, double mics, double ns, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • balanceTime

      public static TimeRecord balanceTime(long h, long min, long sec, long mils, long mics, long ns)
    • compareTemporalTime

      public static int compareTemporalTime(int h1, int min1, int s1, int ms1, int mus1, int ns1, int h2, int min2, int s2, int ms2, int mus2, int ns2)
    • addTimeDouble

      public static TimeRecord addTimeDouble(int hour, int minute, int second, int millisecond, int microsecond, double nanosecond, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • addTime

      public static TimeRecord addTime(int hour, int minute, int second, int millisecond, int microsecond, double nanosecond, BigInt normalizedTimeDuration, com.oracle.truffle.api.nodes.Node node, com.oracle.truffle.api.profiles.InlinedBranchProfile errorBranch)
    • roundISODateTime

      public static JSTemporalDurationRecord roundISODateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, int nanosecond, int increment, TemporalUtil.Unit unit, TemporalUtil.RoundingMode roundingMode, Long dayLength)
    • isValidTime

      public static boolean isValidTime(int hours, int minutes, int seconds, int milliseconds, int microseconds, int nanoseconds)
    • isValidISODate

      public static boolean isValidISODate(int year, int month, int day)
    • systemDateTime

      public static JSTemporalDateTimeRecord systemDateTime(JSRealm realm, Object temporalTimeZoneLike, ToTemporalTimeZoneIdentifierNode toTimeZoneIdentifier)
    • builtinTimeZoneGetPlainDateTimeFor

      public static JSTemporalPlainDateTimeObject builtinTimeZoneGetPlainDateTimeFor(JSContext ctx, JSRealm realm, com.oracle.truffle.api.strings.TruffleString timeZone, JSTemporalInstantObject instant, com.oracle.truffle.api.strings.TruffleString calendar)
    • builtinTimeZoneGetPlainDateTimeFor

      public static JSTemporalPlainDateTimeObject builtinTimeZoneGetPlainDateTimeFor(JSContext ctx, JSRealm realm, JSTemporalInstantObject instant, com.oracle.truffle.api.strings.TruffleString calendar, long precalculatedOffsetNanoseconds)
    • balanceISODateTime

      public static JSTemporalDateTimeRecord balanceISODateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, long nanosecond)
    • getISODateTimeFor

      public static JSTemporalDateTimeRecord getISODateTimeFor(com.oracle.truffle.api.strings.TruffleString timeZone, BigInt epochNs)
    • getISOPartsFromEpoch

      public static JSTemporalDateTimeRecord getISOPartsFromEpoch(BigInt epochNanoseconds)
    • getOffsetNanosecondsFor

      public static long getOffsetNanosecondsFor(com.oracle.truffle.api.strings.TruffleString timeZone, BigInt epochNs)
    • systemInstant

      public static JSTemporalInstantObject systemInstant(JSContext ctx, JSRealm realm)
    • systemUTCEpochNanoseconds

      public static BigInt systemUTCEpochNanoseconds(JSRealm realm)
    • systemTimeZoneIdentifier

      public static com.oracle.truffle.api.strings.TruffleString systemTimeZoneIdentifier(JSRealm realm)
    • isTemporalInstant

      public static boolean isTemporalInstant(Object obj)
    • compareEpochNanoseconds

      public static int compareEpochNanoseconds(BigInt one, BigInt two)
    • isValidEpochNanoseconds

      public static boolean isValidEpochNanoseconds(BigInt nanoseconds)
    • addInstant

      public static BigInt addInstant(BigInt epochNanoseconds, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
    • addInstant

      public static BigInt addInstant(BigInt epochNanoseconds, long hours, long minutes, long seconds, long milliseconds, long microseconds, BigInt nanoseconds)
    • addInstant

      public static BigInt addInstant(BigInt epochNanoseconds, BigInt normalizedTimeDuration)
    • differenceInstant

      public static TemporalUtil.NormalizedTimeDurationWithTotalRecord differenceInstant(BigInt ns1, BigInt ns2, int roundingIncrement, TemporalUtil.Unit smallestUnit, TemporalUtil.RoundingMode roundingMode)
    • temporalInstantToString

      public static com.oracle.truffle.api.strings.TruffleString temporalInstantToString(JSTemporalInstantObject instant, Object timeZone, Object precision)
    • builtinTimeZoneGetOffsetStringFor

      public static com.oracle.truffle.api.strings.TruffleString builtinTimeZoneGetOffsetStringFor(com.oracle.truffle.api.strings.TruffleString timeZone, JSTemporalInstantObject instant)
    • formatTimeZoneOffsetString

      public static com.oracle.truffle.api.strings.TruffleString formatTimeZoneOffsetString(long offsetNanosecondsParam)
    • parseTimeZoneOffsetString

      public static long parseTimeZoneOffsetString(com.oracle.truffle.api.strings.TruffleString string)
    • parseTemporalTimeZoneString

      public static JSTemporalTimeZoneRecord parseTemporalTimeZoneString(com.oracle.truffle.api.strings.TruffleString string)
    • toTemporalDisambiguation

      public static TemporalUtil.Disambiguation toTemporalDisambiguation(Object options, TemporalGetOptionNode getOptionNode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • toTemporalOffset

      public static TemporalUtil.OffsetOption toTemporalOffset(Object options, com.oracle.truffle.api.strings.TruffleString fallback, TemporalGetOptionNode getOptionNode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • toShowTimeZoneNameOption

      public static com.oracle.truffle.api.strings.TruffleString toShowTimeZoneNameOption(JSDynamicObject options, TemporalGetOptionNode getOptionNode)
    • toShowOffsetOption

      public static com.oracle.truffle.api.strings.TruffleString toShowOffsetOption(JSDynamicObject options, TemporalGetOptionNode getOptionNode)
    • temporalZonedDateTimeToString

      public static com.oracle.truffle.api.strings.TruffleString temporalZonedDateTimeToString(JSContext ctx, JSRealm realm, JSDynamicObject zonedDateTime, Object precision, TemporalUtil.ShowCalendar showCalendar, com.oracle.truffle.api.strings.TruffleString showTimeZone, com.oracle.truffle.api.strings.TruffleString showOffset)
    • compareISODateTime

      public static int compareISODateTime(int year, int month, int day, int hours, int minutes, int seconds, int milliseconds, int microseconds, int nanoseconds, int year2, int month2, int day2, int hours2, int minutes2, int seconds2, int milliseconds2, int microseconds2, int nanoseconds2)
    • parseTemporalYearMonthString

      public static JSTemporalDateTimeRecord parseTemporalYearMonthString(com.oracle.truffle.api.strings.TruffleString string)
    • temporalZonedDateTimeToString

      public static com.oracle.truffle.api.strings.TruffleString temporalZonedDateTimeToString(JSContext ctx, JSRealm realm, JSDynamicObject zonedDateTimeParam, Object precision, TemporalUtil.ShowCalendar showCalendar, com.oracle.truffle.api.strings.TruffleString showTimeZone, com.oracle.truffle.api.strings.TruffleString showOffset, Integer incrementParam, TemporalUtil.Unit unitParam, TemporalUtil.RoundingMode roundingModeParam)
    • formatISOTimeZoneOffsetString

      public static com.oracle.truffle.api.strings.TruffleString formatISOTimeZoneOffsetString(long offsetNs)
    • parseTemporalZonedDateTimeString

      public static ParseISODateTimeResult parseTemporalZonedDateTimeString(com.oracle.truffle.api.strings.TruffleString string)
    • parseTemporalInstant

      public static BigInt parseTemporalInstant(com.oracle.truffle.api.strings.TruffleString string)
    • builtinTimeZoneGetInstantFor

      public static BigInt builtinTimeZoneGetInstantFor(JSContext ctx, JSRealm realm, com.oracle.truffle.api.strings.TruffleString timeZone, JSTemporalPlainDateTimeObject dateTime, TemporalUtil.Disambiguation disambiguation)
    • disambiguatePossibleEpochNanoseconds

      public static BigInt disambiguatePossibleEpochNanoseconds(JSContext ctx, JSRealm realm, List<BigInt> possibleEpochNs, com.oracle.truffle.api.strings.TruffleString timeZone, JSTemporalPlainDateTimeObject dateTime, TemporalUtil.Disambiguation disambiguation)
    • interpretISODateTimeOffset

      public static BigInt interpretISODateTimeOffset(JSContext ctx, JSRealm realm, int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond, int nanosecond, TemporalUtil.OffsetBehaviour offsetBehaviour, Object offsetNanosecondsParam, com.oracle.truffle.api.strings.TruffleString timeZone, TemporalUtil.Disambiguation disambiguation, TemporalUtil.OffsetOption offsetOption, TemporalUtil.MatchBehaviour matchBehaviour)
    • timeZoneEquals

      public static boolean timeZoneEquals(Object one, Object two, ToTemporalTimeZoneIdentifierNode toTimeZoneIdentifier)
    • consolidateCalendars

      public static com.oracle.truffle.api.strings.TruffleString consolidateCalendars(com.oracle.truffle.api.strings.TruffleString one, com.oracle.truffle.api.strings.TruffleString two, ToTemporalCalendarIdentifierNode toCalendarIdentifier)
    • getIANATimeZoneEpochValue

      public static List<BigInt> getIANATimeZoneEpochValue(com.oracle.truffle.api.strings.TruffleString identifier, long isoYear, long isoMonth, long isoDay, long hours, long minutes, long seconds, long milliseconds, long microseconds, long nanoseconds)
    • getIANATimeZoneOffsetNanoseconds

      public static long getIANATimeZoneOffsetNanoseconds(BigInt nanoseconds, com.oracle.truffle.api.strings.TruffleString identifier)
    • getIANATimeZoneNextTransition

      public static OptionalLong getIANATimeZoneNextTransition(BigInt nanoseconds, com.oracle.truffle.api.strings.TruffleString identifier)
    • getIANATimeZonePreviousTransition

      public static OptionalLong getIANATimeZonePreviousTransition(BigInt nanoseconds, com.oracle.truffle.api.strings.TruffleString identifier)
    • canParseAsTimeZoneNumericUTCOffset

      public static boolean canParseAsTimeZoneNumericUTCOffset(com.oracle.truffle.api.strings.TruffleString string)
    • isoYearMonthWithinLimits

      public static boolean isoYearMonthWithinLimits(int year, int month)
    • isoResolveMonth

      public static void isoResolveMonth(JSContext ctx, JSDynamicObject fields, JSToIntegerOrInfinityNode toIntegerOrInfinity)
    • isoDateFromFields

      public static ISODateRecord isoDateFromFields(JSDynamicObject fields, TemporalUtil.Overflow overflow)
    • isoYearMonthFromFields

      public static ISODateRecord isoYearMonthFromFields(JSDynamicObject fields, TemporalUtil.Overflow overflow)
    • isoMonthDayFromFields

      public static ISODateRecord isoMonthDayFromFields(JSDynamicObject fields, TemporalUtil.Overflow overflow)
    • createDurationRecord

      public static JSTemporalDurationRecord createDurationRecord(double years, double months, double weeks, double days, double hours, double minutes, double seconds, double milliseconds, double microseconds, double nanoseconds)
    • dtol

      public static long dtol(double d)
    • dtoi

      public static int dtoi(double d)
    • dtol

      public static long dtol(double d, boolean failOnError)
    • ltoi

      public static int ltoi(long l)
    • bitoi

      public static int bitoi(BigInt bi)
    • bigIntToLong

      public static long bigIntToLong(BigInt val)
    • toRoundingMode

      public static TemporalUtil.RoundingMode toRoundingMode(com.oracle.truffle.api.strings.TruffleString mode, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • toDisambiguation

      public static TemporalUtil.Disambiguation toDisambiguation(com.oracle.truffle.api.strings.TruffleString disambiguation, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • toOffsetOption

      public static TemporalUtil.OffsetOption toOffsetOption(com.oracle.truffle.api.strings.TruffleString offsetOption, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • toShowCalendar

      public static TemporalUtil.ShowCalendar toShowCalendar(com.oracle.truffle.api.strings.TruffleString showCalendar, com.oracle.truffle.api.strings.TruffleString.EqualNode equalNode)
    • roundTowardsZero

      public static double roundTowardsZero(double d)
    • toMonthCode

      public static com.oracle.truffle.api.strings.TruffleString toMonthCode(Object argument)