Browse Source

LibJS: Fix off-by-one in balance_iso_date() for leap year inputs

This is a normative change in the Temporal spec.

See: https://github.com/tc39/proposal-temporal/commit/5ab1822
Linus Groh 3 years ago
parent
commit
70e6eae27b
1 changed files with 2 additions and 2 deletions
  1. 2 2
      Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp

+ 2 - 2
Userland/Libraries/LibJS/Runtime/Temporal/PlainDate.cpp

@@ -440,8 +440,8 @@ ISODate balance_iso_date(double year_, double month_, double day)
 
 
     // 9. NOTE: To deal with numbers of days greater than the number of days in a year, the following section adds years and subtracts days until the number of days is less than 366 or 365.
     // 9. NOTE: To deal with numbers of days greater than the number of days in a year, the following section adds years and subtracts days until the number of days is less than 366 or 365.
 
 
-    // 10. Let testYear be year + 1.
-    test_year = year + 1;
+    // 10. Let testYear be testYear + 1.
+    test_year += 1;
 
 
     // 11. Repeat, while day > ! ISODaysInYear(testYear),
     // 11. Repeat, while day > ! ISODaysInYear(testYear),
     while (day > iso_days_in_year(test_year)) {
     while (day > iso_days_in_year(test_year)) {