Title: [231867] trunk
Revision
231867
Author
commit-qu...@webkit.org
Date
2018-05-16 13:38:32 -0700 (Wed, 16 May 2018)

Log Message

Add support for Intl NumberFormat formatToParts
https://bugs.webkit.org/show_bug.cgi?id=185375

Patch by Andy VanWagoner <andy@vanwagoner.family> on 2018-05-16
Reviewed by Yusuke Suzuki.

.:

Add flag for NumberFormat formatToParts.

* Source/cmake/OptionsJSCOnly.cmake:
* Source/cmake/WebKitFeatures.cmake:

Source/_javascript_Core:

Add flag for NumberFormat formatToParts. Implement formatToParts using
unum_formatDoubleForFields. Because the fields are nested and come back
in no guaranteed order, the simple algorithm to convert them to the
desired format is roughly O(n^2). However, even with Number.MAX_VALUE
it appears to perform well enough for the initial implementation. Another
issue has been created to improve this algorithm.

This requires ICU v59+ for unum_formatDoubleForFields, so it is disabled
on macOS, since only v57 is available.

* Configurations/FeatureDefines.xcconfig:
* runtime/IntlNumberFormat.cpp:
(JSC::IntlNumberFormat::UFieldPositionIteratorDeleter::operator() const):
(JSC::IntlNumberFormat::partTypeString):
(JSC::IntlNumberFormat::formatToParts):
* runtime/IntlNumberFormat.h:
* runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::create):
(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::IntlNumberFormatPrototypeFuncFormatToParts):
* runtime/IntlNumberFormatPrototype.h:
* runtime/Options.h:

Source/WebCore:

Test: js/intl-numberformat-format-to-parts.html

Add flag & tests for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WebCore/PAL:

Add flag for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WebKit:

Add flag for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WebKitLegacy/mac:

Add flag for NumberFormat formatToParts.

* Configurations/FeatureDefines.xcconfig:

Source/WTF:

Add flag for NumberFormat formatToParts.

* wtf/FeatureDefines.h:

Tools:

Add flag for NumberFormat formatToParts.

* Scripts/webkitperl/FeatureList.pm:
* TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Add tests for NumberFormat formatToParts. Tests are expected to fail on
macOS until ICU is updated to v59 or newer.

* js/intl-numberformat-format-to-parts-expected.txt: Added.
* js/intl-numberformat-format-to-parts.html: Added.
* js/script-tests/intl-numberformat-format-to-parts.js: Added.
* platform/ios-simulator/TestExpectations:
* platform/mac/TestExpectations:
* platform/win/TestExpectations:

Modified Paths

Added Paths

Diff

Modified: trunk/ChangeLog (231866 => 231867)


--- trunk/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,15 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts.
+
+        * Source/cmake/OptionsJSCOnly.cmake:
+        * Source/cmake/WebKitFeatures.cmake:
+
 2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
 
         [Win] Use C++17 in MSVC

Modified: trunk/LayoutTests/ChangeLog (231866 => 231867)


--- trunk/LayoutTests/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/LayoutTests/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,20 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add tests for NumberFormat formatToParts. Tests are expected to fail on
+        macOS until ICU is updated to v59 or newer.
+
+        * js/intl-numberformat-format-to-parts-expected.txt: Added.
+        * js/intl-numberformat-format-to-parts.html: Added.
+        * js/script-tests/intl-numberformat-format-to-parts.js: Added.
+        * platform/ios-simulator/TestExpectations:
+        * platform/mac/TestExpectations:
+        * platform/win/TestExpectations:
+
 2018-05-16  Eric Carlson  <eric.carl...@apple.com>
 
         Improve NowPlaying "title"

Added: trunk/LayoutTests/js/intl-numberformat-format-to-parts-expected.txt (0 => 231867)


--- trunk/LayoutTests/js/intl-numberformat-format-to-parts-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/js/intl-numberformat-format-to-parts-expected.txt	2018-05-16 20:38:32 UTC (rev 231867)
@@ -0,0 +1,50 @@
+This test checks the behavior of Intl.NumberFormat.prototype.formatToParts as described in the ECMAScript Internationalization API Specification.
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS Intl.NumberFormat.prototype.formatToParts is an instance of Function
+PASS Intl.NumberFormat.prototype.formatToParts.length is 1
+PASS Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').writable is true
+PASS Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').enumerable is false
+PASS Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').configurable is true
+PASS Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').get is undefined
+PASS Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').set is undefined
+PASS JSON.stringify(Intl.NumberFormat('en').formatToParts(-Infinity)) is JSON.stringify([
+  {type:"minusSign",value:"-"},
+  {type:"infinity",value:"∞"}
+])
+PASS JSON.stringify(Intl.NumberFormat('en').formatToParts('one')) is JSON.stringify([
+  {type:"nan",value:"NaN"}
+])
+PASS JSON.stringify(Intl.NumberFormat('en-US', {style:'percent'}).formatToParts(1)) is JSON.stringify([
+  {type:"integer",value:"100"},
+  {type:"percentSign",value:"%"}
+])
+PASS JSON.stringify(
+  Intl.NumberFormat("pt-BR-u-nu-fullwide", {
+    minimumFractionDigits: "3", style: "currency", currency: "USD", currencyDisplay: "name"
+  }).formatToParts(21069933563725.1)
+) is JSON.stringify([
+  {type:"integer",value:"21"},
+  {type:"group",value:"."},
+  {type:"integer",value:"069"},
+  {type:"group",value:"."},
+  {type:"integer",value:"933"},
+  {type:"group",value:"."},
+  {type:"integer",value:"563"},
+  {type:"group",value:"."},
+  {type:"integer",value:"725"},
+  {type:"decimal",value:","},
+  {type:"fraction",value:"100"},
+  {type:"literal",value:" "},
+  {type:"currency",value:"Dólares americanos"},
+])
+PASS +Intl.NumberFormat('en-US', { useGrouping: false }).formatToParts(Number.MAX_SAFE_INTEGER)[0].value is Number.MAX_SAFE_INTEGER
+PASS Intl.NumberFormat('en-US', { useGrouping: false }).formatToParts(Number.MAX_VALUE).length is 1
+PASS Intl.NumberFormat('en-US', { useGrouping: false }).formatToParts(Number.MAX_VALUE)[0].value.length is 309
+PASS Intl.NumberFormat('en-US').formatToParts(Number.MAX_VALUE).length is 205
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/js/intl-numberformat-format-to-parts.html (0 => 231867)


