From 3da7339067ae96210a456cb0a962fab37b07ed39 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 20 Aug 2024 15:39:37 +0200 Subject: [PATCH 1/4] Add Shared memory --- features/atomics-wait-async.yml | 5 +++ features/atomics-wait-async.yml.dist | 13 ++++++ features/shared-memory.yml | 26 ++++++++++++ features/shared-memory.yml.dist | 59 ++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 features/atomics-wait-async.yml create mode 100644 features/atomics-wait-async.yml.dist create mode 100644 features/shared-memory.yml create mode 100644 features/shared-memory.yml.dist diff --git a/features/atomics-wait-async.yml b/features/atomics-wait-async.yml new file mode 100644 index 00000000000..b010a22ffc2 --- /dev/null +++ b/features/atomics-wait-async.yml @@ -0,0 +1,5 @@ +name: Atomics.waitAsync +description: "The `Atomics.waitAsync()` static method waits asynchronously on a shared memory location and returns a Promise." +spec: https://tc39.es/ecma262/multipage/structured-data.html#sec-atomics.waitasync +compat_features: + - javascript.builtins.Atomics.waitAsync diff --git a/features/atomics-wait-async.yml.dist b/features/atomics-wait-async.yml.dist new file mode 100644 index 00000000000..1397746fff8 --- /dev/null +++ b/features/atomics-wait-async.yml.dist @@ -0,0 +1,13 @@ +# Generated from: atomics-wait-async.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "87" + chrome_android: "89" + edge: "87" + safari: "16.4" + safari_ios: "16.4" +compat_features: + - javascript.builtins.Atomics.waitAsync diff --git a/features/shared-memory.yml b/features/shared-memory.yml new file mode 100644 index 00000000000..070167614cb --- /dev/null +++ b/features/shared-memory.yml @@ -0,0 +1,26 @@ +name: SharedArrayBuffer and Atomics +description: "`SharedArrayBuffer` objects share bytes between multiple worker and the main thread. The `Atomics` object safely accesses shared data to make sure predictable values are read and written and that operations are not interrupted." +caniuse: sharedarraybuffer +spec: + - https://tc39.es/ecma262/multipage/structured-data.html#sec-sharedarraybuffer-objects + - https://tc39.es/ecma262/multipage/structured-data.html#sec-atomics-object +compat_features: + - javascript.builtins.Atomics + - javascript.builtins.Atomics.add + - javascript.builtins.Atomics.and + - javascript.builtins.Atomics.compareExchange + - javascript.builtins.Atomics.exchange + - javascript.builtins.Atomics.isLockFree + - javascript.builtins.Atomics.load + - javascript.builtins.Atomics.notify + - javascript.builtins.Atomics.or + - javascript.builtins.Atomics.store + - javascript.builtins.Atomics.sub + - javascript.builtins.Atomics.wait + - javascript.builtins.Atomics.xor + - javascript.builtins.DataView.DataView.sharedarraybuffer_support + - javascript.builtins.SharedArrayBuffer + - javascript.builtins.SharedArrayBuffer.SharedArrayBuffer + - javascript.builtins.SharedArrayBuffer.byteLength + - javascript.builtins.SharedArrayBuffer.slice + - javascript.builtins.SharedArrayBuffer.@@species diff --git a/features/shared-memory.yml.dist b/features/shared-memory.yml.dist new file mode 100644 index 00000000000..01939496f9b --- /dev/null +++ b/features/shared-memory.yml.dist @@ -0,0 +1,59 @@ +# Generated from: shared-memory.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2021-12-13 + baseline_high_date: 2024-06-13 + support: + chrome: "68" + chrome_android: "89" + edge: "79" + firefox: "79" + firefox_android: "79" + safari: "15.2" + safari_ios: "15.2" +compat_features: + # baseline: high + # baseline_low_date: 2021-12-13 + # baseline_high_date: 2024-06-13 + # support: + # chrome: "68" + # chrome_android: "89" + # edge: "79" + # firefox: "78" + # firefox_android: "79" + # safari: "15.2" + # safari_ios: "15.2" + - javascript.builtins.Atomics + - javascript.builtins.Atomics.add + - javascript.builtins.Atomics.and + - javascript.builtins.Atomics.compareExchange + - javascript.builtins.Atomics.exchange + - javascript.builtins.Atomics.isLockFree + - javascript.builtins.Atomics.load + - javascript.builtins.Atomics.notify + - javascript.builtins.Atomics.or + - javascript.builtins.Atomics.store + - javascript.builtins.Atomics.sub + - javascript.builtins.Atomics.wait + - javascript.builtins.Atomics.xor + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2021-12-13 + # baseline_high_date: 2024-06-13 + # support: + # chrome: "68" + # chrome_android: "89" + # edge: "79" + # firefox: "79" + # firefox_android: "79" + # safari: "15.2" + # safari_ios: "15.2" + - javascript.builtins.DataView.DataView.sharedarraybuffer_support + - javascript.builtins.SharedArrayBuffer + - javascript.builtins.SharedArrayBuffer.@@species + - javascript.builtins.SharedArrayBuffer.SharedArrayBuffer + - javascript.builtins.SharedArrayBuffer.byteLength + - javascript.builtins.SharedArrayBuffer.slice From e295fde76db272ef8dd409e59e7a0d4c432351e3 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 20 Aug 2024 16:03:42 +0200 Subject: [PATCH 2/4] Add javascript group --- features/atomics-wait-async.yml | 1 + features/shared-memory.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/features/atomics-wait-async.yml b/features/atomics-wait-async.yml index b010a22ffc2..02a56fbfcfd 100644 --- a/features/atomics-wait-async.yml +++ b/features/atomics-wait-async.yml @@ -1,5 +1,6 @@ name: Atomics.waitAsync description: "The `Atomics.waitAsync()` static method waits asynchronously on a shared memory location and returns a Promise." spec: https://tc39.es/ecma262/multipage/structured-data.html#sec-atomics.waitasync +group: javascript compat_features: - javascript.builtins.Atomics.waitAsync diff --git a/features/shared-memory.yml b/features/shared-memory.yml index 070167614cb..865f56893fa 100644 --- a/features/shared-memory.yml +++ b/features/shared-memory.yml @@ -4,6 +4,7 @@ caniuse: sharedarraybuffer spec: - https://tc39.es/ecma262/multipage/structured-data.html#sec-sharedarraybuffer-objects - https://tc39.es/ecma262/multipage/structured-data.html#sec-atomics-object +group: javascript compat_features: - javascript.builtins.Atomics - javascript.builtins.Atomics.add From ca30a53fc1a51abe9f64666f28eef3834187d5d3 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Thu, 22 Aug 2024 12:20:40 +0200 Subject: [PATCH 3/4] Apply suggestions from code review Thanks Daniel! Co-authored-by: Daniel D. Beck --- features/atomics-wait-async.yml | 2 +- features/shared-memory.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/features/atomics-wait-async.yml b/features/atomics-wait-async.yml index 02a56fbfcfd..f8557719d3d 100644 --- a/features/atomics-wait-async.yml +++ b/features/atomics-wait-async.yml @@ -1,5 +1,5 @@ name: Atomics.waitAsync -description: "The `Atomics.waitAsync()` static method waits asynchronously on a shared memory location and returns a Promise." +description: The `Atomics.waitAsync()` static method waits for a value in a shared memory location, providing a promise when the expected value is not yet in memory. The `waitAsync()` method is a non-blocking alternative to `Atomics.wait()`. spec: https://tc39.es/ecma262/multipage/structured-data.html#sec-atomics.waitasync group: javascript compat_features: diff --git a/features/shared-memory.yml b/features/shared-memory.yml index 865f56893fa..a9143db4b05 100644 --- a/features/shared-memory.yml +++ b/features/shared-memory.yml @@ -1,5 +1,5 @@ name: SharedArrayBuffer and Atomics -description: "`SharedArrayBuffer` objects share bytes between multiple worker and the main thread. The `Atomics` object safely accesses shared data to make sure predictable values are read and written and that operations are not interrupted." +description: The `SharedArrayBuffer` object represents bytes shared between multiple workers and the main thread. The `Atomics` object safely accesses `SharedArrayBuffer` data to make sure predictable values are read and written and that operations are not interrupted." caniuse: sharedarraybuffer spec: - https://tc39.es/ecma262/multipage/structured-data.html#sec-sharedarraybuffer-objects From 933f4ba0288314d68f25e1032f3d7d37c8257662 Mon Sep 17 00:00:00 2001 From: "Daniel D. Beck" Date: Thu, 22 Aug 2024 13:12:53 +0200 Subject: [PATCH 4/4] Fix unmatched quotes --- features/shared-memory.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/shared-memory.yml b/features/shared-memory.yml index a9143db4b05..0617c88ca65 100644 --- a/features/shared-memory.yml +++ b/features/shared-memory.yml @@ -1,5 +1,5 @@ name: SharedArrayBuffer and Atomics -description: The `SharedArrayBuffer` object represents bytes shared between multiple workers and the main thread. The `Atomics` object safely accesses `SharedArrayBuffer` data to make sure predictable values are read and written and that operations are not interrupted." +description: The `SharedArrayBuffer` object represents bytes shared between multiple workers and the main thread. The `Atomics` object safely accesses `SharedArrayBuffer` data to make sure predictable values are read and written and that operations are not interrupted. caniuse: sharedarraybuffer spec: - https://tc39.es/ecma262/multipage/structured-data.html#sec-sharedarraybuffer-objects