Closed catamphetamine closed 5 years ago
Just some context we used test262 to be completely spec-compliant which is why node 10+ is needed for formatToParts. Otherwise polyfilling that requires numberformat polyfills as well
@longlho So can I replace Node 10+
in the "Requirements" with Intl.NumberFormat
?
Edit: replaced Node 10+
in the "Requirements" with Intl.NumberFormat
.
@longlho We could also add a "test262" section to the table if you want. I don't know what "test262" is so you'd have to phrase it for us. Reply with "yes" if you want to add anything, otherwise the PR can be merged as-is.
Do you know anything about why the bundle size of one of them is bigger?
@littledan I used unpkg.com
to get the bundle sizes:
https://unpkg.com/intl-relative-time-format@1.0.6/dist/
I guess that the bundle for intl-relative-time-format
is big because Frederik Wessberg @wessberg (the author) didn't include a "core" bundle in the distribution but instead put all locales into the bundle.
It's speculation though, perhaps @wessberg could answer in more details.
@catamphetamine, that is incorrect. No CLDR data is loaded by default. It is, however, a literal implementation of the spec, so that may explain in part the larger size. Also, it contains cross-references to the spec at every line and these comments aren't stripped from the output.
Additionally, it is distributed in ES3-compatible syntax, so that makes it larger. Finally, it isn't minified
@wessberg Ok, then the bundle size is big for some other reason.
@catamphetamine, I would suggest that we instead show sizes with minification since intl-relative-time-format
is distributed without minification and with comments. Would lead to a more balanced comparison. π
@wessberg Oh, so it's not minified. Perhaps you could minify it to measure the resulting core bundle size? Then we could add the correct size to the comparison table.
It's 12.33kb minified with Terser (without compression)
@wessberg Ok, I've pushed the updated bundle size to the PR.
Perfect π
@littledan can provide more details on test262 but itβs the test suite used by spec implementers like v8 & spidermonkey to be fully spec-compliant (although it is subject to cldr version). Thereβre subtle impl differences like you can call Intl.RelativeTimeFormat without βnewβ, or -0 is β0 seconds agoβ vs +0 is βin 0 secondsβ. You can add that as a row as well.
@longlho
Thereβre subtle impl differences like you can call Intl.RelativeTimeFormat without βnewβ.
I guess this one is insignificant so it can be omitted.
or -0 is β0 seconds agoβ vs +0 is βin 0 secondsβ. You can add that as a row as well.
A quote from http://2ality.com/2012/03/signedzero.html :
It is claimed that the inclusion of signed zero in IEEE 754 makes it much easier to achieve numerical accuracy in some critical problems, in particular when computing with complex elementary functions.
I'd argue that -0
vs +0
feature while easy to add is unnecessary for the task of formatting time because both "in 0 seconds" and "0 seconds ago" are actually "right now" and since formatting time is all about the common sense of a common human it shouldn't involve any purely mathematical concepts.
So I'd skip this mentioning "feature" as well.
The comparison table should be kept minimal only showcasing significant differences when using the library so that it doesn't add unnecessary confusion with -0 vs +0
and similar purely technical details a generic library user might not be familiar with (and doesn't need to).
@longlho If you have anything really significant for the end user to add to the PR post your suggestions in the form of the already formulated text. Otherwise the PR can be merged.
Thatβs not correct. If you set numeric to always, what are the output of 0 vs -0 vs +0? Those are just examples, there are others surrounding how the prototype object should look like to be spec-compliant.
The βnewβ keywords affect caching infrastructure semantics (e.g fast-memoize which is super popular only cache function calls).
It is subject to cldr version thou, e.g https://github.com/tc39/test262/pull/2191
@longlho
I see, so basically what you're telling is that there's a test suite called tc39/test262
that contains various test cases for a 100% compliant implementation of Intl.RelativeTimeFormat
.
Ok then, I guess it could be added as a row in the comparison table.
Something like:
Official ECMAScript Conformance Test | empty | empty | checkmark icon
@longlho Would that be it?
Yeah i think so
On Wed, Jun 19, 2019 at 12:46 PM Nikolay notifications@github.com wrote:
@longlho https://github.com/longlho I see, so basically what you're telling is that there's a test suite called tc39/test262 that contains various test cases for a 100% compliant implementation of Intl.RelativeTimeFormat. Ok then, I guess it could be added as a row in the comparison table. Something like:
Official ECMAScript Conformance Test | empty | empty | checkmark icon
@longlho https://github.com/longlho Would that be it?
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/tc39/proposal-intl-relative-time/pull/112?email_source=notifications&email_token=AABQM36J2BVKLJ7ZD3JJSTDP3JPG3A5CNFSM4HZKOGA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYCPCIY#issuecomment-503640355, or mute the thread https://github.com/notifications/unsubscribe-auth/AABQM35KXFI6PZLN4ZJ3HILP3JPG3ANCNFSM4HZKOGAQ .
Updated the PR with the new "Passes the Official ECMAScript Conformance Test" comparison table row.
Also removed the sequential polyfills list in favour of just the comparison table.
If we're going to add the test262 conformance data to the comparison table, I think it needs to link to a source showing the test data results using each polyfill.
@longlho If you have the results of passing the test262
suite then you can provide a link here so that it could be added to the table.
@catamphetamine, yes, that would be valuable, but in order for it to be a proper comparison, we should provide test results for all 3 polyfills including raw data π
No I had to port the tests over to the formatjs repo. Test262-harness rn doesnβt include relativetimeformat
On Wed, Jun 19, 2019 at 1:27 PM Frederik Wessberg notifications@github.com wrote:
@catamphetamine https://github.com/catamphetamine, yes, that would be valuable, but in order for it to be a proper comparison, we should provide test results for all 3 polyfills including raw data π
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/tc39/proposal-intl-relative-time/pull/112?email_source=notifications&email_token=AABQM35RLVJUS5CMVZKN663P3JUB3A5CNFSM4HZKOGA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYCSVLQ#issuecomment-503655086, or mute the thread https://github.com/notifications/unsubscribe-auth/AABQM35UHWUWBUQCMKUTK6LP3JUB3ANCNFSM4HZKOGAQ .
In all fairness, and just to reiterate, I strongly suggest we either provide raw data based on the same test suite for all 3 polyfills, or leave the spec conformance data out entirely from the table.
@wessberg Oooh, I see what you mean, an ultimate test results comparison table. Well, I guess it could be implemented as some generic "test suite" that would import each polyfill and perform the tests. Something like this:
import polyfill1 from '...'
import polyfill2 from '...'
import polyfill3 from '...'
const RTF1 = polyfill1
const RTF2 = polyfill2
const RTF3 = polyfill3
function test(RTF) {
// Perform the tests, generate the summary output.
}
test(RTF1)
test(RTF2)
test(RTF3)
@longlho Since you're already familiar with this thing and have made it running can you write the ultimate comparison script?
Otherwise it wouldn't be too fair to all the participants, I agree.
I'll remove the Test262
row from the comparison table for now.
I don't mind either way but won't have to time make the test suite work across implementations.
@longlho Or maybe you could publish a repo with the test runner and then each of the polyfill authors could fork that repo to run the tests against their library, so that it would be like a "standard" test suite for any Intl.RelativeTimeFormat
polyfill.
@littledan I guess the Test262
thing is gonna take some time due to the complexity of the whole thing, don't want to rush @longlho on this. Feel free to merge this PR as-is at any time if you feel like it: we can always create another one in the future when we have Test262
suite properly set up and running.
I'm going to wait on merging this PR until the authors of the referenced polyfills are happy with it.
I see, it won't be merged then. Too little cooperation. No one's happy with the previous PR that caused the confusion to begin with.
Thatβs subjective
On Sat, Jun 22, 2019 at 6:14 AM Nikolay notifications@github.com wrote:
I see, it won't be merged then. Too little cooperation. No one's happy with the previous PR https://github.com/tc39/proposal-intl-relative-time/pull/110 that caused the confusion to begin with.
β You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/tc39/proposal-intl-relative-time/pull/112?email_source=notifications&email_token=AABQM32VDJD3GRZKIZBWPRLP3X3P3A5CNFSM4HZKOGA2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYKGCXY#issuecomment-504652127, or mute the thread https://github.com/notifications/unsubscribe-auth/AABQM34VA54WRVQD7TGGDYDP3X3P3ANCNFSM4HZKOGAQ .
@formatjs/intl-relativetimeformat: Running "test262-harness --reporter-keys file,attrs,result -t 3 --prelude ./dist/polyfill-with-locales.js -r json /home/longlho/formatjs/test262/test/intl402/RelativeTimeFormat/**/*.js"
@formatjs/intl-relativetimeformat: β Checks the "length" property of the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks the "length" property of the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "name" property of the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks the "name" property of the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β "RelativeTimeFormat" property of Intl.
@formatjs/intl-relativetimeformat: β "RelativeTimeFormat" property of Intl.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β The prototype of the Intl.RelativeTimeFormat constructor is %FunctionPrototype%.
@formatjs/intl-relativetimeformat: β Intl.RelativeTimeFormat instance object extensibility
@formatjs/intl-relativetimeformat: β The prototype of the Intl.RelativeTimeFormat constructor is %FunctionPrototype%. (Strict Mode)
@formatjs/intl-relativetimeformat: β Intl.RelativeTimeFormat instance object extensibility
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Intl.RelativeTimeFormat instance object is created from %RelativeTimeFormatPrototype%.
@formatjs/intl-relativetimeformat: β Intl.RelativeTimeFormat instance object is created from %RelativeTimeFormatPrototype%.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "prototype" property of the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks error cases for the locales argument to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks the "prototype" property of the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks error cases for the locales argument to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks various cases for the locales argument to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks various cases for the locales argument to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Verifies the NewTarget check for Intl.RelativeTimeFormat.
@formatjs/intl-relativetimeformat: β Verifies the NewTarget check for Intl.RelativeTimeFormat.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of a null options argument to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks handling of a null options argument to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of invalid value for the localeMatcher option to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of invalid value for the localeMatcher option to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks handling of invalid value for the numeric option to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks handling of valid values for the numeric option to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks handling of invalid value for the numeric option to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the order of operations on the options argument to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks the order of operations on the options argument to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of valid values for the numeric option to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks that the RelativeTimeFormat constructor does not cause the
@formatjs/intl-relativetimeformat: NumberFormat and PluralRules constructors to get properties off
@formatjs/intl-relativetimeformat: Object.prototype through the options objects it creates.
@formatjs/intl-relativetimeformat: β Checks handling of invalid value for the style option to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks that the RelativeTimeFormat constructor does not cause the
@formatjs/intl-relativetimeformat: NumberFormat and PluralRules constructors to get properties off
@formatjs/intl-relativetimeformat: Object.prototype through the options objects it creates.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of invalid value for the style option to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of valid values for the style option to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of valid values for the style option to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks the propagation of exceptions from the options for the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks handling of non-object option arguments to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks the propagation of exceptions from the options for the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of non-object option arguments to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of non-object option arguments to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks handling of non-object option arguments to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of non-object option arguments to the RelativeTimeFormat constructor.
@formatjs/intl-relativetimeformat: β Checks that RelativeTimeFormat can be subclassed.
@formatjs/intl-relativetimeformat: β Checks handling of non-object option arguments to the RelativeTimeFormat constructor. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks that RelativeTimeFormat can be subclassed. (Strict Mode)
@formatjs/intl-relativetimeformat: β Tests that Intl.RelativeTimeFormat has a supportedLocalesOf property, and it works as planned.
@formatjs/intl-relativetimeformat: β Tests that Intl.RelativeTimeFormat has a supportedLocalesOf property, and it works as planned.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Verifies there's no branding check for Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: β Verifies there's no branding check for Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks error cases for the locales argument to the supportedLocalesOf function. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks error cases for the locales argument to the supportedLocalesOf function.
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of invalid values for the localeMatcher option to the supportedLocalesOf function.
@formatjs/intl-relativetimeformat: β Checks handling of invalid values for the localeMatcher option to the supportedLocalesOf function. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of a null options argument to the supportedLocalesOf function. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of a null options argument to the supportedLocalesOf function.
@formatjs/intl-relativetimeformat: β Checks handling of non-object options arguments to the supportedLocalesOf function.
@formatjs/intl-relativetimeformat: β Checks handling of an undefined options argument to the supportedLocalesOf function.
@formatjs/intl-relativetimeformat: β Checks handling of non-object options arguments to the supportedLocalesOf function. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "supportedLocalesOf" property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks handling of an undefined options argument to the supportedLocalesOf function. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "supportedLocalesOf" property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Verifies the type of the return value of Intl.RelativeTimeFormat.supportedLocalesOf().
@formatjs/intl-relativetimeformat: β Verifies the type of the return value of Intl.RelativeTimeFormat.supportedLocalesOf(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "constructor" property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Checks the "constructor" property of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Verifies the branding check for the "format" function of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Verifies the branding check for the "format" function of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English.
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "format" property of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "format" property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Verifies the branding check for the "formatToParts" function of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Verifies the branding check for the "formatToParts" function of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English.
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
@formatjs/intl-relativetimeformat: β Checks the "formatToParts" property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Checks the "formatToParts" property of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format().
@formatjs/intl-relativetimeformat: β Verifies the branding check for the "resolvedOptions" function of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Verifies the branding check for the "resolvedOptions" function of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Verifies that the return value of Intl.RelativeTimeFormat.prototype.resolvedOptions() is not cached.
@formatjs/intl-relativetimeformat: β Verifies that the return value of Intl.RelativeTimeFormat.prototype.resolvedOptions() is not cached. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.prototype.resolvedOptions(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "length" property of Intl.RelativeTimeFormat.prototype.resolvedOptions().
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.prototype.resolvedOptions().
@formatjs/intl-relativetimeformat: β Verifies the property order for the object returned by resolvedOptions().
@formatjs/intl-relativetimeformat: β Checks the "name" property of Intl.RelativeTimeFormat.prototype.resolvedOptions(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Verifies the property order for the object returned by resolvedOptions(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "resolvedOptions" property of the RelativeTimeFormat prototype object. (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the "resolvedOptions" property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Checks the properties of the result of Intl.RelativeTimeFormat.prototype.resolvedOptions().
@formatjs/intl-relativetimeformat: β Checks Object.prototype.toString with Intl.RelativeTimeFormat objects.
@formatjs/intl-relativetimeformat: β Checks the properties of the result of Intl.RelativeTimeFormat.prototype.resolvedOptions(). (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks Object.prototype.toString with Intl.RelativeTimeFormat objects.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: β Checks the @@toStringTag property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: β Checks the @@toStringTag property of the RelativeTimeFormat prototype object.
@formatjs/intl-relativetimeformat: (Strict Mode)
@formatjs/intl-relativetimeformat: Tests: 150 passed, 150 total
You guys can follow something similar to this PR https://github.com/eemeli/intl-pluralrules/pull/9
Iβve integrated the test262-harness
submodule with intl-relative-time-format
and hereβs the test results: (150/150 passing tests):
Running "test262-harness --hostArgs "--icu-data-dir=node_modules/full-icu" --reporter-keys file,attrs,result -t 8 --prelude ./test262-polyfill.js -r json test262/test/intl402/RelativeTimeFormat/**/*.*"
β Checks the "length" property of the RelativeTimeFormat constructor.
β The prototype of the Intl.RelativeTimeFormat constructor is %FunctionPrototype%. (Strict Mode)
β "RelativeTimeFormat" property of Intl.
(Strict Mode)
β The prototype of the Intl.RelativeTimeFormat constructor is %FunctionPrototype%.
β "RelativeTimeFormat" property of Intl.
β Checks the "name" property of the RelativeTimeFormat constructor.
β Checks the "name" property of the RelativeTimeFormat constructor.
(Strict Mode)
β Checks the "length" property of the RelativeTimeFormat constructor.
(Strict Mode)
β Checks the "prototype" property of the RelativeTimeFormat constructor.
β Intl.RelativeTimeFormat instance object extensibility
(Strict Mode)
β Intl.RelativeTimeFormat instance object is created from %RelativeTimeFormatPrototype%.
β Checks error cases for the locales argument to the RelativeTimeFormat constructor. (Strict Mode)
β Intl.RelativeTimeFormat instance object extensibility
β Checks error cases for the locales argument to the RelativeTimeFormat constructor.
β Checks the "prototype" property of the RelativeTimeFormat constructor.
(Strict Mode)
β Intl.RelativeTimeFormat instance object is created from %RelativeTimeFormatPrototype%.
(Strict Mode)
β Verifies the NewTarget check for Intl.RelativeTimeFormat.
(Strict Mode)
β Checks handling of a null options argument to the RelativeTimeFormat constructor. (Strict Mode)
β Verifies the NewTarget check for Intl.RelativeTimeFormat.
β Checks handling of a null options argument to the RelativeTimeFormat constructor.
β Checks handling of invalid value for the localeMatcher option to the RelativeTimeFormat constructor. (Strict Mode)
β Checks various cases for the locales argument to the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of invalid value for the localeMatcher option to the RelativeTimeFormat constructor.
β Checks various cases for the locales argument to the RelativeTimeFormat constructor.
β Checks handling of invalid value for the numeric option to the RelativeTimeFormat constructor.
β Checks handling of valid values for the numeric option to the RelativeTimeFormat constructor.
β Checks handling of valid values for the numeric option to the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of invalid value for the numeric option to the RelativeTimeFormat constructor. (Strict Mode)
β Checks that the RelativeTimeFormat constructor does not cause the
NumberFormat and PluralRules constructors to get properties off
Object.prototype through the options objects it creates.
(Strict Mode)
β Checks that the RelativeTimeFormat constructor does not cause the
NumberFormat and PluralRules constructors to get properties off
Object.prototype through the options objects it creates.
β Checks the order of operations on the options argument to the RelativeTimeFormat constructor. (Strict Mode)
β Checks the order of operations on the options argument to the RelativeTimeFormat constructor.
β Checks handling of invalid value for the style option to the RelativeTimeFormat constructor.
β Checks the propagation of exceptions from the options for the RelativeTimeFormat constructor.
β Checks the propagation of exceptions from the options for the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of invalid value for the style option to the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of non-object option arguments to the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of non-object option arguments to the RelativeTimeFormat constructor.
β Checks handling of valid values for the style option to the RelativeTimeFormat constructor.
β Checks handling of valid values for the style option to the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of non-object option arguments to the RelativeTimeFormat constructor.
β Checks handling of non-object option arguments to the RelativeTimeFormat constructor. (Strict Mode)
β Tests that Intl.RelativeTimeFormat has a supportedLocalesOf property, and it works as planned.
β Tests that Intl.RelativeTimeFormat has a supportedLocalesOf property, and it works as planned.
(Strict Mode)
β Checks that RelativeTimeFormat can be subclassed.
β Checks that RelativeTimeFormat can be subclassed. (Strict Mode)
β Checks handling of non-object option arguments to the RelativeTimeFormat constructor. (Strict Mode)
β Checks handling of non-object option arguments to the RelativeTimeFormat constructor.
β Verifies there's no branding check for Intl.RelativeTimeFormat.supportedLocalesOf().
(Strict Mode)
β Verifies there's no branding check for Intl.RelativeTimeFormat.supportedLocalesOf().
β Checks error cases for the locales argument to the supportedLocalesOf function. (Strict Mode)
β Checks the "name" property of Intl.RelativeTimeFormat.supportedLocalesOf().
β Checks error cases for the locales argument to the supportedLocalesOf function.
β Checks the "name" property of Intl.RelativeTimeFormat.supportedLocalesOf().
(Strict Mode)
β Checks the "length" property of Intl.RelativeTimeFormat.supportedLocalesOf().
β Checks the "length" property of Intl.RelativeTimeFormat.supportedLocalesOf().
(Strict Mode)
β Checks handling of invalid values for the localeMatcher option to the supportedLocalesOf function. (Strict Mode)
β Checks handling of invalid values for the localeMatcher option to the supportedLocalesOf function.
β Checks handling of an undefined options argument to the supportedLocalesOf function. (Strict Mode)
β Checks handling of an undefined options argument to the supportedLocalesOf function.
β Checks handling of non-object options arguments to the supportedLocalesOf function. (Strict Mode)
β Checks handling of non-object options arguments to the supportedLocalesOf function.
β Checks handling of a null options argument to the supportedLocalesOf function. (Strict Mode)
β Checks handling of a null options argument to the supportedLocalesOf function.
β Checks the "supportedLocalesOf" property of the RelativeTimeFormat prototype object.
(Strict Mode)
β Verifies the type of the return value of Intl.RelativeTimeFormat.supportedLocalesOf(). (Strict Mode)
β Checks the "constructor" property of the RelativeTimeFormat prototype object.
β Checks the "supportedLocalesOf" property of the RelativeTimeFormat prototype object.
β Verifies the branding check for the "format" function of the RelativeTimeFormat prototype object. (Strict Mode)
β Verifies the branding check for the "format" function of the RelativeTimeFormat prototype object.
β Checks the "constructor" property of the RelativeTimeFormat prototype object. (Strict Mode)
β Verifies the type of the return value of Intl.RelativeTimeFormat.supportedLocalesOf().
β Checks the "length" property of Intl.RelativeTimeFormat.prototype.format().
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English. (Strict Mode)
β Checks the "length" property of Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in English.
β Checks the "name" property of Intl.RelativeTimeFormat.prototype.format().
β Checks the "name" property of Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
β Checks the "format" property of the RelativeTimeFormat prototype object.
β Checks the "format" property of the RelativeTimeFormat prototype object. (Strict Mode)
β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.format().
β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format().
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.format().
β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format().
β Verifies the branding check for the "formatToParts" function of the RelativeTimeFormat prototype object.
β Verifies the branding check for the "formatToParts" function of the RelativeTimeFormat prototype object. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English.
β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format().
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English. (Strict Mode)
β Checks the "length" property of Intl.RelativeTimeFormat.prototype.formatToParts().
β Checks the "name" property of Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Checks the "length" property of Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Checks the "name" property of Intl.RelativeTimeFormat.prototype.formatToParts().
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.formatToParts() in English. (Strict Mode)
β Checks the "formatToParts" property of the RelativeTimeFormat prototype object.
β Checks the "formatToParts" property of the RelativeTimeFormat prototype object. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish. (Strict Mode)
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
β Checks the behavior of Intl.RelativeTimeFormat.prototype.format() in Polish.
β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
β Checks the handling of plural unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Checks the handling of invalid unit arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts().
β Verifies the branding check for the "resolvedOptions" function of the RelativeTimeFormat prototype object.
β Checks the "length" property of Intl.RelativeTimeFormat.prototype.resolvedOptions().
β Checks the handling of invalid value arguments to Intl.RelativeTimeFormat.prototype.formatToParts(). (Strict Mode)
β Verifies the branding check for the "resolvedOptions" function of the RelativeTimeFormat prototype object. (Strict Mode)
β Verifies that the return value of Intl.RelativeTimeFormat.prototype.resolvedOptions() is not cached. (Strict Mode)
β Verifies that the return value of Intl.RelativeTimeFormat.prototype.resolvedOptions() is not cached.
β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format().
β Checks the handling of non-number value arguments to Intl.RelativeTimeFormat.prototype.format(). (Strict Mode)
β Checks the "length" property of Intl.RelativeTimeFormat.prototype.resolvedOptions(). (Strict Mode)
β Checks the "name" property of Intl.RelativeTimeFormat.prototype.resolvedOptions().
β Checks the "name" property of Intl.RelativeTimeFormat.prototype.resolvedOptions(). (Strict Mode)
β Checks the properties of the result of Intl.RelativeTimeFormat.prototype.resolvedOptions().
β Verifies the property order for the object returned by resolvedOptions(). (Strict Mode)
β Verifies the property order for the object returned by resolvedOptions().
β Checks the "resolvedOptions" property of the RelativeTimeFormat prototype object. (Strict Mode)
β Checks the "resolvedOptions" property of the RelativeTimeFormat prototype object.
β Checks the @@toStringTag property of the RelativeTimeFormat prototype object.
β Checks the @@toStringTag property of the RelativeTimeFormat prototype object.
(Strict Mode)
β Checks Object.prototype.toString with Intl.RelativeTimeFormat objects.
β Checks Object.prototype.toString with Intl.RelativeTimeFormat objects.
(Strict Mode)
β Checks the properties of the result of Intl.RelativeTimeFormat.prototype.resolvedOptions(). (Strict Mode)
Tests: 150 passed, 150 total
@longlho @wessberg I see, so I'm the last one... I guess I'll pass on implementing all of the 150 test cases, about 100 is fine for me. I've updated the table to reflect the Test262 passage status. I've also moved my library to the right side after yours because it chose to not implement the full list of the test cases. See if you're ok with the results.
u can actually replace the size w/ badge since it's live:
Otherwise, LGTM
LGTM
@longlho I see, so it downloads a package, runs npm install
, passes ${packagePath}/index.js
to webpack and returns the bundle size after gzipSync()
.
https://github.com/pastelsky/package-build-stats/blob/master/src/getPackageStats.js
The images you have provided have non-human-readable URLs so it's unclear whether they're stale or do they refresh themselves. I found another service for that called "bundlephobia" which seems to calculate the sizes dynamically. I've added these badges to the table instead of the actual sizes. @longlho See if it works. https://github.com/catamphetamine/proposal-intl-relative-time/blob/patch-1/README.md#polyfills
the badges I listed were bundlephobia so that works :)
@littledan Alright, looks like we finally made it.
OK, sounds like the authors all agree on this comparison table, so I'm merging it. Please let me know if there are issues remaining.
Closes #111