Skip to content
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

Complete nodejs data for RegExp #6618

Merged
merged 2 commits into from
Nov 6, 2020
Merged

Complete nodejs data for RegExp #6618

merged 2 commits into from
Nov 6, 2020

Conversation

gilmoreorless
Copy link
Contributor

Part of #6249. This fills in all the true and null values for Node in RegExp.

Most of the entries were supported in the first version of Node, because they were also in Chrome v1. For the ones that remained I checked the data against Chrome/V8 releases and https://node.green, as well as some manual testing.

There was one oddity I noticed in the browser data though, for javascript.builtins.RegExp.source.empty_regex_string. This was only added to V8 in version 3.10.6 (release notes), which means Node 0.8.0 (backed up by manual testing). This equates to Chrome 20 (according to Wikipedia, anyway), but the data currently lists Chrome 6 for that entry. I've left the Chrome entry alone here, but it might be worth a separate PR.

@github-actions github-actions bot added data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. data:js 📟 Compat data for JS/ECMAScript features. https://developer.mozilla.org/docs/Web/JavaScript labels Aug 31, 2020
@queengooborg
Copy link
Collaborator

Hey @gilmoreorless, thanks for tackling this! Regarding the Node.js browser data, I'm thinking that it may make sense to change 0.9.1 to 0.8.0, since they're both the same V8 version (confirmed on https://nodejs.org/en/download/releases/). It may be better to follow it up in another PR -- I'm going to do some more digging if there were some notable changes between the two versions.

@queengooborg queengooborg self-requested a review August 31, 2020 18:20
@gilmoreorless
Copy link
Contributor Author

I agree with consolidating versions, but I had a memory that 0.9.1 was added specifically for a non-V8-related feature.
Digging around found #3160. The setImmediate and clearImmediate methods were added in Node 0.9.1, as listed in the API docs: https://nodejs.org/api/timers.html#timers_setimmediate_callback_args

I also have an annoyance with 0.1.100 being the first version listed in the BCD files. I believe it's because console.log was added in that version (ref), but many features were in Node from earlier than that. It mostly annoys me just because of how it displays on MDN ;)
image

@ddbeck
Copy link
Collaborator

ddbeck commented Sep 2, 2020

I also have an annoyance with 0.1.100 being the first version listed in the BCD files. I believe it's because console.log was added in that version (ref), but many features were in Node from earlier than that. It mostly annoys me just because of how it displays on MDN ;)

This is a fair point, @gilmoreorless. I've only though about it for a minute here, but it seems like permitting ≤0.1.00 to cover such cases would be appropriate. If you want to work on fixing this, I'd invite you to open an issue on the topic and we can plan it out. 😃

@ddbeck ddbeck added this to Data changes (routine) in Prioritization review Sep 4, 2020
@queengooborg queengooborg removed their request for review September 22, 2020 01:21
@ddbeck
Copy link
Collaborator

ddbeck commented Sep 29, 2020

Hi @gilmoreorless, I'm sorry this seems to have fallen through the cracks. Do you know if any of the data here is affected by the distinction between ≤0.1.100 / 0.1.100? If that's a blocker for this data, then I'm happy to help work on that problem. If none of these features predated 0.1.100, then we can move toward merging instead. Thank you!

@gilmoreorless
Copy link
Contributor Author

@ddbeck Don't worry, it slipped off my radar too! I've raised #6861 to cover the discussion about the minimum version.

For this PR, all the RegExp features that are listed as 0.1.100 were in the very first version of Node, as they were also in Chrome version 1. However, I don't think this PR should be blocked on the minimum version decision, as plenty of other data files are going to have to be updated anyway.

@ddbeck ddbeck self-requested a review October 9, 2020 10:43
Copy link
Collaborator

@ddbeck ddbeck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your incredible patience on this, @gilmoreorless. I have one suggestion on a comment. Otherwise, this looks great.

(Expect an answer on the Node.js version question soon!)

@@ -1765,7 +1765,8 @@
"version_added": false
},
"nodejs": {
"version_added": true
"version_added": "6.0.0",
"notes": "Case folding is implemented in version 8.6.0"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we reframe this a little, to front-load the fact that it's a historic deficiency?

Suggested change
"notes": "Case folding is implemented in version 8.6.0"
"notes": "Before 8.6.0, case folding is not supported."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion. I think I chose that wording to be consistent with the existing note for edge a few lines above. I'm happy to change it, but probably both notes should be changed together for consistency.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I missed that. Yeah, let's do that in a separate PR. I'll approve and merge this now. Thank you! 🎉

Copy link
Collaborator

@ddbeck ddbeck left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@ddbeck ddbeck merged commit f5a74cf into mdn:master Nov 6, 2020
Prioritization review automation moved this from Data changes (routine) to Done Nov 6, 2020
@gilmoreorless gilmoreorless deleted the nodejs-regexp branch November 7, 2020 03:02
@Elchi3 Elchi3 mentioned this pull request Dec 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. data:js 📟 Compat data for JS/ECMAScript features. https://developer.mozilla.org/docs/Web/JavaScript
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants