diff --git a/ecmascript/js_date_time_format.cpp b/ecmascript/js_date_time_format.cpp index 5396074b346c7ab448008cea517e12811a32f8a9..28dc11ef4a47f885bb2afff1260012706bfa337e 100644 --- a/ecmascript/js_date_time_format.cpp +++ b/ecmascript/js_date_time_format.cpp @@ -562,14 +562,21 @@ JSHandle JSDateTimeFormat::InitializeDateTimeFormat(JSThread * HourCycleOption dtfHourCycle = HourCycleOption::UNDEFINED; - // If dateTimeFormat.[[Hour]] is defined, then - if (isHourDefined) { - // e. Set dateTimeFormat.[[HourCycle]] to hc. + if (timeStyle != DateTimeStyleOption::UNDEFINED) { + // Set dateTimeFormat.[[HourCycle]] to hc. dtfHourCycle = hc; - } else { - // 37. Else, - // a. Set dateTimeFormat.[[HourCycle]] to undefined. - dtfHourCycle = HourCycleOption::UNDEFINED; + } + + if (dateStyle == DateTimeStyleOption::UNDEFINED && timeStyle == DateTimeStyleOption::UNDEFINED) { + // If dateTimeFormat.[[Hour]] is defined, then + if (isHourDefined) { + // e. Set dateTimeFormat.[[HourCycle]] to hc. + dtfHourCycle = hc; + } else { + // 37. Else, + // a. Set dateTimeFormat.[[HourCycle]] to undefined. + dtfHourCycle = HourCycleOption::UNDEFINED; + } } // Set dateTimeFormat.[[hourCycle]].