Date: Wednesday, April 29, 2020 @ 18:53:51 Author: archange Revision: 622324
archrelease: copy trunk to community-staging-x86_64 Added: nodejs-lts-erbium/repos/community-staging-x86_64/PKGBUILD (from rev 622323, nodejs-lts-erbium/trunk/PKGBUILD) nodejs-lts-erbium/repos/community-staging-x86_64/icu67.patch (from rev 622323, nodejs-lts-erbium/trunk/icu67.patch) Deleted: nodejs-lts-erbium/repos/community-staging-x86_64/PKGBUILD nodejs-lts-erbium/repos/community-staging-x86_64/icu67.patch -------------+ PKGBUILD | 148 ++++++++++++------------- icu67.patch | 338 +++++++++++++++++++++++++++++----------------------------- 2 files changed, 243 insertions(+), 243 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-04-29 18:53:37 UTC (rev 622323) +++ PKGBUILD 2020-04-29 18:53:51 UTC (rev 622324) @@ -1,74 +0,0 @@ -# Maintainer: Bruno Pagani <archa...@archlinux.org> -# Contributor: Felix Yan <felixonm...@archlinux.org> - -pkgname=nodejs-lts-erbium -pkgver=12.16.2 -pkgrel=2 -pkgdesc="Evented I/O for V8 javascript (LTS release: Erbium)" -arch=(x86_64) -url="https://nodejs.org/" -license=(MIT) -depends=(openssl zlib icu libuv c-ares brotli libnghttp2) # http-parser -makedepends=(python2 procps-ng) -optdepends=('npm: nodejs package manager') -provides=("nodejs=$pkgver") -conflicts=(nodejs) -source=("${url}/dist/v${pkgver}/node-v${pkgver}.tar.xz" - icu67.patch) -# https://nodejs.org/download/release/latest-erbium/SHASUMS256.txt.asc -sha256sums=('555c47ca0a40e5526d9ab7b2e9c18f9dbd1d956cbdc013fd2223bb11a069be78' - '5315977307e69d20b3e856d3f8724835b08e02085a4444a5c5cefea83fd7d006') -validpgpkeys=(C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 # Myles Borins <mylesbor...@google.com> - 77984A986EBC2AA786BC0F66B01FBB92821C587A # Gibson Fahnestock <gibf...@gmail.com> - B9AE9905FFD7803F25714661B63B535A4C206CA9 # Evan Lucas <evanlu...@me.com> - DD8F2338BAE7501E3DD5AC78C273792F7D83545D # Rod Vagg <r...@vagg.org> - B9E2F5981AA6E0CD28160D9FF13993A75599653C # Shelley Vohr <shelley.v...@gmail.com> - 4ED778F539E3634C779C87C6D7062848A1AB005C) # Beth Griggs <bethany.gri...@uk.ibm.com> - -prepare() { - cd node-v${pkgver} - patch -Np1 -i ../icu67.patch - - echo 'Fixing for python2 name' - find -type f -exec sed \ - -e 's_^#!/usr/bin/env python$_&2_' \ - -e 's_^\(#!/usr/bin/python2\).[45]$_\1_' \ - -e 's_^#!/usr/bin/python$_&2_' \ - -e 's_^\( *exec \+\)python\( \+.*\)$_\1python2\2_'\ - -e 's_^\(.*\)python\( \+-c \+.*\)$_\1python2\2_'\ - -e "s_'python'_'python2'_" -i {} \; - find test/ -type f -exec sed 's_python _python2 _' -i {} \; -} - -build() { - cd node-v${pkgver} - - export PYTHON=python2 - ./configure \ - --prefix=/usr \ - --with-intl=system-icu \ - --without-npm \ - --shared-openssl \ - --shared-zlib \ - --shared-libuv \ - --experimental-http-parser \ - --shared-cares \ - --shared-brotli \ - --shared-nghttp2 - #--shared-http-parser \ - - make -} - -check() { - cd node-v${pkgver} - # https://github.com/nodejs/node/issues/32765 - sed -i '/\$(MAKE) -s test-doc/d' Makefile - make test -} - -package() { - cd node-v${pkgver} - make DESTDIR="${pkgdir}" install - install -Dm644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/ -} Copied: nodejs-lts-erbium/repos/community-staging-x86_64/PKGBUILD (from rev 622323, nodejs-lts-erbium/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-04-29 18:53:51 UTC (rev 622324) @@ -0,0 +1,74 @@ +# Maintainer: Bruno Pagani <archa...@archlinux.org> +# Contributor: Felix Yan <felixonm...@archlinux.org> + +pkgname=nodejs-lts-erbium +pkgver=12.16.3 +pkgrel=1 +pkgdesc="Evented I/O for V8 javascript (LTS release: Erbium)" +arch=(x86_64) +url="https://nodejs.org/" +license=(MIT) +depends=(openssl zlib icu libuv c-ares brotli libnghttp2) # http-parser +makedepends=(python2 procps-ng) +optdepends=('npm: nodejs package manager') +provides=("nodejs=$pkgver") +conflicts=(nodejs) +source=("${url}/dist/v${pkgver}/node-v${pkgver}.tar.xz" + icu67.patch) +# https://nodejs.org/download/release/latest-erbium/SHASUMS256.txt.asc +sha256sums=(f0559b0829c7f2ac10bf5b3e157e498227e95e26cdb6af814969c49f367359a3 + 5315977307e69d20b3e856d3f8724835b08e02085a4444a5c5cefea83fd7d006) +validpgpkeys=(C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 # Myles Borins <mylesbor...@google.com> + 77984A986EBC2AA786BC0F66B01FBB92821C587A # Gibson Fahnestock <gibf...@gmail.com> + B9AE9905FFD7803F25714661B63B535A4C206CA9 # Evan Lucas <evanlu...@me.com> + DD8F2338BAE7501E3DD5AC78C273792F7D83545D # Rod Vagg <r...@vagg.org> + B9E2F5981AA6E0CD28160D9FF13993A75599653C # Shelley Vohr <shelley.v...@gmail.com> + 4ED778F539E3634C779C87C6D7062848A1AB005C) # Beth Griggs <bethany.gri...@uk.ibm.com> + +prepare() { + cd node-v${pkgver} + patch -Np1 -i ../icu67.patch + + echo 'Fixing for python2 name' + find -type f -exec sed \ + -e 's_^#!/usr/bin/env python$_&2_' \ + -e 's_^\(#!/usr/bin/python2\).[45]$_\1_' \ + -e 's_^#!/usr/bin/python$_&2_' \ + -e 's_^\( *exec \+\)python\( \+.*\)$_\1python2\2_'\ + -e 's_^\(.*\)python\( \+-c \+.*\)$_\1python2\2_'\ + -e "s_'python'_'python2'_" -i {} \; + find test/ -type f -exec sed 's_python _python2 _' -i {} \; +} + +build() { + cd node-v${pkgver} + + export PYTHON=python2 + ./configure \ + --prefix=/usr \ + --with-intl=system-icu \ + --without-npm \ + --shared-openssl \ + --shared-zlib \ + --shared-libuv \ + --experimental-http-parser \ + --shared-cares \ + --shared-brotli \ + --shared-nghttp2 + #--shared-http-parser \ + + make +} + +check() { + cd node-v${pkgver} + # https://github.com/nodejs/node/issues/32765 + sed -i '/\$(MAKE) -s test-doc/d' Makefile + make test +} + +package() { + cd node-v${pkgver} + make DESTDIR="${pkgdir}" install + install -Dm644 LICENSE -t "${pkgdir}"/usr/share/licenses/${pkgname}/ +} Deleted: icu67.patch =================================================================== --- icu67.patch 2020-04-29 18:53:37 UTC (rev 622323) +++ icu67.patch 2020-04-29 18:53:51 UTC (rev 622324) @@ -1,169 +0,0 @@ -From 2b107e7670ffb43719a66ee4a55ab408a5dcf2a5 Mon Sep 17 00:00:00 2001 -From: Ujjwal Sharma <ryzoku...@disroot.org> -Date: Wed, 22 Apr 2020 12:20:17 +0530 -Subject: [PATCH] deps: V8: backport 3f8dc4b2e5ba - -Original commit message: - - [intl] Remove soon-to-be removed getAllFieldPositions - - Needed to land ICU67.1 soon. - - Bug: v8:10393 - Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618 - Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489 - Reviewed-by: Jakob Kummerow <jkumme...@chromium.org> - Commit-Queue: Frank Tang <ft...@chromium.org> - Cr-Commit-Position: refs/heads/master@{#67027} - -Refs: https://github.com/v8/v8/commit/3f8dc4b2e5baf77b463334c769af85b79d8c1463 ---- - common.gypi | 2 +- - deps/v8/src/objects/js-number-format.cc | 72 +++++++++++++------------ - 2 files changed, 38 insertions(+), 36 deletions(-) - -diff --git a/deps/v8/src/objects/js-number-format.cc b/deps/v8/src/objects/js-number-format.cc -index 92d3e2fb82e..ced408aa173 100644 ---- a/deps/v8/src/objects/js-number-format.cc -+++ b/deps/v8/src/objects/js-number-format.cc -@@ -1197,42 +1197,31 @@ MaybeHandle<JSNumberFormat> JSNumberFormat::New(Isolate* isolate, - } - - namespace { --Maybe<icu::UnicodeString> IcuFormatNumber( -+Maybe<bool> IcuFormatNumber( - Isolate* isolate, - const icu::number::LocalizedNumberFormatter& number_format, -- Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) { -+ Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) { - // If it is BigInt, handle it differently. - UErrorCode status = U_ZERO_ERROR; -- icu::number::FormattedNumber formatted; - if (numeric_obj->IsBigInt()) { - Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj); - Handle<String> big_int_string; - ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string, - BigInt::ToString(isolate, big_int), -- Nothing<icu::UnicodeString>()); -- formatted = number_format.formatDecimal( -+ Nothing<bool>()); -+ *formatted = number_format.formatDecimal( - {big_int_string->ToCString().get(), big_int_string->length()}, status); - } else { - double number = numeric_obj->Number(); -- formatted = number_format.formatDouble(number, status); -+ *formatted = number_format.formatDouble(number, status); - } - if (U_FAILURE(status)) { - // This happen because of icu data trimming trim out "unit". - // See https://bugs.chromium.org/p/v8/issues/detail?id=8641 -- THROW_NEW_ERROR_RETURN_VALUE(isolate, -- NewTypeError(MessageTemplate::kIcuError), -- Nothing<icu::UnicodeString>()); -- } -- if (fp_iter) { -- formatted.getAllFieldPositions(*fp_iter, status); -+ THROW_NEW_ERROR_RETURN_VALUE( -+ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>()); - } -- icu::UnicodeString result = formatted.toString(status); -- if (U_FAILURE(status)) { -- THROW_NEW_ERROR_RETURN_VALUE(isolate, -- NewTypeError(MessageTemplate::kIcuError), -- Nothing<icu::UnicodeString>()); -- } -- return Just(result); -+ return Just(true); - } - - } // namespace -@@ -1243,10 +1232,16 @@ MaybeHandle<String> JSNumberFormat::FormatNumeric( - Handle<Object> numeric_obj) { - DCHECK(numeric_obj->IsNumeric()); - -- Maybe<icu::UnicodeString> maybe_format = -- IcuFormatNumber(isolate, number_format, numeric_obj, nullptr); -+ icu::number::FormattedNumber formatted; -+ Maybe<bool> maybe_format = -+ IcuFormatNumber(isolate, number_format, numeric_obj, &formatted); - MAYBE_RETURN(maybe_format, Handle<String>()); -- return Intl::ToString(isolate, maybe_format.FromJust()); -+ UErrorCode status = U_ZERO_ERROR; -+ icu::UnicodeString result = formatted.toString(status); -+ if (U_FAILURE(status)) { -+ THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String); -+ } -+ return Intl::ToString(isolate, result); - } - - namespace { -@@ -1359,12 +1354,18 @@ std::vector<NumberFormatSpan> FlattenRegionsToParts( - } - - namespace { --Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, -- icu::FieldPositionIterator* fp_iter, -+Maybe<int> ConstructParts(Isolate* isolate, -+ icu::number::FormattedNumber* formatted, - Handle<JSArray> result, int start_index, - Handle<Object> numeric_obj, bool style_is_unit) { -+ UErrorCode status = U_ZERO_ERROR; -+ icu::UnicodeString formatted_text = formatted->toString(status); -+ if (U_FAILURE(status)) { -+ THROW_NEW_ERROR_RETURN_VALUE( -+ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>()); -+ } - DCHECK(numeric_obj->IsNumeric()); -- int32_t length = formatted.length(); -+ int32_t length = formatted_text.length(); - int index = start_index; - if (length == 0) return Just(index); - -@@ -1373,13 +1374,14 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, - // other region covers some part of the formatted string. It's possible - // there's another field with exactly the same begin and end as this backdrop, - // in which case the backdrop's field_id of -1 will give it lower priority. -- regions.push_back(NumberFormatSpan(-1, 0, formatted.length())); -+ regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length())); - - { -- icu::FieldPosition fp; -- while (fp_iter->next(fp)) { -- regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(), -- fp.getEndIndex())); -+ icu::ConstrainedFieldPosition cfp; -+ cfp.constrainCategory(UFIELD_CATEGORY_NUMBER); -+ while (formatted->nextPosition(cfp, status)) { -+ regions.push_back( -+ NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit())); - } - } - -@@ -1401,7 +1403,7 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, - Handle<String> substring; - ASSIGN_RETURN_ON_EXCEPTION_VALUE( - isolate, substring, -- Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos), -+ Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos), - Nothing<int>()); - Intl::AddElement(isolate, result, index, field_type_string, substring); - ++index; -@@ -1421,14 +1423,14 @@ MaybeHandle<JSArray> JSNumberFormat::FormatToParts( - number_format->icu_number_formatter().raw(); - CHECK_NOT_NULL(fmt); - -- icu::FieldPositionIterator fp_iter; -- Maybe<icu::UnicodeString> maybe_format = -- IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter); -+ icu::number::FormattedNumber formatted; -+ Maybe<bool> maybe_format = -+ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted); - MAYBE_RETURN(maybe_format, Handle<JSArray>()); - - Handle<JSArray> result = factory->NewJSArray(0); - Maybe<int> maybe_format_to_parts = ConstructParts( -- isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj, -+ isolate, &formatted, result, 0, numeric_obj, - number_format->style() == JSNumberFormat::Style::UNIT); - MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>()); - Copied: nodejs-lts-erbium/repos/community-staging-x86_64/icu67.patch (from rev 622323, nodejs-lts-erbium/trunk/icu67.patch) =================================================================== --- icu67.patch (rev 0) +++ icu67.patch 2020-04-29 18:53:51 UTC (rev 622324) @@ -0,0 +1,169 @@ +From 2b107e7670ffb43719a66ee4a55ab408a5dcf2a5 Mon Sep 17 00:00:00 2001 +From: Ujjwal Sharma <ryzoku...@disroot.org> +Date: Wed, 22 Apr 2020 12:20:17 +0530 +Subject: [PATCH] deps: V8: backport 3f8dc4b2e5ba + +Original commit message: + + [intl] Remove soon-to-be removed getAllFieldPositions + + Needed to land ICU67.1 soon. + + Bug: v8:10393 + Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618 + Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489 + Reviewed-by: Jakob Kummerow <jkumme...@chromium.org> + Commit-Queue: Frank Tang <ft...@chromium.org> + Cr-Commit-Position: refs/heads/master@{#67027} + +Refs: https://github.com/v8/v8/commit/3f8dc4b2e5baf77b463334c769af85b79d8c1463 +--- + common.gypi | 2 +- + deps/v8/src/objects/js-number-format.cc | 72 +++++++++++++------------ + 2 files changed, 38 insertions(+), 36 deletions(-) + +diff --git a/deps/v8/src/objects/js-number-format.cc b/deps/v8/src/objects/js-number-format.cc +index 92d3e2fb82e..ced408aa173 100644 +--- a/deps/v8/src/objects/js-number-format.cc ++++ b/deps/v8/src/objects/js-number-format.cc +@@ -1197,42 +1197,31 @@ MaybeHandle<JSNumberFormat> JSNumberFormat::New(Isolate* isolate, + } + + namespace { +-Maybe<icu::UnicodeString> IcuFormatNumber( ++Maybe<bool> IcuFormatNumber( + Isolate* isolate, + const icu::number::LocalizedNumberFormatter& number_format, +- Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) { ++ Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) { + // If it is BigInt, handle it differently. + UErrorCode status = U_ZERO_ERROR; +- icu::number::FormattedNumber formatted; + if (numeric_obj->IsBigInt()) { + Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj); + Handle<String> big_int_string; + ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string, + BigInt::ToString(isolate, big_int), +- Nothing<icu::UnicodeString>()); +- formatted = number_format.formatDecimal( ++ Nothing<bool>()); ++ *formatted = number_format.formatDecimal( + {big_int_string->ToCString().get(), big_int_string->length()}, status); + } else { + double number = numeric_obj->Number(); +- formatted = number_format.formatDouble(number, status); ++ *formatted = number_format.formatDouble(number, status); + } + if (U_FAILURE(status)) { + // This happen because of icu data trimming trim out "unit". + // See https://bugs.chromium.org/p/v8/issues/detail?id=8641 +- THROW_NEW_ERROR_RETURN_VALUE(isolate, +- NewTypeError(MessageTemplate::kIcuError), +- Nothing<icu::UnicodeString>()); +- } +- if (fp_iter) { +- formatted.getAllFieldPositions(*fp_iter, status); ++ THROW_NEW_ERROR_RETURN_VALUE( ++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>()); + } +- icu::UnicodeString result = formatted.toString(status); +- if (U_FAILURE(status)) { +- THROW_NEW_ERROR_RETURN_VALUE(isolate, +- NewTypeError(MessageTemplate::kIcuError), +- Nothing<icu::UnicodeString>()); +- } +- return Just(result); ++ return Just(true); + } + + } // namespace +@@ -1243,10 +1232,16 @@ MaybeHandle<String> JSNumberFormat::FormatNumeric( + Handle<Object> numeric_obj) { + DCHECK(numeric_obj->IsNumeric()); + +- Maybe<icu::UnicodeString> maybe_format = +- IcuFormatNumber(isolate, number_format, numeric_obj, nullptr); ++ icu::number::FormattedNumber formatted; ++ Maybe<bool> maybe_format = ++ IcuFormatNumber(isolate, number_format, numeric_obj, &formatted); + MAYBE_RETURN(maybe_format, Handle<String>()); +- return Intl::ToString(isolate, maybe_format.FromJust()); ++ UErrorCode status = U_ZERO_ERROR; ++ icu::UnicodeString result = formatted.toString(status); ++ if (U_FAILURE(status)) { ++ THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String); ++ } ++ return Intl::ToString(isolate, result); + } + + namespace { +@@ -1359,12 +1354,18 @@ std::vector<NumberFormatSpan> FlattenRegionsToParts( + } + + namespace { +-Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, +- icu::FieldPositionIterator* fp_iter, ++Maybe<int> ConstructParts(Isolate* isolate, ++ icu::number::FormattedNumber* formatted, + Handle<JSArray> result, int start_index, + Handle<Object> numeric_obj, bool style_is_unit) { ++ UErrorCode status = U_ZERO_ERROR; ++ icu::UnicodeString formatted_text = formatted->toString(status); ++ if (U_FAILURE(status)) { ++ THROW_NEW_ERROR_RETURN_VALUE( ++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>()); ++ } + DCHECK(numeric_obj->IsNumeric()); +- int32_t length = formatted.length(); ++ int32_t length = formatted_text.length(); + int index = start_index; + if (length == 0) return Just(index); + +@@ -1373,13 +1374,14 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, + // other region covers some part of the formatted string. It's possible + // there's another field with exactly the same begin and end as this backdrop, + // in which case the backdrop's field_id of -1 will give it lower priority. +- regions.push_back(NumberFormatSpan(-1, 0, formatted.length())); ++ regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length())); + + { +- icu::FieldPosition fp; +- while (fp_iter->next(fp)) { +- regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(), +- fp.getEndIndex())); ++ icu::ConstrainedFieldPosition cfp; ++ cfp.constrainCategory(UFIELD_CATEGORY_NUMBER); ++ while (formatted->nextPosition(cfp, status)) { ++ regions.push_back( ++ NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit())); + } + } + +@@ -1401,7 +1403,7 @@ Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, + Handle<String> substring; + ASSIGN_RETURN_ON_EXCEPTION_VALUE( + isolate, substring, +- Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos), ++ Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos), + Nothing<int>()); + Intl::AddElement(isolate, result, index, field_type_string, substring); + ++index; +@@ -1421,14 +1423,14 @@ MaybeHandle<JSArray> JSNumberFormat::FormatToParts( + number_format->icu_number_formatter().raw(); + CHECK_NOT_NULL(fmt); + +- icu::FieldPositionIterator fp_iter; +- Maybe<icu::UnicodeString> maybe_format = +- IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter); ++ icu::number::FormattedNumber formatted; ++ Maybe<bool> maybe_format = ++ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted); + MAYBE_RETURN(maybe_format, Handle<JSArray>()); + + Handle<JSArray> result = factory->NewJSArray(0); + Maybe<int> maybe_format_to_parts = ConstructParts( +- isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj, ++ isolate, &formatted, result, 0, numeric_obj, + number_format->style() == JSNumberFormat::Style::UNIT); + MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>()); +