--- trunk/LayoutTests/js/intl-numberformat-format-to-parts.html	                        (rev 0)
+++ trunk/LayoutTests/js/intl-numberformat-format-to-parts.html	2018-05-16 20:38:32 UTC (rev 231867)
@@ -0,0 +1,11 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="utf-8">
+<script src=""
+</head>
+<body>
+<script src=""
+<script src=""
+</body>
+</html>

Added: trunk/LayoutTests/js/script-tests/intl-numberformat-format-to-parts.js (0 => 231867)


--- trunk/LayoutTests/js/script-tests/intl-numberformat-format-to-parts.js	                        (rev 0)
+++ trunk/LayoutTests/js/script-tests/intl-numberformat-format-to-parts.js	2018-05-16 20:38:32 UTC (rev 231867)
@@ -0,0 +1,53 @@
+//@ skip if $hostOS == "windows" or $hostOS == "darwin"
+description("This test checks the behavior of Intl.NumberFormat.prototype.formatToParts as described in the ECMAScript Internationalization API Specification.");
+
+shouldBeType("Intl.NumberFormat.prototype.formatToParts", "Function");
+shouldBe("Intl.NumberFormat.prototype.formatToParts.length", "1");
+shouldBeTrue("Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').writable");
+shouldBeFalse("Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').enumerable");
+shouldBeTrue("Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').configurable");
+shouldBe("Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').get", "undefined");
+shouldBe("Object.getOwnPropertyDescriptor(Intl.NumberFormat.prototype, 'formatToParts').set", "undefined");
+
+// Handles non-finite and non-number
+shouldBe("JSON.stringify(Intl.NumberFormat('en').formatToParts(-Infinity))", `JSON.stringify([
+  {type:"minusSign",value:"-"},
+  {type:"infinity",value:"∞"}
+])`);
+shouldBe("JSON.stringify(Intl.NumberFormat('en').formatToParts('one'))", `JSON.stringify([
+  {type:"nan",value:"NaN"}
+])`);
+
+// Handles percents
+shouldBe("JSON.stringify(Intl.NumberFormat('en-US', {style:'percent'}).formatToParts(1))", `JSON.stringify([
+  {type:"integer",value:"100"},
+  {type:"percentSign",value:"%"}
+])`);
+
+// Handles locale, currency, and number system
+shouldBe(`JSON.stringify(
+  Intl.NumberFormat("pt-BR-u-nu-fullwide", {
+    minimumFractionDigits: "3", style: "currency", currency: "USD", currencyDisplay: "name"
+  }).formatToParts(21069933563725.1)
+)`, `JSON.stringify([
+  {type:"integer",value:"21"},
+  {type:"group",value:"."},
+  {type:"integer",value:"069"},
+  {type:"group",value:"."},
+  {type:"integer",value:"933"},
+  {type:"group",value:"."},
+  {type:"integer",value:"563"},
+  {type:"group",value:"."},
+  {type:"integer",value:"725"},
+  {type:"decimal",value:","},
+  {type:"fraction",value:"100"},
+  {type:"literal",value:" "},
+  {type:"currency",value:"Dólares americanos"},
+])`);
+
+shouldBe("+Intl.NumberFormat('en-US', { useGrouping: false }).formatToParts(Number.MAX_SAFE_INTEGER)[0].value", "Number.MAX_SAFE_INTEGER");
+
+// Exceed the 32 character default buffer size
+shouldBe("Intl.NumberFormat('en-US', { useGrouping: false }).formatToParts(Number.MAX_VALUE).length", "1");
+shouldBe("Intl.NumberFormat('en-US', { useGrouping: false }).formatToParts(Number.MAX_VALUE)[0].value.length", "309");
+shouldBe("Intl.NumberFormat('en-US').formatToParts(Number.MAX_VALUE).length", "205");

Modified: trunk/LayoutTests/platform/ios-simulator/TestExpectations (231866 => 231867)


--- trunk/LayoutTests/platform/ios-simulator/TestExpectations	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/LayoutTests/platform/ios-simulator/TestExpectations	2018-05-16 20:38:32 UTC (rev 231867)
@@ -73,4 +73,7 @@
 
 # Simulator doesn't support WebAssembly.
 imported/w3c/web-platform-tests/wasm/wasm_stream_instantiate_test.html  [ Skip ]
-imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test.html  [ Skip ]
\ No newline at end of file
+imported/w3c/web-platform-tests/wasm/wasm_stream_compile_test.html  [ Skip ]
+
+# macOS doesn't have ICU v59
+webkit.org/b/185375 js/intl-numberformat-format-to-parts.html [ Failure ]
\ No newline at end of file

Modified: trunk/LayoutTests/platform/mac/TestExpectations (231866 => 231867)


--- trunk/LayoutTests/platform/mac/TestExpectations	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1764,4 +1764,7 @@
 
 webkit.org/b/170830 inspector/sampling-profiler/named-function-_expression_.html [ Pass Failure ]
 
-webkit.org/b/185659 [ Debug ] animations/needs-layout.html [ Pass ImageOnlyFailure ]
\ No newline at end of file
+webkit.org/b/185659 [ Debug ] animations/needs-layout.html [ Pass ImageOnlyFailure ]
+
+# macOS doesn't have ICU v59
+webkit.org/b/185375 js/intl-numberformat-format-to-parts.html [ Failure ]

