// |reftest| skip-if(!this.hasOwnProperty('Temporal')) -- Temporal is not enabled unconditionally // Copyright (C) 2021 Igalia, S.L. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- esid: sec-temporal.plaindatetime.prototype.until description: calendar.dateUntil() is passed PlainDate objects with the receiver's calendar info: | DifferenceISODateTime ( y1, mon1, d1, h1, min1, s1, ms1, mus1, ns1, y2, mon2, d2, h2, min2, s2, ms2, mus2, ns2, calendar, largestUnit [ , options ] ) 8. Let _date1_ be ? CreateTemporalDate(_balanceResult_.[[Year]], _balanceResult_.[[Month]], _balanceResult_.[[Day]], _calendar_). 9. Let _date2_ be ? CreateTemporalDate(_y2_, _mon2_, _d2_, _calendar_). 12. Let _dateDifference_ be ? CalendarDateUntil(_calendar_, _date1_, _date2_, _untilOptions_). features: [Temporal] ---*/ class Calendar extends Temporal.Calendar { constructor() { super("iso8601"); } dateUntil(d1, d2) { assert.sameValue(d1.getCalendar(), this, "d1.calendar"); assert.sameValue(d2.getCalendar(), this, "d2.calendar"); return new Temporal.Duration(); } } const calendar = new Calendar(); const earlier = new Temporal.PlainDateTime(2000, 5, 2, 12, 34, 56, 987, 654, 321, calendar); const later = new Temporal.PlainDateTime(2001, 6, 3, 13, 35, 57, 988, 655, 322, calendar); const result = earlier.until(later); assert(result instanceof Temporal.Duration, "result"); reportCompare(0, 0);