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); }
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); }
protected virtual void WriteDate(EcmaDate date) { WriteToken(InspectorTokenType.Date, date.ToString()); }