-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Normative: Read date-time options only once when creating DateTimeFormat objects #709
Conversation
Conclusion: Review the Test262 impact. Further discussion is not necessary in this group unless red flags show up. Approved with that condition. |
@gibson042 any updates? |
Please also note the changes going in a similar direction in Temporal. (I don't have the time right now to review if any changes would be helpful here or there.) |
…ateTimeFormat objects" Update tests for PR tc39/ecma402#709.
Test262 PR created at tc39/test262#3768. |
742759f
to
45c338b
Compare
I filed tc39/proposal-temporal#2473 to adapt to this change on the Temporal side. |
Ref tc39/ecma402#709 (comment) Passes relevant tests after minor modification: ```sh $ npm run test:test262 -- --extended-tests --run-slow-tests $( find $( find test/test262/test262/ -type d -a '(' -iname '*intl*' -o -iname '*402*' ')' -prune | \ tee /dev/stderr \ ) -iname '*date*' -prune | \ grep -viE 'temporal|\bdate\b|\bsupportedValuesOf\b|\bDisplayName' ) test/test262/test262/test/staging/Intl402 test/test262/test262/test/intl402 test/test262/test262/implementation-contributed/v8/intl test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402 > @engine262/[email protected] test:test262 > node --enable-source-maps test/test262/test262.js --extended-tests --run-slow-tests test/test262/test262/test/intl402/DateTimeFormat test/test262/test262/test/intl402/Intl/DateTimeFormat test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat engine262 Test Runner Detected 4 CPUs Not running on CI [00:04|: 342|+ 322|- 0|» 20] (68.00/s) $ pushd test/test262/test262/ && git diff; popd diff --git i/harness/testIntl.js w/harness/testIntl.js index 286ccd129e..f674055e2c 100644 --- i/harness/testIntl.js +++ w/harness/testIntl.js @@ -42,7 +42,8 @@ defines: * @param {Function} Constructor the constructor object to test with. */ function testWithIntlConstructors(f) { - var constructors = ["Collator", "NumberFormat", "DateTimeFormat"]; + // engine262 does not yet implement Collator or NumberFormat. + var constructors = [/*"Collator", "NumberFormat",*/ "DateTimeFormat"]; // Optionally supported Intl constructors. // NB: Intl.Locale isn't an Intl service constructor! diff --git i/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js w/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js index 64845e74a9..bee9c5cf53 100644 --- i/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js +++ w/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js @@ -11,7 +11,8 @@ includes: [testIntl.js] testWithIntlConstructors(function (Constructor) { var obj, newObj; - if (Constructor === Intl.DateTimeFormat) { + // engine262 does not implement ChainDateTimeFormat (which is normative-optional). + if (false && Constructor === Intl.DateTimeFormat) { obj = new Constructor(); newObj = Intl.DateTimeFormat.call(obj); if (obj !== newObj) { diff --git i/test/intl402/DateTimeFormat/date-time-options.js w/test/intl402/DateTimeFormat/date-time-options.js index 7d9ef93d20..8c8502fc3b 100644 --- i/test/intl402/DateTimeFormat/date-time-options.js +++ w/test/intl402/DateTimeFormat/date-time-options.js @@ -36,6 +36,8 @@ function testWithDateTimeFormat(options, expected) { } function testWithToLocale(f, options, expected) { + // engine262 does not yet implement Intl-integrated Date.prototype.toLocaleString. + return; // expected can be either one subset or an array of possible subsets if (expected.length === undefined) { expected = [expected]; ```
Ref tc39/ecma402#709 (comment) Passes relevant tests after minor modification: ```sh $ npm run test:test262 -- --extended-tests --run-slow-tests $( find $( find test/test262/test262/ -type d -a '(' -iname '*intl*' -o -iname '*402*' ')' -prune | \ tee /dev/stderr \ ) -iname '*date*' -prune | \ grep -viE 'temporal|\bdate\b|\bsupportedValuesOf\b|\bDisplayName' ) test/test262/test262/test/staging/Intl402 test/test262/test262/test/intl402 test/test262/test262/implementation-contributed/v8/intl test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402 > @engine262/[email protected] test:test262 > node --enable-source-maps test/test262/test262.js --extended-tests --run-slow-tests test/test262/test262/test/intl402/DateTimeFormat test/test262/test262/test/intl402/Intl/DateTimeFormat test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat engine262 Test Runner Detected 4 CPUs Not running on CI [00:04|: 342|+ 322|- 0|» 20] (68.00/s) $ pushd test/test262/test262/ && git diff; popd diff --git i/harness/testIntl.js w/harness/testIntl.js index 286ccd129e..f674055e2c 100644 --- i/harness/testIntl.js +++ w/harness/testIntl.js @@ -42,7 +42,8 @@ defines: * @param {Function} Constructor the constructor object to test with. */ function testWithIntlConstructors(f) { - var constructors = ["Collator", "NumberFormat", "DateTimeFormat"]; + // engine262 does not yet implement Collator or NumberFormat. + var constructors = [/*"Collator", "NumberFormat",*/ "DateTimeFormat"]; // Optionally supported Intl constructors. // NB: Intl.Locale isn't an Intl service constructor! diff --git i/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js w/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js index 64845e74a9..bee9c5cf53 100644 --- i/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js +++ w/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js @@ -11,7 +11,8 @@ includes: [testIntl.js] testWithIntlConstructors(function (Constructor) { var obj, newObj; - if (Constructor === Intl.DateTimeFormat) { + // engine262 does not implement ChainDateTimeFormat (which is normative-optional). + if (false && Constructor === Intl.DateTimeFormat) { obj = new Constructor(); newObj = Intl.DateTimeFormat.call(obj); if (obj !== newObj) { diff --git i/test/intl402/DateTimeFormat/date-time-options.js w/test/intl402/DateTimeFormat/date-time-options.js index 7d9ef93d20..8c8502fc3b 100644 --- i/test/intl402/DateTimeFormat/date-time-options.js +++ w/test/intl402/DateTimeFormat/date-time-options.js @@ -36,6 +36,8 @@ function testWithDateTimeFormat(options, expected) { } function testWithToLocale(f, options, expected) { + // engine262 does not yet implement Intl-integrated Date.prototype.toLocaleString. + return; // expected can be either one subset or an array of possible subsets if (expected.length === undefined) { expected = [expected]; ```
Implements tc39/ecma402#709 Introduced test failures: ```sh $ npm run test:test262 -- --extended-tests --run-slow-tests $(find $(find test/test262/test262/ -type d -a '(' -iname '*intl*' -o -iname '*402*' ')' -prune | tee /dev/stderr) -iname '*date*' -prune | grep -viE 'temporal|\bdate\b|\bsupportedValuesOf\b|\bDisplayName') 2>&1 | grep -vE '^[[:space:]]+ at ' | tee /dev/stderr | awk '/^FAILURE!/ { files[$2]++ } END { printf "\n\n# Files\n" > "/dev/stderr"; for(f in files) print f; }' | sort -u $ npm run test:test262 -- --extended-tests --run-slow-tests $( find $( find test/test262/test262/ -type d -a '(' -iname '*intl*' -o -iname '*402*' ')' -prune | \ tee /dev/stderr \ ) -iname '*date*' -prune | \ grep -viE 'temporal|\bdate\b|\bsupportedValuesOf\b|\bDisplayName' ) 2>&1 | \ grep -vE '^[[:space:]]+ at ' | \ tee /dev/stderr | \ awk '/^FAILURE/ { a[$2]++ } END { print "\n\n# Files" > "/dev/stderr"; for(f in a) print f }' | \ sort -u test/test262/test262/test/staging/Intl402 test/test262/test262/test/intl402 test/test262/test262/implementation-contributed/v8/intl test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402 > @engine262/[email protected] test:test262 > node --enable-source-maps test/test262/test262.js --extended-tests --run-slow-tests test/test262/test262/test/intl402/DateTimeFormat test/test262/test262/test/intl402/Intl/DateTimeFormat test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat engine262 Test Runner Detected 4 CPUs Not running on CI [00:00|: 342|+ 0|- 0|» 20] (0.00/s) FAILURE! intl402/DateTimeFormat/constructor-options-order-dayPeriod.js Checks the order of getting options of 'dayPeriod' for the DateTimeFormat constructor. (Strict Mode) Error: Expected [day, dayPeriod, hour] and [day, dayPeriod, hour, day, dayPeriod, hour] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-dayPeriod.js Checks the order of getting options of 'dayPeriod' for the DateTimeFormat constructor. Error: Expected [day, dayPeriod, hour] and [day, dayPeriod, hour, day, dayPeriod, hour] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-timedate-style.js Checks the order of getting options for the DateTimeFormat constructor. Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] and [weekday, year, month, day, hour, minute, second, dateStyle, timeStyle, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js Checks the order of getting options of 'fractionalSecondDigits' for the DateTimeFormat constructor. (Strict Mode) Error: Expected [localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] and [second, fractionalSecondDigits, localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order.js Checks the order of getting options for the DateTimeFormat constructor. (Strict Mode) Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] and [weekday, year, month, day, hour, minute, second, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order.js Checks the order of getting options for the DateTimeFormat constructor. Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] and [weekday, year, month, day, hour, minute, second, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js Checks the order of getting options of 'fractionalSecondDigits' for the DateTimeFormat constructor. Error: Expected [localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] and [second, fractionalSecondDigits, localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-timedate-style.js Checks the order of getting options for the DateTimeFormat constructor. (Strict Mode) Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] and [weekday, year, month, day, hour, minute, second, dateStyle, timeStyle, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] to have the same contents. [00:04|: 342|+ 314|- 8|» 20] (70.00/s) intl402/DateTimeFormat/constructor-options-order-dayPeriod.js intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js intl402/DateTimeFormat/constructor-options-order-timedate-style.js intl402/DateTimeFormat/constructor-options-order.js ```
I confirmed with engine262 that the test changes at tc39/test262#3768 are the correct updates for this PR: engine262/engine262@3248ccc...gibson042:ecma402-gh-709-initializedatetimeformat And since test changes are required, it's worth looking critically at the new read order proposed here [spoiler—I think slight modification is warranted]:
Cross-facility comparison:
Considering the above, I think it does make sense to read calendar and numberingSystem where they are. formatMatcher and {date,time}Style form a style/type-like group that should probably precede reading component-specific fields, better aligning with DisplayNames and NumberFormat and RelativeTimeFormat. That leaves timeZone, which acts as input data augmentation and doesn't really have a great analogue in other facilities—I think it can make sense either immediately before or immediately after the aforementioned style group. I'm inclined to say "before", making the overall pattern "locale" then "context" then "style/type" then "details". Concretely, I propose the narrow change here of moving the formatMatcher/dateStyle/timeStyle block immediately before the components-table loop and also reordering it to dateStyle then timeStyle then formatMatcher (since formatMatcher is subordinate to the other fields, only having an effect when they are both EDIT: But I'm also fine with not reordering, since it may not survive #747 anyway. |
Ref tc39/ecma402#709 (comment) Passes relevant tests after minor modification: ```sh $ npm run test:test262 -- --extended-tests --run-slow-tests $( find $( find test/test262/test262/ -type d -a '(' -iname '*intl*' -o -iname '*402*' ')' -prune | \ tee /dev/stderr \ ) -iname '*date*' -prune | \ grep -viE 'temporal|\bdate\b|\bsupportedValuesOf\b|\bDisplayName' ) test/test262/test262/test/staging/Intl402 test/test262/test262/test/intl402 test/test262/test262/implementation-contributed/v8/intl test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402 > @engine262/[email protected] test:test262 > node --enable-source-maps test/test262/test262.js --extended-tests --run-slow-tests test/test262/test262/test/intl402/DateTimeFormat test/test262/test262/test/intl402/Intl/DateTimeFormat test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat engine262 Test Runner Detected 4 CPUs Not running on CI [00:04|: 342|+ 322|- 0|» 20] (68.00/s) $ pushd test/test262/test262/ && git diff; popd diff --git i/harness/testIntl.js w/harness/testIntl.js index 286ccd129e..f674055e2c 100644 --- i/harness/testIntl.js +++ w/harness/testIntl.js @@ -42,7 +42,8 @@ defines: * @param {Function} Constructor the constructor object to test with. */ function testWithIntlConstructors(f) { - var constructors = ["Collator", "NumberFormat", "DateTimeFormat"]; + // engine262 does not yet implement Collator or NumberFormat. + var constructors = [/*"Collator", "NumberFormat",*/ "DateTimeFormat"]; // Optionally supported Intl constructors. // NB: Intl.Locale isn't an Intl service constructor! diff --git i/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js w/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js index 64845e74a9..bee9c5cf53 100644 --- i/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js +++ w/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat/12.1.1_1.js @@ -11,7 +11,8 @@ includes: [testIntl.js] testWithIntlConstructors(function (Constructor) { var obj, newObj; - if (Constructor === Intl.DateTimeFormat) { + // engine262 does not implement ChainDateTimeFormat (which is normative-optional). + if (false && Constructor === Intl.DateTimeFormat) { obj = new Constructor(); newObj = Intl.DateTimeFormat.call(obj); if (obj !== newObj) { diff --git i/test/intl402/DateTimeFormat/date-time-options.js w/test/intl402/DateTimeFormat/date-time-options.js index 7d9ef93d20..8c8502fc3b 100644 --- i/test/intl402/DateTimeFormat/date-time-options.js +++ w/test/intl402/DateTimeFormat/date-time-options.js @@ -36,6 +36,8 @@ function testWithDateTimeFormat(options, expected) { } function testWithToLocale(f, options, expected) { + // engine262 does not yet implement Intl-integrated Date.prototype.toLocaleString. + return; // expected can be either one subset or an array of possible subsets if (expected.length === undefined) { expected = [expected]; ```
Implements tc39/ecma402#709 Introduced test failures: ```sh $ npm run test:test262 -- --extended-tests --run-slow-tests $( find $( find test/test262/test262/ -type d -a '(' -iname '*intl*' -o -iname '*402*' ')' -prune | \ tee /dev/stderr \ ) -iname '*date*' -prune | \ grep -viE 'temporal|\bdate\b|\bsupportedValuesOf\b|\bDisplayName' ) 2>&1 | \ grep -vE '^[[:space:]]+ at ' | \ tee /dev/stderr | \ awk '/^FAILURE/ { a[$2]++ } END { print "\n\nFILES" > "/dev/stderr"; for(f in a) print f }' | \ sort -u test/test262/test262/test/staging/Intl402 test/test262/test262/test/intl402 test/test262/test262/implementation-contributed/v8/intl test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402 > @engine262/[email protected] test:test262 > node --enable-source-maps test/test262/test262.js --extended-tests --run-slow-tests test/test262/test262/test/intl402/DateTimeFormat test/test262/test262/test/intl402/Intl/DateTimeFormat test/test262/test262/implementation-contributed/v8/test262/local-tests/test/intl402/DateTimeFormat engine262 Test Runner Detected 4 CPUs Not running on CI [00:00|: 342|+ 0|- 0|» 20] (0.00/s) FAILURE! intl402/DateTimeFormat/constructor-options-order-dayPeriod.js Checks the order of getting options of 'dayPeriod' for the DateTimeFormat constructor. (Strict Mode) Error: Expected [day, dayPeriod, hour] and [day, dayPeriod, hour, day, dayPeriod, hour] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-dayPeriod.js Checks the order of getting options of 'dayPeriod' for the DateTimeFormat constructor. Error: Expected [day, dayPeriod, hour] and [day, dayPeriod, hour, day, dayPeriod, hour] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-timedate-style.js Checks the order of getting options for the DateTimeFormat constructor. Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] and [weekday, year, month, day, hour, minute, second, dateStyle, timeStyle, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js Checks the order of getting options of 'fractionalSecondDigits' for the DateTimeFormat constructor. (Strict Mode) Error: Expected [localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] and [second, fractionalSecondDigits, localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order.js Checks the order of getting options for the DateTimeFormat constructor. (Strict Mode) Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] and [weekday, year, month, day, hour, minute, second, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order.js Checks the order of getting options for the DateTimeFormat constructor. Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] and [weekday, year, month, day, hour, minute, second, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js Checks the order of getting options of 'fractionalSecondDigits' for the DateTimeFormat constructor. Error: Expected [localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] and [second, fractionalSecondDigits, localeMatcher, second, fractionalSecondDigits, timeZoneName, formatMatcher] to have the same contents. FAILURE! intl402/DateTimeFormat/constructor-options-order-timedate-style.js Checks the order of getting options for the DateTimeFormat constructor. (Strict Mode) Error: Expected [localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] and [weekday, year, month, day, hour, minute, second, dateStyle, timeStyle, localeMatcher, hour12, hourCycle, timeZone, weekday, era, year, month, day, hour, minute, second, timeZoneName, formatMatcher, dateStyle, timeStyle] to have the same contents. [00:04|: 342|+ 314|- 8|» 20] (70.00/s) FILES intl402/DateTimeFormat/constructor-options-order-dayPeriod.js intl402/DateTimeFormat/constructor-options-order-fractionalSecondDigits.js intl402/DateTimeFormat/constructor-options-order-timedate-style.js intl402/DateTimeFormat/constructor-options-order.js ```
Hi @ryzokuken, I don't see this issue being discussed at the May meeting. Do you plan to present it at the July meeting? Thanks, |
Hi @anba! I indeed missed the fact that there's consensus here. I'll present it in the July meeting. |
This got approval at TG1, merging after merge conflict is fixed. |
The following tests in test262 need to be updated to match this PR 'intl402/DateTimeFormat/constructor-options-order-dayPeriod': [FAIL], |
ECMA402 PR709 remove unnecessary duplicated GetOption calls This PR sync the test to PR709 PR709 recach TC39 consensus in July 2023 meeting. tc39/ecma402#709
Fix tests in tc39/test262#3879 |
The test updates are in tc39/test262#3768. |
please rebase, resolve conflict and merge. Thanks |
@ryzokuken - why is there a merge commit in this PR? |
@justingrant because I tried giving the GitHub interface a chance :/ Will rebase manually next time. |
@ryzokuken for future reference, there's an arrow next to "update branch" that lets you select "rebase branch", and it should work fine from the UI. |
After a lot of confusion, I realized that part of my troubles fixing up the merge issues was that the commits were already in the main branch? 02bd03a. Closing the PR, phew. |
…ateTimeFormat objects" Update tests for PR tc39/ecma402#709.
…ateTimeFormat objects" Update tests for PR tc39/ecma402#709.
tc39/ecma402#709 Change DateTimeFormat logic to read option only once. Track which fields is not undefined from the GetOptions. Change test/intl to reflect the change and remove dup test. PR709 reached TC39 consensus in July 2023 meeting. Bug: v8:13908 Change-Id: I5a5429f6375a01b04e77093d32acb76ae1e40d11 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4706795 Commit-Queue: Frank Tang <[email protected]> Reviewed-by: Shu-yu Guo <[email protected]> Cr-Commit-Position: refs/heads/main@{#89241}
…DateTimeFormat objects. r=dminor Implements the changes from <tc39/ecma402#709>. The `intl_DateTimeFormat` self-hosted function is replaced with `intl_CreateDateTimeFormat`, which implements the new `CreateDateTimeFormat` abstract operation from the spec. `intl_CreateDateTimeFormat` calls into the existing `InitializeDateTimeFormat` function to actually initialise the newly created date-time formatter. Differential Revision: https://phabricator.services.mozilla.com/D189539
…DateTimeFormat objects. r=dminor Implements the changes from <tc39/ecma402#709>. The `intl_DateTimeFormat` self-hosted function is replaced with `intl_CreateDateTimeFormat`, which implements the new `CreateDateTimeFormat` abstract operation from the spec. `intl_CreateDateTimeFormat` calls into the existing `InitializeDateTimeFormat` function to actually initialise the newly created date-time formatter. Differential Revision: https://phabricator.services.mozilla.com/D189539
…DateTimeFormat objects. r=dminor Implements the changes from <tc39/ecma402#709>. The `intl_DateTimeFormat` self-hosted function is replaced with `intl_CreateDateTimeFormat`, which implements the new `CreateDateTimeFormat` abstract operation from the spec. `intl_CreateDateTimeFormat` calls into the existing `InitializeDateTimeFormat` function to actually initialise the newly created date-time formatter. Differential Revision: https://phabricator.services.mozilla.com/D189539 UltraBlame original commit: c1042546a44b0a4c0bcd37a6f3a6e6c6070a4cff
…DateTimeFormat objects. r=dminor Implements the changes from <tc39/ecma402#709>. The `intl_DateTimeFormat` self-hosted function is replaced with `intl_CreateDateTimeFormat`, which implements the new `CreateDateTimeFormat` abstract operation from the spec. `intl_CreateDateTimeFormat` calls into the existing `InitializeDateTimeFormat` function to actually initialise the newly created date-time formatter. Differential Revision: https://phabricator.services.mozilla.com/D189539 UltraBlame original commit: c1042546a44b0a4c0bcd37a6f3a6e6c6070a4cff
…DateTimeFormat objects. r=dminor Implements the changes from <tc39/ecma402#709>. The `intl_DateTimeFormat` self-hosted function is replaced with `intl_CreateDateTimeFormat`, which implements the new `CreateDateTimeFormat` abstract operation from the spec. `intl_CreateDateTimeFormat` calls into the existing `InitializeDateTimeFormat` function to actually initialise the newly created date-time formatter. Differential Revision: https://phabricator.services.mozilla.com/D189539 UltraBlame original commit: c1042546a44b0a4c0bcd37a6f3a6e6c6070a4cff
The first two commits are purely editorial and only move some things around, so it's easier to review the third commit, which contains the actual change.
Fixes #237
Fixes #706