Modified: trunk/LayoutTests/platform/win/TestExpectations (231866 => 231867)


--- trunk/LayoutTests/platform/win/TestExpectations	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/LayoutTests/platform/win/TestExpectations	2018-05-16 20:38:32 UTC (rev 231867)
@@ -2475,6 +2475,7 @@
 js/intl-collator.html [ Skip ]
 js/intl-datetimeformat.html [ Skip ]
 js/intl-numberformat.html [ Skip ]
+js/intl-numberformat-format-to-parts.html [ Skip ]
 js/intl-pluralrules.html [ Skip ]
 js/intl.html [ Skip ]
 js/number-toLocaleString.html [ Skip ]

Modified: trunk/Source/_javascript_Core/ChangeLog (231866 => 231867)


--- trunk/Source/_javascript_Core/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,33 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts. Implement formatToParts using
+        unum_formatDoubleForFields. Because the fields are nested and come back
+        in no guaranteed order, the simple algorithm to convert them to the
+        desired format is roughly O(n^2). However, even with Number.MAX_VALUE
+        it appears to perform well enough for the initial implementation. Another
+        issue has been created to improve this algorithm.
+
+        This requires ICU v59+ for unum_formatDoubleForFields, so it is disabled
+        on macOS, since only v57 is available.
+
+        * Configurations/FeatureDefines.xcconfig:
+        * runtime/IntlNumberFormat.cpp:
+        (JSC::IntlNumberFormat::UFieldPositionIteratorDeleter::operator() const):
+        (JSC::IntlNumberFormat::partTypeString):
+        (JSC::IntlNumberFormat::formatToParts):
+        * runtime/IntlNumberFormat.h:
+        * runtime/IntlNumberFormatPrototype.cpp:
+        (JSC::IntlNumberFormatPrototype::create):
+        (JSC::IntlNumberFormatPrototype::finishCreation):
+        (JSC::IntlNumberFormatPrototypeFuncFormatToParts):
+        * runtime/IntlNumberFormatPrototype.h:
+        * runtime/Options.h:
+
 2018-05-16  Caio Lima  <ticaiol...@gmail.com>
 
         [ESNext][BigInt] Implement support for "/" operation

Modified: trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig (231866 => 231867)


--- trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/Configurations/FeatureDefines.xcconfig	2018-05-16 20:38:32 UTC (rev 231867)
@@ -195,6 +195,7 @@
 ENABLE_INTERSECTION_OBSERVER = ENABLE_INTERSECTION_OBSERVER;
 
 ENABLE_INTL = ENABLE_INTL;
+ENABLE_INTL_NUMBER_FORMAT_TO_PARTS = ENABLE_INTL_NUMBER_FORMAT_TO_PARTS;
 ENABLE_INTL_PLURAL_RULES = ENABLE_INTL_PLURAL_RULES;
 
 ENABLE_IOS_GESTURE_EVENTS = $(ENABLE_IOS_GESTURE_EVENTS_$(WK_COCOA_TOUCH)_WITH_INTERNAL_SDK_$(USE_INTERNAL_SDK));
