ECMAScript uses milliseconds (double) as its internal representation, but Date constructor and its operation clips this double before actually using it. As a result, this milliseconds is always within 53bit, and it is always integer. This means that we should use int64_t when calculating GregorianDateTime. When running instruments profiler, 31% of time is consumed by `fmod`. This is really fun, we should use integers instead.
<rdar://problem/56726976>
Created attachment 382260 [details] Patch
Created attachment 382268 [details] Patch
Created attachment 382270 [details] Patch
Created attachment 382412 [details] Patch
Committed r251852: <https://trac.webkit.org/changeset/251852>