From bbe6d04c66fd0efe41f02f6561cd611ac9a1cf33 Mon Sep 17 00:00:00 2001 From: wangrx Date: Thu, 22 Feb 2024 14:37:10 +0800 Subject: [PATCH] Fix intl/number-format/resolved-options-digits-order.js --- ecmascript/js_number_format.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ecmascript/js_number_format.cpp b/ecmascript/js_number_format.cpp index f7f24bf98b..b05d24e0e1 100644 --- a/ecmascript/js_number_format.cpp +++ b/ecmascript/js_number_format.cpp @@ -1037,6 +1037,20 @@ void JSNumberFormat::ResolvedOptions(JSThread *thread, const JSHandle maximumFractionDigits(thread, numberFormat->GetMaximumFractionDigits()); JSObject::CreateDataPropertyOrThrow(thread, options, property, maximumFractionDigits); RETURN_IF_ABRUPT_COMPLETION(thread); + + // in v3, should contain BOTH significant and fraction digits + if (roundingType == RoundingType::COMPACTROUNDING) { + // [[MinimumSignificantDigits]] + property = globalConst->GetHandledMinimumSignificantDigitsString(); + JSHandle minimumSignificantDigits(thread, numberFormat->GetMinimumSignificantDigits()); + JSObject::CreateDataPropertyOrThrow(thread, options, property, minimumSignificantDigits); + RETURN_IF_ABRUPT_COMPLETION(thread); + // [[MaximumSignificantDigits]] + property = globalConst->GetHandledMaximumSignificantDigitsString(); + JSHandle maximumSignificantDigits(thread, numberFormat->GetMaximumSignificantDigits()); + JSObject::CreateDataPropertyOrThrow(thread, options, property, maximumSignificantDigits); + RETURN_IF_ABRUPT_COMPLETION(thread); + } } // [[UseGrouping]] -- Gitee