@@ -383,4 +384,4 @@
 
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FUL
 LSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS)
  $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $
 (ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULL
 SCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MED
 IA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSE
 MBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Modified: trunk/Source/_javascript_Core/runtime/IntlNumberFormat.cpp (231866 => 231867)


--- trunk/Source/_javascript_Core/runtime/IntlNumberFormat.cpp	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/runtime/IntlNumberFormat.cpp	2018-05-16 20:38:32 UTC (rev 231867)
@@ -38,6 +38,10 @@
 #include "JSCInlines.h"
 #include "ObjectConstructor.h"
 
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+#include <unicode/ufieldpositer.h>
+#endif
+
 namespace JSC {
 
 const ClassInfo IntlNumberFormat::s_info = { "Object", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(IntlNumberFormat) };
@@ -448,6 +452,129 @@
     m_boundFormat.set(vm, this, format);
 }
 
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+void IntlNumberFormat::UFieldPositionIteratorDeleter::operator()(UFieldPositionIterator* iterator) const
+{
+    if (iterator)
+        ufieldpositer_close(iterator);
+}
+
+const char* IntlNumberFormat::partTypeString(UNumberFormatFields field, double value)
+{
+    switch (field) {
+    case UNUM_INTEGER_FIELD:
+        if (std::isnan(value))
+            return "nan";
+        if (!std::isfinite(value))
+            return "infinity";
+        return "integer";
+    case UNUM_FRACTION_FIELD:
+        return "fraction";
+    case UNUM_DECIMAL_SEPARATOR_FIELD:
+        return "decimal";
+    case UNUM_GROUPING_SEPARATOR_FIELD:
+        return "group";
+    case UNUM_CURRENCY_FIELD:
+        return "currency";
+    case UNUM_PERCENT_FIELD:
+        return "percentSign";
+    case UNUM_SIGN_FIELD:
+        return value < 0 ? "minusSign" : "plusSign";
+    // These should not show up because there is no way to specify them in NumberFormat options.
+    // If they do, they don't fit well into any of known part types, so consider it a "literal".
+    case UNUM_PERMILL_FIELD:
+    case UNUM_EXPONENT_SYMBOL_FIELD:
+    case UNUM_EXPONENT_SIGN_FIELD:
+    case UNUM_EXPONENT_FIELD:
+#if !defined(U_HIDE_DEPRECATED_API)
+    case UNUM_FIELD_COUNT:
+#endif
+        return "literal";
+    }
+    // Any newer additions to the UNumberFormatFields enum should just be considered a "literal" part.
+    return "literal";
+}
+
+JSValue IntlNumberFormat::formatToParts(ExecState& exec, double value)
+{
+    VM& vm = exec.vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
+    // FormatNumberToParts (ECMA-402)
+    // https://tc39.github.io/ecma402/#sec-formatnumbertoparts
+    // https://tc39.github.io/ecma402/#sec-partitionnumberpattern
+
+    if (!m_numberFormat)
+        createNumberFormat(exec);
+    if (!m_initializedNumberFormat || !m_numberFormat)
+        return throwTypeError(&exec, scope, ASCIILiteral("Intl.NumberFormat.prototype.formatToParts called on value that's not an object initialized as a NumberFormat"));
+
+    UErrorCode status = U_ZERO_ERROR;
+    auto fieldItr = std::unique_ptr<UFieldPositionIterator, UFieldPositionIteratorDeleter>(ufieldpositer_open(&status));
+    if (U_FAILURE(status))
+        return throwTypeError(&exec, scope, ASCIILiteral("failed to open field position iterator"));
+
+    status = U_ZERO_ERROR;
+    Vector<UChar, 32> result(32);
+    auto resultLength = unum_formatDoubleForFields(m_numberFormat.get(), value, result.data(), result.size(), fieldItr.get(), &status);
+    if (status == U_BUFFER_OVERFLOW_ERROR) {
+        status = U_ZERO_ERROR;
+        result.grow(resultLength);
+        unum_formatDoubleForFields(m_numberFormat.get(), value, result.data(), resultLength, fieldItr.get(), &status);
+    }
+    if (U_FAILURE(status))
+        return throwTypeError(&exec, scope, ASCIILiteral("failed to format a number."));
+
+    Vector<IntlNumberFormatField> fields;
+    int32_t beginIndex = 0;
+    int32_t endIndex = 0;
+    auto fieldType = ufieldpositer_next(fieldItr.get(), &beginIndex, &endIndex);
+    while (fieldType >= 0) {
+        IntlNumberFormatField field;
+        field.type = UNumberFormatFields(fieldType);
+        field.beginIndex = beginIndex;
+        field.endIndex = endIndex;
+        fields.append(field);
+        fieldType = ufieldpositer_next(fieldItr.get(), &beginIndex, &endIndex);
+    }
+
+    JSGlobalObject* globalObject = exec.jsCallee()->globalObject();
+    JSArray* parts = JSArray::tryCreate(vm, globalObject->arrayStructureForIndexingTypeDuringAllocation(ArrayWithContiguous), 0);
+    if (!parts)
+        return throwOutOfMemoryError(&exec, scope);
+    unsigned index = 0;
+
+    auto resultString = String(result.data(), resultLength);
+    auto typePropertyName = Identifier::fromString(&vm, "type");
+    auto literalString = jsString(&exec, ASCIILiteral("literal"));
+
+    // FIXME: <http://webkit.org/b/185557> This is O(N^2) and could be done in O(N log N).
+    int32_t currentIndex = 0;
+    while (currentIndex < resultLength) {
+        IntlNumberFormatField field;
+        int32_t nextStartIndex = resultLength;
+        for (const auto &candidate : fields) {
+            if (candidate.beginIndex <= currentIndex && currentIndex < candidate.endIndex && (!field.size() || candidate.size() < field.size()))
+                field = candidate;
+            if (currentIndex < candidate.beginIndex && candidate.beginIndex < nextStartIndex)
+                nextStartIndex = candidate.beginIndex;
+        }
+        auto nextIndex = field.size() ? std::min(field.endIndex, nextStartIndex) : nextStartIndex;
+        auto type = field.size() ? jsString(&exec, partTypeString(field.type, value)) : literalString;
+        auto value = jsSubstring(&vm, resultString, currentIndex, nextIndex - currentIndex);
+        JSObject* part = constructEmptyObject(&exec);
+        part->putDirect(vm, typePropertyName, type);
+        part->putDirect(vm, vm.propertyNames->value, value);
+        parts->putDirectIndex(&exec, index++, part);
+        RETURN_IF_EXCEPTION(scope, { });
+        currentIndex = nextIndex;
+    }
+
+
+    return parts;
+}
+#endif
+
 } // namespace JSC
 
 #endif // ENABLE(INTL)

Modified: trunk/Source/_javascript_Core/runtime/IntlNumberFormat.h (231866 => 231867)


--- trunk/Source/_javascript_Core/runtime/IntlNumberFormat.h	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/runtime/IntlNumberFormat.h	2018-05-16 20:38:32 UTC (rev 231867)
@@ -29,7 +29,10 @@
 
 #include "JSDestructibleObject.h"
 #include <unicode/unum.h>
+#include <unicode/uvernum.h>
 
+#define HAVE_ICU_FORMAT_DOUBLE_FOR_FIELDS (U_ICU_VERSION_MAJOR_NUM >= 59)
+
 namespace JSC {
 
 class IntlNumberFormatConstructor;
@@ -46,6 +49,9 @@
 
     void initializeNumberFormat(ExecState&, JSValue locales, JSValue optionsValue);
     JSValue formatNumber(ExecState&, double number);
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+    JSValue formatToParts(ExecState&, double value);
+#endif
     JSObject* resolvedOptions(ExecState&);
 
     JSBoundFunction* boundFormat() const { return m_boundFormat.get(); }
@@ -83,6 +89,24 @@
     WriteBarrier<JSBoundFunction> m_boundFormat;
     bool m_useGrouping { true };
     bool m_initializedNumberFormat { false };
+
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+    struct UFieldPositionIteratorDeleter {
+        void operator()(UFieldPositionIterator*) const;
+    };
+
+    struct IntlNumberFormatField {
+        UNumberFormatFields type;
+        int32_t beginIndex { 0 };
+        int32_t endIndex { 0 };
+        int32_t size() const
+        {
+            return endIndex - beginIndex;
+        };
+    };
+
+    static const char* partTypeString(UNumberFormatFields, double);
+#endif
 };
 
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/runtime/IntlNumberFormatPrototype.cpp (231866 => 231867)


