Bug 1333197: Lazily initialize default timezone in DateTimeFormat prototype. r?till draft
authorKris Maglione <maglione.k@gmail.com>
Sun, 22 Jan 2017 16:26:45 -0800
changeset 465147 c670ed5a35ac9f4d1a8ad3d374b4547ac8b4548e
parent 465146 07489c41e05b6d3b5849acabd8ae07c86895127c
child 465148 aa36042c5a3171dcde98c253dd9adbeae11fec12
push id42552
push usermaglione.k@gmail.com
push dateMon, 23 Jan 2017 21:08:23 +0000
reviewerstill
bugs1333197
milestone53.0a1
Bug 1333197: Lazily initialize default timezone in DateTimeFormat prototype. r?till MozReview-Commit-ID: 3JkeJmUQG1w
js/src/builtin/Intl.js
--- a/js/src/builtin/Intl.js
+++ b/js/src/builtin/Intl.js
@@ -2223,17 +2223,22 @@ function resolveDateTimeFormatInternals(
     internalProps.calendar = r.ca;
     internalProps.numberingSystem = r.nu;
 
     // Compute formatting options.
     // Step 14.
     var dataLocale = r.dataLocale;
 
     // Steps 15-17.
-    internalProps.timeZone = lazyDateTimeFormatData.timeZone;
+    var tz = lazyDateTimeFormatData.timeZone;
+    if (tz === undefined) {
+        // Step 16.
+        tz = DefaultTimeZone();
+    }
+    internalProps.timeZone = tz;
 
     // Step 18.
     var formatOpt = lazyDateTimeFormatData.formatOpt;
 
     // Steps 27-28, more or less - see comment after this function.
     var pattern = toBestICUPattern(dataLocale, formatOpt);
 
     // Step 29.
@@ -2343,19 +2348,16 @@ function InitializeDateTimeFormat(dateTi
 
         // Step 15.b.
         var timeZone = intl_IsValidTimeZoneName(tz);
         if (timeZone === null)
             ThrowRangeError(JSMSG_INVALID_TIME_ZONE, tz);
 
         // Step 15.c.
         tz = CanonicalizeTimeZoneName(timeZone);
-    } else {
-        // Step 16.
-        tz = DefaultTimeZone();
     }
     lazyDateTimeFormatData.timeZone = tz;
 
     // Step 18.
     var formatOpt = new Record();
     lazyDateTimeFormatData.formatOpt = formatOpt;
 
     // Step 19.