Преглед изворни кода

LibJS: Fix off-by-one in make_day()'s temporary Core::DateTime

Just like in the previous commit, the day value of Core::DateTime is
one-based, not zero based.
Noticed while implementing a new Temporal function, this likely would've
been caught earlier if we'd also use it for the Date API (we don't).
Linus Groh пре 3 година
родитељ
комит
28a9a248d6
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      Userland/Libraries/LibJS/Runtime/Date.cpp

+ 1 - 1
Userland/Libraries/LibJS/Runtime/Date.cpp

@@ -341,7 +341,7 @@ Value make_day(GlobalObject& global_object, Value year, Value month, Value date)
     // 8. Find a finite time value t such that YearFromTime(t) is ym and MonthFromTime(t) is mn and DateFromTime(t) is 1𝔽; but if this is not possible (because some argument is out of range), return NaN.
     if (!AK::is_within_range<int>(y) || !AK::is_within_range<int>(m + 1))
         return js_nan();
-    auto t = Core::DateTime::create(static_cast<int>(y), static_cast<int>(m + 1), 0).timestamp() * 1000;
+    auto t = Core::DateTime::create(static_cast<int>(y), static_cast<int>(m + 1), 1).timestamp() * 1000;
     // 9. Return Day(t) + dt - 1𝔽.
     return Value(day(static_cast<double>(t)) + dt - 1);
 }