-
Notifications
You must be signed in to change notification settings - Fork 199
Compute more statuses from BCD, using compute_from as needed #1327
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
Conversation
08f5775 to
eb8608b
Compare
foolip
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Self-review to make this easier to check for others.
features/array-copywithin.yml.dist
Outdated
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2015-09-30 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a change from the previous 2016-09-20, but I think this is the right thing to do for consistency. The other array features matched Array, not TypedArray, if both were part of the feature. See below.
features/array-fill.yml.dist
Outdated
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2015-09-01 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Date and versions matches previous status override.
features/array-find.yml.dist
Outdated
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2015-09-01 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Date and versions matches previous status override.
features/array-iterators.yml.dist
Outdated
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2016-09-20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Date and versions matches previous status override.
features/array-from.yml.dist
Outdated
| baseline: high | ||
| baseline_low_date: 2016-09-20 | ||
| baseline_high_date: 2019-03-20 | ||
| baseline_low_date: 2015-09-30 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Existing dist file, I added compute_from to apply a consistent approach, and it changes the Baseline low date.
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2015-07-29 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unchanged.
| baseline_low_date: 2020-01-15 | ||
| baseline_high_date: 2022-07-15 | ||
| support: | ||
| chrome: "53" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This changed slightly but now matches https://caniuse.com/shadowdomv1. Ditto for Safari below.
| chrome: "45" | ||
| chrome_android: "45" | ||
| edge: "12" | ||
| firefox: "38" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Firefox and Safari versions changed, and Baseline low date too as a result. That seems OK in this case because filter() and friends feel like they're on equal footing with every() and friends that shipped slightly earlier.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validating to see cases where we're not reaching from compute_from. 👍
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2016-09-20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unchanged due to compute_from: javascript.builtins.TypedArray.@@iterator, but notably the description points to entries() and including that would change the status. It would be good to handle this and array-iterators.yml in the same way, however.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description really strongly implies we're treating those things as core to the feature. Either the description needs to change, or we need to bring entries() along for the ride. Feels more honest to do the latter, to change the status rather than reshape the feature.
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2015-07-29 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is unchanged and matches https://caniuse.com/typedarrays except for Safari, where caniuse says that Safari 5.1 didn't support Float64Array. I haven't checked if that's right.
|
@Elchi3 can you review this? There are quite a few per-feature decisions for JavaScript here, and I tried to be consistent. But consistency sometimes leads to weird places. I think it's OK, but am happy to change whatever you think isn't optimal. |
ddbeck
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm OK with pretty much all of this, but leaving unmerged for Florian's review.
| chrome: "45" | ||
| chrome_android: "45" | ||
| edge: "12" | ||
| firefox: "38" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validating to see cases where we're not reaching from compute_from. 👍
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2016-09-20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The description really strongly implies we're treating those things as core to the feature. Either the description needs to change, or we need to bring entries() along for the ride. Feels more honest to do the latter, to change the status rather than reshape the feature.
I checked the JavaScript features and it is great to see values computed from BCD directly. LGTM to remove all the manual overrides. I'm not sure I understand why certain JS features use |
I wanted to apply a consistent rule and at the same time minimize changes, and using I've now pushed another commit dropping all use of |
Elchi3
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I think my rule would be that not using compute_from is the default. If using it, it would be good to provide a reason.
foolip
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've commented on which Baseline low dates have changed now that compute_from isn't used. The noteworthy changes are:
- Array iterators changed from 2016 to 2018 because of Array
values()in Firefox 60. That data came from mdn/browser-compat-data#1014 and seems reliable. - Typed arrays changed from 2015 to 2017. I find this change to be unreasonable because typed arrays are usable without most of the methods. I'll put
compute_fromback.
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2016-09-20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was previously 2015-09-01
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2016-09-20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was previously 2015-09-01
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2018-05-09 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was previously 2016-09-20
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2016-09-20 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was previously 2016-03-21
features/typed-arrays.yml.dist
Outdated
|
|
||
| status: | ||
| baseline: high | ||
| baseline_low_date: 2017-08-08 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was previously 2015-07-29
Can you review again after the typed array change? I think that with how we're authoring most features, #1091 is a good example of this unfolding. It would be good to give some guidance on this in #1330 too. |
I think this works for me. Take my comments as thoughts as I'm learning about
Interesting. I guess for typed arrays the alternative would be to have two groups:
So, I guess your point is that we don't need these two groups but instead just one group with all BCD keys and then
Guidelines when to opt into
Interesting to see compute_from with a single key in that PR. I would have expected all keys except |
@ddbeck and I have discussed this and he was initially also surprised by my minimal approach, but later came around to it. The model I have is that in order to pin a feature to its initial shape, we only need to list the entrypoints and anything additional that is necessary to use the feature at all. Anything that isn't strictly necessary is left out. The effect is the same as listing all of the things that shipped initially, but it's easier to find the right keys without reference to implementation status. Regarding excluding keys instead, that would require a new exclusions every time a feature gains a small additional bit. To me, it seems like more work and much more likely that it will be overlooked in some case, leading to a change in the feature's Baseline low date. |
No description provided.