--- trunk/Source/_javascript_Core/runtime/IntlNumberFormatPrototype.cpp	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/runtime/IntlNumberFormatPrototype.cpp	2018-05-16 20:38:32 UTC (rev 231867)
@@ -35,10 +35,14 @@
 #include "JSBoundFunction.h"
 #include "JSCInlines.h"
 #include "JSObjectInlines.h"
+#include "Options.h"
 
 namespace JSC {
 
 static EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeGetterFormat(ExecState*);
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+static EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncFormatToParts(ExecState*);
+#endif
 static EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncResolvedOptions(ExecState*);
 
 }
@@ -56,10 +60,10 @@
 @end
 */
 
-IntlNumberFormatPrototype* IntlNumberFormatPrototype::create(VM& vm, JSGlobalObject*, Structure* structure)
+IntlNumberFormatPrototype* IntlNumberFormatPrototype::create(VM& vm, JSGlobalObject* globalObject, Structure* structure)
 {
     IntlNumberFormatPrototype* object = new (NotNull, allocateCell<IntlNumberFormatPrototype>(vm.heap)) IntlNumberFormatPrototype(vm, structure);
-    object->finishCreation(vm, structure);
+    object->finishCreation(vm, globalObject, structure);
     return object;
 }
 
@@ -73,9 +77,15 @@
 {
 }
 
-void IntlNumberFormatPrototype::finishCreation(VM& vm, Structure*)
+void IntlNumberFormatPrototype::finishCreation(VM& vm, JSGlobalObject* globalObject, Structure*)
 {
     Base::finishCreation(vm);
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+    if (Options::useIntlNumberFormatToParts())
+        JSC_NATIVE_FUNCTION_WITHOUT_TRANSITION(vm.propertyNames->formatToParts, IntlNumberFormatPrototypeFuncFormatToParts, static_cast<unsigned>(PropertyAttribute::DontEnum), 1);
+#else
+    UNUSED_PARAM(globalObject);
+#endif
 
     putDirectWithoutTransition(vm, vm.propertyNames->toStringTagSymbol, jsString(&vm, "Object"), PropertyAttribute::DontEnum | PropertyAttribute::ReadOnly);
 }
@@ -137,6 +147,27 @@
     return JSValue::encode(boundFormat);
 }
 
