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

Node.js 11.7+ supports Worker + related updates #25012

Merged
merged 10 commits into from
Jan 28, 2025
112 changes: 49 additions & 63 deletions api/Worker.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,15 @@
"ie": {
"version_added": "10"
},
"nodejs": [
{
"version_added": "12.17.0",
"partial_implementation": true,
"notes": [
"Is a Node `EventEmitter` instead of DOM `EventTarget`.",
"Worker script environment expects CommonJS modules or ECMAScript modules.",
"Must be imported from the `worker_threads` module."
]
},
{
"version_added": "11.7.0",
"partial_implementation": true,
"notes": [
"Is a Node `EventEmitter` instead of DOM `EventTarget`.",
"Worker script environment expects CommonJS modules.",
"Must be imported from the `worker_threads` module."
]
}
],
"nodejs": {
"version_added": "11.7.0",
"partial_implementation": true,
"notes": [
"Inherits from a Node `EventEmitter` instead of DOM `EventTarget`.",
"Also supports CommonJS modules, enabled for files ending with `.cjs` and for files ending with `.js` when the nearest parent `package.json` file contains a top-level field `\"type\"` with a value not of `\"commonjs\"`.",
"Available as a part of the `worker_threads` module."
]
},
Comment on lines +25 to +33
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Verified that worker_threads.Worker exists in v12.0.0, which seems to be the gist of this change.

"oculus": "mirror",
"opera": {
"version_added": "10.6"
Expand Down Expand Up @@ -88,18 +77,11 @@
"ie": {
"version_added": "10"
},
"nodejs": [
{
"version_added": "12.17.0",
"partial_implementation": true,
"notes": "Takes entirely different options."
},
{
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Takes entirely different options."
}
],
"nodejs": {
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Takes entirely different options parameters."
},
Comment on lines +80 to +84
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Makes sense based on parent change.

"oculus": "mirror",
"opera": {
"version_added": "10.6"
Expand Down Expand Up @@ -318,6 +300,9 @@
"ie": {
"version_added": false
},
"nodejs": {
"version_added": "11.7.0"
},
Comment on lines +303 to +305
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Verified locally with this worker.js, created via new worker_threads.Worker('./worker.js'):

const { Worker } = require('worker_threads');
const { writeFileSync } = require('fs');

writeFileSync('./worker.log', Worker, 'utf-8');

"oculus": "mirror",
"opera": "mirror",
"opera_android": "mirror",
Expand Down Expand Up @@ -359,7 +344,9 @@
"version_added": "10"
},
"nodejs": {
"version_added": false
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Supports the event, but only via Node `EventEmitter`."
Comment on lines +347 to +349
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Verified locally.

},
"oculus": "mirror",
"opera": {
Expand Down Expand Up @@ -411,18 +398,11 @@
"ie": {
"version_added": "10"
},
"nodejs": [
{
"version_added": "12.17.0",
"partial_implementation": true,
"notes": "Supports the event, but only via Node `EventEmitter`."
},
{
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Supports the event, but only via Node `EventEmitter`."
}
],
"nodejs": {
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Supports the event, but only via Node `EventEmitter`."
},
Comment on lines +401 to +405
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Makes sense based on parent change.

"oculus": "mirror",
"opera": {
"version_added": "10.6"
Expand Down Expand Up @@ -471,9 +451,19 @@
"ie": {
"version_added": false
},
"nodejs": {
"version_added": false
},
"nodejs": [
{
"version_added": "14.5.0",
"partial_implementation": true,
"notes": "Supports the event, but only via Node `EventEmitter`."
},
{
"version_added": "12.19.0",
"version_removed": "13.0.0",
"partial_implementation": true,
"notes": "Supports the event, but only via Node `EventEmitter`."
}
],
Comment on lines +454 to +466
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Verified via the referenced PR.

"oculus": "mirror",
"opera": "mirror",
"opera_android": "mirror",
Expand Down Expand Up @@ -548,18 +538,14 @@
"version_added": "10",
"notes": "Internet Explorer does not support `Transferable` objects."
},
"nodejs": [
{
"version_added": "12.17.0",
"partial_implementation": true,
"notes": "Supports `transferList` argument for transferring `ArrayBuffer` and `MessagePort` objects"
},
{
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Supports `transferList` argument for transferring `ArrayBuffer` and `MessagePort` objects"
}
],
"nodejs": {
"version_added": "11.7.0",
"partial_implementation": true,
"notes": [
"Only accepts an array of transfer objects as the second parameter, not an options object with a `transfer` property.",
"Only supports transferring `ArrayBuffer` and `MessagePort` objects."
]
},
"oculus": "mirror",
"opera": {
"version_added": "10.6"
Expand Down Expand Up @@ -648,14 +634,14 @@
},
"nodejs": [
{
"version_added": "12.17.0",
"version_added": "12.5.0",
"partial_implementation": true,
"notes": "Also takes an optional callback to be executed when the worker has terminated."
"notes": "Returns a `Promise`."
},
{
"version_added": "11.7.0",
"partial_implementation": true,
"notes": "Also takes an optional callback to be executed when the worker has terminated."
"notes": "Takes an optional callback parameter to be executed when the worker has terminated."
Copy link
Contributor

Choose a reason for hiding this comment

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

✅ Both verified locally.

}
],
"oculus": "mirror",
Expand Down
Loading