diff --git a/core/engine/src/builtins/temporal/duration/mod.rs b/core/engine/src/builtins/temporal/duration/mod.rs index 1a80879b32..c8d71d3797 100644 --- a/core/engine/src/builtins/temporal/duration/mod.rs +++ b/core/engine/src/builtins/temporal/duration/mod.rs @@ -268,7 +268,7 @@ impl BuiltInConstructor for Duration { // 11. If nanoseconds is undefined, let ns be 0; else let ns be ? ToIntegerIfIntegral(nanoseconds). let nanoseconds = f64::from( - args.get(8) + args.get(9) .map_or(Ok(0), |ns| to_integer_if_integral(ns, context))?, ); @@ -543,7 +543,6 @@ impl Duration { microseconds, nanoseconds, )?; - create_temporal_duration(new_duration, None, context).map(Into::into) } @@ -907,63 +906,63 @@ pub(crate) fn to_temporal_partial_duration( let hours = unknown_object.get(utf16!("hours"), context)?; // 7. If hours is not undefined, set result.[[Hours]] to ? ToIntegerIfIntegral(hours). if !hours.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&hours, context)?)); + result.set_hours(f64::from(to_integer_if_integral(&hours, context)?)); } // 8. Let microseconds be ? Get(temporalDurationLike, "microseconds"). let microseconds = unknown_object.get(utf16!("microseconds"), context)?; // 9. If microseconds is not undefined, set result.[[Microseconds]] to ? ToIntegerIfIntegral(microseconds). if !microseconds.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(µseconds, context)?)); + result.set_microseconds(f64::from(to_integer_if_integral(µseconds, context)?)); } // 10. Let milliseconds be ? Get(temporalDurationLike, "milliseconds"). let milliseconds = unknown_object.get(utf16!("milliseconds"), context)?; // 11. If milliseconds is not undefined, set result.[[Milliseconds]] to ? ToIntegerIfIntegral(milliseconds). if !milliseconds.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&milliseconds, context)?)); + result.set_milliseconds(f64::from(to_integer_if_integral(&milliseconds, context)?)); } // 12. Let minutes be ? Get(temporalDurationLike, "minutes"). let minutes = unknown_object.get(utf16!("minutes"), context)?; // 13. If minutes is not undefined, set result.[[Minutes]] to ? ToIntegerIfIntegral(minutes). if !minutes.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&minutes, context)?)); + result.set_minutes(f64::from(to_integer_if_integral(&minutes, context)?)); } // 14. Let months be ? Get(temporalDurationLike, "months"). let months = unknown_object.get(utf16!("months"), context)?; // 15. If months is not undefined, set result.[[Months]] to ? ToIntegerIfIntegral(months). if !months.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&months, context)?)); + result.set_months(f64::from(to_integer_if_integral(&months, context)?)); } // 16. Let nanoseconds be ? Get(temporalDurationLike, "nanoseconds"). let nanoseconds = unknown_object.get(utf16!("nanoseconds"), context)?; // 17. If nanoseconds is not undefined, set result.[[Nanoseconds]] to ? ToIntegerIfIntegral(nanoseconds). if !nanoseconds.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&nanoseconds, context)?)); + result.set_nanoseconds(f64::from(to_integer_if_integral(&nanoseconds, context)?)); } // 18. Let seconds be ? Get(temporalDurationLike, "seconds"). let seconds = unknown_object.get(utf16!("seconds"), context)?; // 19. If seconds is not undefined, set result.[[Seconds]] to ? ToIntegerIfIntegral(seconds). if !seconds.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&seconds, context)?)); + result.set_seconds(f64::from(to_integer_if_integral(&seconds, context)?)); } // 20. Let weeks be ? Get(temporalDurationLike, "weeks"). let weeks = unknown_object.get(utf16!("weeks"), context)?; // 21. If weeks is not undefined, set result.[[Weeks]] to ? ToIntegerIfIntegral(weeks). if !weeks.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&weeks, context)?)); + result.set_weeks(f64::from(to_integer_if_integral(&weeks, context)?)); } // 22. Let years be ? Get(temporalDurationLike, "years"). let years = unknown_object.get(utf16!("years"), context)?; // 23. If years is not undefined, set result.[[Years]] to ? ToIntegerIfIntegral(years). if !years.is_undefined() { - result.set_days(f64::from(to_integer_if_integral(&years, context)?)); + result.set_years(f64::from(to_integer_if_integral(&years, context)?)); } // TODO: Implement this functionality better in `temporal_rs`.