+#if HAVE(ICU_FORMAT_DOUBLE_FOR_FIELDS)
+EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncFormatToParts(ExecState* state)
+{
+    VM& vm = state->vm();
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
+    // Intl.NumberFormat.prototype.formatToParts (ECMA-402)
+    // https://tc39.github.io/ecma402/#sec-intl.numberformat.prototype.formattoparts
+
+    IntlNumberFormat* numberFormat = jsDynamicCast<IntlNumberFormat*>(vm, state->thisValue());
+    if (!numberFormat)
+        return JSValue::encode(throwTypeError(state, scope, ASCIILiteral("Intl.NumberFormat.prototype.formatToParts called on value that's not an object initialized as a NumberFormat")));
+
+    double value = state->argument(0).toNumber(state);
+    RETURN_IF_EXCEPTION(scope, encodedJSValue());
+
+    scope.release();
+    return JSValue::encode(numberFormat->formatToParts(*state, value));
+}
+#endif
+
 EncodedJSValue JSC_HOST_CALL IntlNumberFormatPrototypeFuncResolvedOptions(ExecState* state)
 {
     VM& vm = state->vm();

Modified: trunk/Source/_javascript_Core/runtime/IntlNumberFormatPrototype.h (231866 => 231867)


--- trunk/Source/_javascript_Core/runtime/IntlNumberFormatPrototype.h	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/runtime/IntlNumberFormatPrototype.h	2018-05-16 20:38:32 UTC (rev 231867)
@@ -42,7 +42,7 @@
     DECLARE_INFO;
 
 protected:
-    void finishCreation(VM&, Structure*);
+    void finishCreation(VM&, JSGlobalObject*, Structure*);
 
 private:
     IntlNumberFormatPrototype(VM&, Structure*);

Modified: trunk/Source/_javascript_Core/runtime/Options.h (231866 => 231867)


--- trunk/Source/_javascript_Core/runtime/Options.h	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/_javascript_Core/runtime/Options.h	2018-05-16 20:38:32 UTC (rev 231867)
@@ -112,6 +112,12 @@
 constexpr bool enableAsyncIteration = false;
 #endif
 
+#if ENABLE(INTL_NUMBER_FORMAT_TO_PARTS)
+constexpr bool enableIntlNumberFormatToParts = true;
+#else
+constexpr bool enableIntlNumberFormatToParts = false;
+#endif
+
 #if ENABLE(INTL_PLURAL_RULES)
 constexpr bool enableIntlPluralRules = true;
 #else
@@ -501,6 +507,7 @@
     v(bool, useEagerWebAssemblyModuleHashing, false, Normal, "Unnamed WebAssembly modules are identified in backtraces through their hash, if available.") \
     v(bool, useObjectRestSpread, true, Normal, "If true, we will enable Object Rest/Spread feature.") \
     v(bool, useBigInt, false, Normal, "If true, we will enable BigInt support.") \
+    v(bool, useIntlNumberFormatToParts, enableIntlNumberFormatToParts, Normal, "If true, we will enable Intl.NumberFormat.prototype.formatToParts") \
     v(bool, useIntlPluralRules, enableIntlPluralRules, Normal, "If true, we will enable Intl.PluralRules.") \
     v(bool, useArrayAllocationProfiling, true, Normal, "If true, we will use our normal array allocation profiling. If false, the allocation profile will always claim to be undecided.")\
     v(bool, forcePolyProto, false, Normal, "If true, create_this will always create an object with a poly proto structure.")

Modified: trunk/Source/WTF/ChangeLog (231866 => 231867)


--- trunk/Source/WTF/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WTF/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,14 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts.
+
+        * wtf/FeatureDefines.h:
+
 2018-05-16  Yusuke Suzuki  <utatane....@gmail.com>
 
         Unreviewed, follow-up after r231762

Modified: trunk/Source/WTF/wtf/FeatureDefines.h (231866 => 231867)


--- trunk/Source/WTF/wtf/FeatureDefines.h	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WTF/wtf/FeatureDefines.h	2018-05-16 20:38:32 UTC (rev 231867)
@@ -496,6 +496,10 @@
 #define ENABLE_INTL 0
 #endif
 
+#if !defined(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS)
+#define ENABLE_INTL_NUMBER_FORMAT_TO_PARTS 0
+#endif
+
 #if !defined(ENABLE_INTL_PLURAL_RULES)
 #define ENABLE_INTL_PLURAL_RULES 0
 #endif

Modified: trunk/Source/WebCore/ChangeLog (231866 => 231867)


--- trunk/Source/WebCore/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebCore/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,16 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Test: js/intl-numberformat-format-to-parts.html
+
+        Add flag & tests for NumberFormat formatToParts.
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2018-05-16  Eric Carlson  <eric.carl...@apple.com>
 
         Improve NowPlaying "title"

Modified: trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig (231866 => 231867)


--- trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebCore/Configurations/FeatureDefines.xcconfig	2018-05-16 20:38:32 UTC (rev 231867)
@@ -195,6 +195,7 @@
 ENABLE_INTERSECTION_OBSERVER = ENABLE_INTERSECTION_OBSERVER;
 
 ENABLE_INTL = ENABLE_INTL;
+ENABLE_INTL_NUMBER_FORMAT_TO_PARTS = ENABLE_INTL_NUMBER_FORMAT_TO_PARTS;
 ENABLE_INTL_PLURAL_RULES = ENABLE_INTL_PLURAL_RULES;
 
 ENABLE_IOS_GESTURE_EVENTS = $(ENABLE_IOS_GESTURE_EVENTS_$(WK_COCOA_TOUCH)_WITH_INTERNAL_SDK_$(USE_INTERNAL_SDK));
@@ -383,4 +384,4 @@
 
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FUL
 LSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS)
  $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $
 (ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULL
 SCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MED
 IA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSE
 MBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Modified: trunk/Source/WebCore/PAL/ChangeLog (231866 => 231867)


--- trunk/Source/WebCore/PAL/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebCore/PAL/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,14 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts.
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2018-05-15  Wenson Hsieh  <wenson_hs...@apple.com>
 
         PasteboardWebContent's dataInAttributedStringFormat fails to deserialize in the UI process when copying a selection

Modified: trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig (231866 => 231867)


--- trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebCore/PAL/Configurations/FeatureDefines.xcconfig	2018-05-16 20:38:32 UTC (rev 231867)
@@ -195,6 +195,7 @@
 ENABLE_INTERSECTION_OBSERVER = ENABLE_INTERSECTION_OBSERVER;
 
 ENABLE_INTL = ENABLE_INTL;
+ENABLE_INTL_NUMBER_FORMAT_TO_PARTS = ENABLE_INTL_NUMBER_FORMAT_TO_PARTS;
 ENABLE_INTL_PLURAL_RULES = ENABLE_INTL_PLURAL_RULES;
 
 ENABLE_IOS_GESTURE_EVENTS = $(ENABLE_IOS_GESTURE_EVENTS_$(WK_COCOA_TOUCH)_WITH_INTERNAL_SDK_$(USE_INTERNAL_SDK));
@@ -383,4 +384,4 @@
 
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FUL
 LSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS)
  $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $
 (ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULL
 SCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MED
 IA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSE
 MBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Modified: trunk/Source/WebKit/ChangeLog (231866 => 231867)


--- trunk/Source/WebKit/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebKit/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,14 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts.
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2018-05-16  Andy Estes  <aes...@apple.com>
 
         [Wi-Fi Assertions] Adopt WiFiAssertionHolderAdditions

Modified: trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig (231866 => 231867)


--- trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebKit/Configurations/FeatureDefines.xcconfig	2018-05-16 20:38:32 UTC (rev 231867)
@@ -195,6 +195,7 @@
 ENABLE_INTERSECTION_OBSERVER = ENABLE_INTERSECTION_OBSERVER;
 
 ENABLE_INTL = ENABLE_INTL;
+ENABLE_INTL_NUMBER_FORMAT_TO_PARTS = ENABLE_INTL_NUMBER_FORMAT_TO_PARTS;
 ENABLE_INTL_PLURAL_RULES = ENABLE_INTL_PLURAL_RULES;
 
 ENABLE_IOS_GESTURE_EVENTS = $(ENABLE_IOS_GESTURE_EVENTS_$(WK_COCOA_TOUCH)_WITH_INTERNAL_SDK_$(USE_INTERNAL_SDK));
@@ -383,4 +384,4 @@
 
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FUL
 LSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS)
  $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $
 (ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULL
 SCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MED
 IA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSE
 MBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (231866 => 231867)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,14 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts.
+
+        * Configurations/FeatureDefines.xcconfig:
+
 2018-05-16  Chris Nardi  <cna...@chromium.org>
 
         Fixup after r231849: Do not mark Mac API methods as deprecated

Modified: trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig (231866 => 231867)


--- trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/WebKitLegacy/mac/Configurations/FeatureDefines.xcconfig	2018-05-16 20:38:32 UTC (rev 231867)
@@ -195,6 +195,7 @@
 ENABLE_INTERSECTION_OBSERVER = ENABLE_INTERSECTION_OBSERVER;
 
 ENABLE_INTL = ENABLE_INTL;
+ENABLE_INTL_NUMBER_FORMAT_TO_PARTS = ENABLE_INTL_NUMBER_FORMAT_TO_PARTS;
 ENABLE_INTL_PLURAL_RULES = ENABLE_INTL_PLURAL_RULES;
 
 ENABLE_IOS_GESTURE_EVENTS = $(ENABLE_IOS_GESTURE_EVENTS_$(WK_COCOA_TOUCH)_WITH_INTERNAL_SDK_$(USE_INTERNAL_SDK));
@@ -383,4 +384,4 @@
 
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FUL
 LSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS)
  $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $
 (ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULL
 SCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MED
 IA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSE
 MBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);

