Пример #1
0
        private static EcmaValue SetComponentsUtc(EcmaValue value, EcmaDateComponent start, int max, EcmaValue[] args)
        {
            EcmaDate date = value.GetUnderlyingObject <EcmaDate>();

            long[] checkedValues = new long[Math.Min(args.Length, max)];
            int    i             = 0;

            for (int length = checkedValues.Length; i < length; i++)
            {
                if (!ValidateArgument(args[i], out checkedValues[i]))
                {
                    date.Timestamp = EcmaTimestamp.Invalid;
                    return(EcmaValue.NaN);
                }
            }
            EcmaTimestamp result = date.Timestamp;

            if (!result.IsValid && start == EcmaDateComponent.Year)
            {
                result = new EcmaTimestamp(0);
            }
            if (result.IsValid)
            {
                result = (EcmaTimestamp)EcmaTimestamp.GetTimestampUtc(result.Value, (int)start, checkedValues);
            }
            date.Timestamp = result;
            return(result.IsValid ? result.Value : EcmaValue.NaN);
        }
Пример #2
0
        public static EcmaValue SetTime([This] EcmaValue value, EcmaValue time)
        {
            EcmaDate date = value.GetUnderlyingObject <EcmaDate>();

            time = time.ToNumber();
            EcmaTimestamp dt = time.IsFinite ? new EcmaTimestamp(time.ToInt64()) : EcmaTimestamp.Invalid;

            date.Timestamp = dt;
            return(dt.IsValid ? dt.Value : EcmaValue.NaN);
        }
Пример #3
0
 protected virtual void WriteDate(EcmaDate date)
 {
     WriteToken(InspectorTokenType.Date, date.ToString());
 }