Great catch goes to han.guokai@ which filed the original issue. :)

By the way, all of the pull requests were merged, so mostly accidentally
old code would be broken at this point (unless new cases were added since
then :().

I will work on the change list again soon.

☆*PhistucK*


On Thu, Sep 6, 2018 at 8:00 PM Daniel Ehrenberg <little...@chromium.org>
wrote:

> I'm comfortable with this change as well. A relatively new API like this,
> which is implemented compliantly in another browser, seems likely to have
> relatively low compatibility risk. It will still be some time until these
> new Intl features gain uptake to replace JS libraries like Globalize that
> serve the same purpose. Great catch, PhistucK, and thanks for following up
> so thoroughly in this report.
>
> Dan
>
> On Tue, Aug 28, 2018 at 7:25 PM Adam Klein <ad...@chromium.org> wrote:
>
>> Thanks, Jungshik. Based on this feedback I'm comfortable with making this
>> change without adding a usecounter.
>>
>> On Fri, Aug 24, 2018 at 11:23 PM <js...@chromium.org> wrote:
>>
>>> Sorry for the delay as well as for the stupid typo I made in
>>> 'dayPeriod'. I've been ooo for a while and catching up with emails.
>>>
>>> On Tuesday, August 7, 2018 at 9:36:37 PM UTC-7, PhistucK wrote:
>>>>
>>>> Comments inline.
>>>>
>>>> ☆*PhistucK*
>>>>
>>>>
>>>> On Wed, Aug 8, 2018 at 3:29 AM Adam Klein <ad...@chromium.org> wrote:
>>>>
>>>>> Apologies for the delay, this got hidden from me due to some gmail
>>>>> filtering issues...comments inline.
>>>>>
>>>>> On Thu, Jul 26, 2018 at 2:14 PM PhistucK <phist...@gmail.com> wrote:
>>>>>
>>>>>> I misremembered formatToParts as a relatively recent feature, but
>>>>>> now I see that the intent I remembered was actually discussing
>>>>>> NumberFormat. DateTimeFormat did not seem to have an intent on
>>>>>> blink-dev (but I see that it did on v8-users).
>>>>>> https://www.chromestatus.com/features/6319456309477376 says it is
>>>>>> still behind a flag... Is the MDN article
>>>>>> <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts>
>>>>>> correct in stating that it was supported in Chrome 57 (and confusingly,
>>>>>> also behind the flag until Chrome 60)?
>>>>>>
>>>>>
>>>>> Indeed, Chrome 57 looks like the right release (from looking through
>>>>> v8 commits). I've updated that on chromestatus. That is indeed awhile ago.
>>>>>
>>>>
>>>> Thank you.
>>>>
>>>
>>> Yeah. Chrome 57 contained it behind a flag and Chrome 60 began to have
>>> it by default.
>>>
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>> Shameless plug - probably a good opportunity to add it to my filtered
>>>>>> feed scraper and to my RSS reader -
>>>>>>
>>>>>> https://frequentfeedscraper.appspot.com/read?feed=v8users&title_filter=exact:intent
>>>>>>
>>>>>> Nevertheless, my intuition (more like a hunch, though) is that this
>>>>>> specific field is relatively little used, but I may be wrong (the fact 
>>>>>> that
>>>>>> my locale does not use it probably makes me biased).
>>>>>> From seeing all of the polyfills (which already use the standard
>>>>>> casing) on GitHub (the search yielded a lot of those), I presumed they 
>>>>>> are
>>>>>> also used by projects, which might mean those projects probably tested
>>>>>> their polyfilled implementation as well on Internet Explorer 11 or Safari
>>>>>> pre-11, so they would have probably seen the casing issue if they did
>>>>>> something with that particular field (Salesforce worked around it, for
>>>>>> example).
>>>>>> However, there is probably a lot of code that is Chrome only (:(),
>>>>>> so...
>>>>>>
>>>>>
>>>>> Again, it'd be great to get Jungshik's input on this, since he was the
>>>>> one who implemented it.
>>>>>
>>>>
>>>> I agree, it would be great if you pinged Jungshik on Hangouts or
>>>> something and ask Jungshik to follow this thread...
>>>>
>>>
>>> There'd be no worry at all if there were NO Chrome-only-implementation.
>>>  My wild speculation (with no material basis to support)  is that those who
>>> write Chrome-only code is less likely to be aware of and to utilize
>>> EcmaScript Intl API. Alternatively, my hunch is that  those who use Intl
>>> API  (especially this relatively new API) are pretty likely to care about
>>> cross-browser compatibility and work around v8's typo (my typo) in this
>>> field.
>>>
>>> formatToParts API is mainly for controlling the style of individual
>>> parts separately. If the case of 'dayPeriod' is fixed in v8 and does not
>>> match Chrome-only-code's 'dayperiod' any more, locales using dayPeriod
>>> (AM/PM marker) would have a wrong style (font size, color, etc) in Chrome
>>> ToT, but the information will be still there.
>>>
>>> Given the above and the fact that a work-around (use case-insensitive
>>> match or check for both case-variants) is simple,  I'd say we go ahead with
>>> this change.  Adding a counter to measure the usage seems to be a bit too
>>> much.
>>>
>>> Jungshik
>>>
>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>> Is there an option to add a use counter to V8?
>>>>>> Is there an existing use counter for formatToParts altogether that I
>>>>>> may have missed (or maybe it is internal)?
>>>>>>
>>>>>
>>>>> It is possible to add use counters to V8. They need to be plumbed
>>>>> through the API, and then manually updated from V8, so it's more work to
>>>>> add than it is in Blink, but it's doable. Would you be interested in 
>>>>> adding
>>>>> such a counter?
>>>>>
>>>>
>>>> It is probably much more than I bargained for (especially the delay
>>>> until we get results and usage can increase by the day). ;) But if you have
>>>> a change list I can follow for guidance, I might just do that (barring a
>>>> positive response from Jungshik).
>>>>
>>>>
>>>>
>>>>>
>>>>>
>>>>>> Also, Node does not have to use V8 anymore, just saying. ;)
>>>>>>
>>>>>> ☆*PhistucK*
>>>>>>
>>>>>>
>>>>>> On Thu, Jul 26, 2018 at 7:59 PM Adam Klein <ad...@chromium.org>
>>>>>> wrote:
>>>>>>
>>>>>>> +Jungshik and Dan, who I believe worked on this feature in V8
>>>>>>> originally. I'm curious if they know how it happened that this ended up
>>>>>>> with the wrong capitalization.
>>>>>>>
>>>>>>> I appreciate the outreach you've done to fix uses in the wild, but
>>>>>>> it still scares me a little bit to make such a hard-breaking change,
>>>>>>> especially for V8-only environments like Node. So I'd also like to get 
>>>>>>> some
>>>>>>> of your (or Jungshik or Dan's) intuition about how often this particular
>>>>>>> field is accessed.
>>>>>>>
>>>>>>> On Fri, Jul 20, 2018 at 8:56 AM PhistucK <phist...@gmail.com> wrote:
>>>>>>>
>>>>>>>> (Probably an overkill, but here it goes)
>>>>>>>>
>>>>>>>>
>>>>>>>> Contact emails
>>>>>>>>
>>>>>>>> phist...@gmail.com
>>>>>>>>
>>>>>>>> Explainer
>>>>>>>>
>>>>>>>> No explainer, a specification exists already.
>>>>>>>>
>>>>>>>> Spec
>>>>>>>> https://tc39.github.io/ecma402/#sec-partitiondatetimepattern
>>>>>>>>
>>>>>>>> Summary
>>>>>>>>
>>>>>>>> This change corrects a non-compliant type value in the
>>>>>>>> formatToParts implementation.
>>>>>>>>
>>>>>>>>
>>>>>>>> > new Intl.DateTimeFormat("en-us", {hour12: true, hour:
>>>>>>>> "numeric"}).formatToParts()
>>>>>>>>
>>>>>>>> [{"type": "hour", "value": "6"}, {"type": "literal", "value": " "},
>>>>>>>> {"type": "day*p*eriod", "value": "PM"}]
>>>>>>>>
>>>>>>>>
>>>>>>>> Will change to -
>>>>>>>>
>>>>>>>> [{"type": "hour", "value": "6"}, {"type": "literal", "value": " "},
>>>>>>>> {"type": "day*P*eriod", "value": "PM"}]
>>>>>>>>
>>>>>>>>
>>>>>>>> Motivation
>>>>>>>>
>>>>>>>> Compliance with the standards and other browsers and likely most of
>>>>>>>> the code that is already out there.
>>>>>>>>
>>>>>>>>
>>>>>>>> Risks
>>>>>>>>
>>>>>>>> Interoperability and Compatibility
>>>>>>>>
>>>>>>>> Compatibility risk - small to medium at worst.
>>>>>>>>
>>>>>>>>
>>>>>>>> Searched GitHub (not exhaustive, but some indication) for dayperiod
>>>>>>>>  instances -
>>>>>>>>
>>>>>>>> https://github.com/search?l=&p=1&q=formatToParts+dayperiod+language%3AJavaScript&type=Code
>>>>>>>>
>>>>>>>> The vast majority are polyfills that use dayPeriod already, or
>>>>>>>> code that uses type.toLowerCase() to bridge over the differences.
>>>>>>>>
>>>>>>>>
>>>>>>>> Sent pull requests to the few cases that were plain wrong -
>>>>>>>> https://github.com/sensu/sensu-go/pull/1852
>>>>>>>> https://github.com/brave/browser-laptop/pull/14790
>>>>>>>> https://github.com/ray007/js-misc/pull/1
>>>>>>>> https://github.com/OriginalNexus/venture/pull/1
>>>>>>>> https://github.com/ua9msn/datetime/pull/9
>>>>>>>>
>>>>>>>>
>>>>>>>> Interoperability risk - none.
>>>>>>>>
>>>>>>>>
>>>>>>>> Edge: No signals
>>>>>>>>
>>>>>>>> Firefox: Shipped
>>>>>>>>
>>>>>>>> Safari: Shipped
>>>>>>>>
>>>>>>>> Web developers: No signals.
>>>>>>>>
>>>>>>>>
>>>>>>>> Alternatives for web developers
>>>>>>>>
>>>>>>>> Either check for type === "dayPeriod" || type === "dayperiod", or 
>>>>>>>> type.toLowerCase()
>>>>>>>> === "dayperiod".
>>>>>>>>
>>>>>>>> Ergonomics
>>>>>>>>
>>>>>>>> Irrelevant.
>>>>>>>>
>>>>>>>> Activation
>>>>>>>>
>>>>>>>> Irrelevant.
>>>>>>>>
>>>>>>>> Debuggability
>>>>>>>>
>>>>>>>> Already debuggable.
>>>>>>>>
>>>>>>>>
>>>>>>>> Will this feature be supported on all six Blink platforms (Windows,
>>>>>>>> Mac, Linux, Chrome OS, Android, and Android WebView)?
>>>>>>>>
>>>>>>>> Yes.
>>>>>>>>
>>>>>>>> Is this feature fully tested by web-platform-tests
>>>>>>>> <https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md>
>>>>>>>> ?
>>>>>>>>
>>>>>>>> Nope, but it is tested by test262, though not this case (which is
>>>>>>>> apparently why the interoperability issue exists).
>>>>>>>>
>>>>>>>> *I submitted a test262 pull request to maintain interoperability -*
>>>>>>>> *https://github.com/tc39/test262/pull/1645
>>>>>>>> <https://github.com/tc39/test262/pull/1645>*
>>>>>>>>
>>>>>>>>
>>>>>>>> Bug and proposed change list -
>>>>>>>>
>>>>>>>> https://crbug.com/865351
>>>>>>>>
>>>>>>>> https://chromium-review.googlesource.com/c/v8/v8/+/1145304
>>>>>>>>
>>>>>>>>
>>>>>>>> Link to entry on the feature dashboard
>>>>>>>> <https://www.chromestatus.com/>
>>>>>>>> https://www.chromestatus.com/features/5252265900244992
>>>>>>>>
>>>>>>>> Requesting approval to ship?
>>>>>>>>
>>>>>>>> Yes. I think so. Do you think a deprecation period is warranted?
>>>>>>>> There is no (public?) use counter for formatToParts.
>>>>>>>>
>>>>>>>>
>>>>>>>> ☆*PhistucK*
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "blink-dev" group.
>>>>>>>> To view this discussion on the web visit
>>>>>>>> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABc02_%2B1xEoNvCtuc4ocTw%3DtLmfHmT-z-cFTuiE6YS9Q_MdPqg%40mail.gmail.com
>>>>>>>> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABc02_%2B1xEoNvCtuc4ocTw%3DtLmfHmT-z-cFTuiE6YS9Q_MdPqg%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>>>>>>> .
>>>>>>>>
>>>>>>> --
> You received this message because you are subscribed to the Google Groups
> "blink-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to blink-dev+unsubscr...@chromium.org.
> To view this discussion on the web visit
> https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKtSNYN28nuD1N1VBCjhae3Dvd9mB%3D--ah9%3DnESzg%3Dju6J%3DfEA%40mail.gmail.com
> <https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAKtSNYN28nuD1N1VBCjhae3Dvd9mB%3D--ah9%3DnESzg%3Dju6J%3DfEA%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to