From 5283a02eb6d5fa7580b3b5051d760b3669def6c0 Mon Sep 17 00:00:00 2001 From: wangrx Date: Sun, 4 Feb 2024 16:52:20 +0800 Subject: [PATCH 1/2] Fix intl/date-format/property-override-date-time-style.js and intl/date-format/property-override-time-style.js --- ecmascript/js_date_time_format.cpp | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ecmascript/js_date_time_format.cpp b/ecmascript/js_date_time_format.cpp index 5396074b3..8ee72e47f 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]]. @@ -1041,6 +1048,7 @@ void JSDateTimeFormat::ResolvedOptions(JSThread *thread, const JSHandle hcValue; HourCycleOption hc = dateTimeFormat->GetHourCycle(); if (hc != HourCycleOption::UNDEFINED) { + // LOG_ECMA(ERROR) << "hc != HourCycleOption::UNDEFINED"; property = globalConst->GetHandledHourCycleString(); hcValue = ToHourCycleEcmaString(thread, dateTimeFormat->GetHourCycle()); JSObject::CreateDataPropertyOrThrow(thread, options, property, hcValue); -- Gitee From a0b33a3a0360ed1ff5a0f3eb94bb1d464e3a89bc Mon Sep 17 00:00:00 2001 From: wangrx Date: Sun, 4 Feb 2024 17:00:32 +0800 Subject: [PATCH 2/2] delete log --- ecmascript/js_date_time_format.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/ecmascript/js_date_time_format.cpp b/ecmascript/js_date_time_format.cpp index 8ee72e47f..28dc11ef4 100644 --- a/ecmascript/js_date_time_format.cpp +++ b/ecmascript/js_date_time_format.cpp @@ -1048,7 +1048,6 @@ void JSDateTimeFormat::ResolvedOptions(JSThread *thread, const JSHandle hcValue; HourCycleOption hc = dateTimeFormat->GetHourCycle(); if (hc != HourCycleOption::UNDEFINED) { - // LOG_ECMA(ERROR) << "hc != HourCycleOption::UNDEFINED"; property = globalConst->GetHandledHourCycleString(); hcValue = ToHourCycleEcmaString(thread, dateTimeFormat->GetHourCycle()); JSObject::CreateDataPropertyOrThrow(thread, options, property, hcValue); -- Gitee