Modified: trunk/Source/cmake/OptionsJSCOnly.cmake (231866 => 231867)


--- trunk/Source/cmake/OptionsJSCOnly.cmake	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/cmake/OptionsJSCOnly.cmake	2018-05-16 20:38:32 UTC (rev 231867)
@@ -15,6 +15,7 @@
 WEBKIT_OPTION_BEGIN()
 WEBKIT_OPTION_DEFINE(ENABLE_STATIC_JSC "Whether to build _javascript_Core as a static library." PUBLIC OFF)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REMOTE_INSPECTOR PRIVATE OFF)
+WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS PRIVATE ON)
 WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_INTL_PLURAL_RULES PRIVATE ON)
 if (WIN32)
     # FIXME: Enable FTL on Windows. https://bugs.webkit.org/show_bug.cgi?id=145366

Modified: trunk/Source/cmake/WebKitFeatures.cmake (231866 => 231867)


--- trunk/Source/cmake/WebKitFeatures.cmake	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Source/cmake/WebKitFeatures.cmake	2018-05-16 20:38:32 UTC (rev 231867)
@@ -125,6 +125,7 @@
     WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_WEEK "Toggle week type <input> support" PRIVATE OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INTERSECTION_OBSERVER "Enable Intersection Observer support" PRIVATE ON)
     WEBKIT_OPTION_DEFINE(ENABLE_INTL "Toggle Intl support" PRIVATE ON)
+    WEBKIT_OPTION_DEFINE(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS "Toggle Intl.NumberFormat.prototype.formatToParts support" PRIVATE OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_INTL_PLURAL_RULES "Toggle Intl.PluralRules support" PRIVATE OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_IOS_AIRPLAY "Toggle iOS airplay support" PRIVATE OFF)
     WEBKIT_OPTION_DEFINE(ENABLE_JIT "Enable JustInTime _javascript_ support" PRIVATE ON)

Modified: trunk/Tools/ChangeLog (231866 => 231867)


--- trunk/Tools/ChangeLog	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Tools/ChangeLog	2018-05-16 20:38:32 UTC (rev 231867)
@@ -1,3 +1,15 @@
+2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>
+
+        Add support for Intl NumberFormat formatToParts
+        https://bugs.webkit.org/show_bug.cgi?id=185375
+
+        Reviewed by Yusuke Suzuki.
+
+        Add flag for NumberFormat formatToParts.
+
+        * Scripts/webkitperl/FeatureList.pm:
+        * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
+
 2018-05-14  Yusuke Suzuki  <utatane....@gmail.com>
 
         [Win] Use C++17 in MSVC

Modified: trunk/Tools/Scripts/webkitperl/FeatureList.pm (231866 => 231867)


--- trunk/Tools/Scripts/webkitperl/FeatureList.pm	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Tools/Scripts/webkitperl/FeatureList.pm	2018-05-16 20:38:32 UTC (rev 231867)
@@ -91,6 +91,7 @@
     $inputTypeTimeSupport,
     $inputTypeWeekSupport,
     $intlSupport,
+    $intlNumberFormatToPartsSupport,
     $intlPluralRulesSupport,
     $jitSupport,
     $legacyEncryptedMediaSupport,
@@ -263,6 +264,9 @@
     { option => "intl", desc => "Toggle Intl support",
       define => "ENABLE_INTL", value => \$intlSupport },
 
+    { option => "intlNumberFormatToParts", desc => "Toggle Intl.NumberFormat.prototype.formatToParts support",
+      define => "ENABLE_INTL_NUMBER_FORMAT_TO_PARTS", value => \$intlNumberFormatToPartsSupport },
+
     { option => "intlPluralRules", desc => "Toggle Intl.PluralRules support",
       define => "ENABLE_INTL_PLURAL_RULES", value => \$intlPluralRulesSupport },
 

Modified: trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig (231866 => 231867)


--- trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig	2018-05-16 20:36:26 UTC (rev 231866)
+++ trunk/Tools/TestWebKitAPI/Configurations/FeatureDefines.xcconfig	2018-05-16 20:38:32 UTC (rev 231867)
@@ -195,6 +195,7 @@
 ENABLE_INTERSECTION_OBSERVER = ENABLE_INTERSECTION_OBSERVER;
 
 ENABLE_INTL = ENABLE_INTL;
+ENABLE_INTL_NUMBER_FORMAT_TO_PARTS = ENABLE_INTL_NUMBER_FORMAT_TO_PARTS;
 ENABLE_INTL_PLURAL_RULES = ENABLE_INTL_PLURAL_RULES;
 
 ENABLE_IOS_GESTURE_EVENTS = $(ENABLE_IOS_GESTURE_EVENTS_$(WK_COCOA_TOUCH)_WITH_INTERNAL_SDK_$(USE_INTERNAL_SDK));
@@ -383,4 +384,4 @@
 
 ENABLE_XSLT = ENABLE_XSLT;
 
-FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FUL
 LSCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MEDIA_SOURCE) $(ENABLE_MEDIA_STATISTICS)
  $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSEMBLY_STREAMING_API) $(ENABLE_WEBGL) $
 (ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
+FEATURE_DEFINES = $(ENABLE_3D_TRANSFORMS) $(ENABLE_ACCELERATED_2D_CANVAS) $(ENABLE_ACCELERATED_OVERFLOW_SCROLLING) $(ENABLE_APPLE_PAY) $(ENABLE_APPLE_PAY_SESSION_V3) $(ENABLE_APPLICATION_MANIFEST) $(ENABLE_ATTACHMENT_ELEMENT) $(ENABLE_AVF_CAPTIONS) $(ENABLE_CACHE_PARTITIONING) $(ENABLE_CHANNEL_MESSAGING) $(ENABLE_CONTENT_FILTERING) $(ENABLE_CSS3_TEXT) $(ENABLE_CSS_ANIMATIONS_LEVEL_2) $(ENABLE_CSS_BOX_DECORATION_BREAK) $(ENABLE_CSS_COMPOSITING) $(ENABLE_CSS_DEVICE_ADAPTATION) $(ENABLE_CSS_IMAGE_ORIENTATION) $(ENABLE_CSS_IMAGE_RESOLUTION) $(ENABLE_CSS_SCROLL_SNAP) $(ENABLE_CSS_SELECTORS_LEVEL4) $(ENABLE_CSS_TRAILING_WORD) $(ENABLE_CURSOR_VISIBILITY) $(ENABLE_CUSTOM_SCHEME_HANDLER) $(ENABLE_DASHBOARD_SUPPORT) $(ENABLE_DATA_INTERACTION) $(ENABLE_DATACUE_VALUE) $(ENABLE_DATALIST_ELEMENT) $(ENABLE_DEVICE_ORIENTATION) $(ENABLE_DRAG_SUPPORT) $(ENABLE_ENCRYPTED_MEDIA) $(ENABLE_EXTRA_ZOOM_MODE) $(ENABLE_FAST_JIT_PERMISSIONS) $(ENABLE_FILTERS_LEVEL_2) $(ENABLE_FTL_JIT) $(ENABLE_FULL
 SCREEN_API) $(ENABLE_GAMEPAD) $(ENABLE_GEOLOCATION) $(ENABLE_ICONDATABASE) $(ENABLE_INDEXED_DATABASE) $(ENABLE_INDEXED_DATABASE_IN_WORKERS) $(ENABLE_INPUT_TYPE_COLOR) $(ENABLE_INPUT_TYPE_COLOR_POPOVER) $(ENABLE_INPUT_TYPE_DATE) $(ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE) $(ENABLE_INPUT_TYPE_DATETIMELOCAL) $(ENABLE_INPUT_TYPE_MONTH) $(ENABLE_INPUT_TYPE_TIME) $(ENABLE_INPUT_TYPE_WEEK) $(ENABLE_INTERSECTION_OBSERVER) $(ENABLE_INTL) $(ENABLE_INTL_NUMBER_FORMAT_TO_PARTS) $(ENABLE_INTL_PLURAL_RULES) $(ENABLE_IOS_GESTURE_EVENTS) $(ENABLE_IOS_TOUCH_EVENTS) $(ENABLE_JIT) $(ENABLE_JS_ASYNC_ITERATION) $(ENABLE_KEYBOARD_CODE_ATTRIBUTE) $(ENABLE_KEYBOARD_KEY_ATTRIBUTE) $(ENABLE_LAYOUT_FORMATTING_CONTEXT) $(ENABLE_LEGACY_CSS_VENDOR_PREFIXES) $(ENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER) $(ENABLE_LEGACY_ENCRYPTED_MEDIA) $(ENABLE_LETTERPRESS) $(ENABLE_MAC_GESTURE_EVENTS) $(ENABLE_MAC_VIDEO_TOOLBOX) $(ENABLE_MATHML) $(ENABLE_MEDIA_CAPTURE) $(ENABLE_MEDIA_CONTROLS_SCRIPT) $(ENABLE_MEDIA_SESSION) $(ENABLE_MED
 IA_SOURCE) $(ENABLE_MEDIA_STATISTICS) $(ENABLE_MEDIA_STREAM) $(ENABLE_METER_ELEMENT) $(ENABLE_MINIMAL_SIMULATOR) $(ENABLE_MHTML) $(ENABLE_MOUSE_CURSOR_SCALE) $(ENABLE_NAVIGATOR_CONTENT_UTILS) $(ENABLE_NAVIGATOR_STANDALONE) $(ENABLE_NOTIFICATIONS) $(ENABLE_PAYMENT_REQUEST) $(ENABLE_PDFKIT_PLUGIN) $(ENABLE_POINTER_LOCK) $(ENABLE_PUBLIC_SUFFIX_LIST) $(ENABLE_QUOTA) $(ENABLE_REMOTE_INSPECTOR) $(ENABLE_RESOLUTION_MEDIA_QUERY) $(ENABLE_RESOURCE_USAGE) $(ENABLE_RUBBER_BANDING) $(ENABLE_SERVICE_CONTROLS) $(ENABLE_SERVICE_WORKER) $(ENABLE_SPEECH_SYNTHESIS) $(ENABLE_STREAMS_API) $(ENABLE_SUBTLE_CRYPTO) $(ENABLE_SVG_FONTS) $(ENABLE_TELEPHONE_NUMBER_DETECTION) $(ENABLE_TEXT_AUTOSIZING) $(ENABLE_TOUCH_EVENTS) $(ENABLE_USER_MESSAGE_HANDLERS) $(ENABLE_USERSELECT_ALL) $(ENABLE_VARIATION_FONTS) $(ENABLE_VIDEO) $(ENABLE_VIDEO_PRESENTATION_MODE) $(ENABLE_VIDEO_TRACK) $(ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN) $(ENABLE_WEB_AUDIO) $(ENABLE_WEB_AUTHN) $(ENABLE_WEB_RTC) $(ENABLE_WEBASSEMBLY) $(ENABLE_WEBASSE
 MBLY_STREAMING_API) $(ENABLE_WEBGL) $(ENABLE_WEBGL2) $(ENABLE_WEBGPU) $(ENABLE_WIRELESS_PLAYBACK_TARGET) $(ENABLE_XSLT);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to