code: function $$core$$ToLocalTime(date, calendar, timeZone) {
          // 1. Apply calendrical calculations on date for the given calendar and time zone to
          //    produce weekday, era, year, month, day, hour, minute, second, and inDST values.
          //    The calculations should use best available information about the specified
          //    calendar and time zone. If the calendar is "gregory", then the calculations must
          //    match the algorithms specified in ES5, 15.9.1, except that calculations are not
          //    bound by the restrictions on the use of best available information on time zones
          //    for local time zone adjustment and daylight saving time adjustment imposed by
          //    ES5, 15.9.1.7 and 15.9.1.8.
          // ###TODO###
          var d = new Date(date),
              m = 'get' + (timeZone || '');
  
          // 2. Return a Record with fields [[weekday]], [[era]], [[year]], [[month]], [[day]],
          //    [[hour]], [[minute]], [[second]], and [[inDST]], each with the corresponding
          //    calculated value.
          return new $$core$$Record({
              '[[weekday]]': d[m + 'Day'](),
              '[[era]]'    : +(d[m + 'FullYear']() >= 0),
              '[[year]]'   : d[m + 'FullYear'](),
              '[[month]]'  : d[m + 'Month'](),
              '[[day]]'    : d[m + 'Date'](),
              '[[hour]]'   : d[m + 'Hours'](),
              '[[minute]]' : d[m + 'Minutes'](),
              '[[second]]' : d[m + 'Seconds'](),
              '[[inDST]]'  : false // ###TODO###
          });
      }
docs: When the ToLocalTime abstract operation is called with arguments date, calendar, and
  timeZone, the following steps are taken: