From 5596c06faf3510390d074561d2b61929a9c0cd0a Mon Sep 17 00:00:00 2001 From: Pete LePage Date: Tue, 20 Aug 2024 12:56:37 -0400 Subject: [PATCH 01/14] Add WebAssembly features --- features/draft/spec/wasm-core-2-fork-gc.yml | 6 --- .../wasm-js-api-2-fork-exception-handling.yml | 12 ------ .../draft/spec/wasm-js-api-2-fork-threads.yml | 6 --- .../spec/wasm-js-api-2-fork-threads.yml.dist | 17 -------- features/draft/spec/wasm-web-api-2.yml | 7 ---- features/draft/spec/wasm-web-api-2.yml.dist | 18 -------- features/wasm-bigint.yml | 6 +++ features/wasm-bigint.yml.dist | 17 ++++++++ features/wasm-bulk-memory.yml | 6 +++ features/wasm-bulk-memory.yml.dist | 17 ++++++++ features/wasm-exception-handling.yml | 16 +++++++ ....dist => wasm-exception-handling.yml.dist} | 23 ++++++++-- features/wasm-garbage-collection.yml | 5 +++ ....dist => wasm-garbage-collection.yml.dist} | 2 +- features/wasm-multi-memory.yml | 5 +++ features/wasm-multi-memory.yml.dist | 13 ++++++ features/wasm-multi-value.yml | 6 +++ features/wasm-multi-value.yml.dist | 17 ++++++++ features/wasm-mutable-globals.yml | 6 +++ features/wasm-mutable-globals.yml.dist | 17 ++++++++ features/wasm-non-trapping-float-to-int.yml | 6 +++ .../wasm-non-trapping-float-to-int.yml.dist | 17 ++++++++ features/wasm-reference-types.yml | 6 +++ features/wasm-reference-types.yml.dist | 17 ++++++++ features/wasm-sign-extension-operators.yml | 6 +++ .../wasm-sign-extension-operators.yml.dist | 17 ++++++++ .../{wasm-simd.yml => wasm-simd-fixed.yml} | 4 +- ...simd.yml.dist => wasm-simd-fixed.yml.dist} | 2 +- features/wasm-simd-relaxed.yml | 5 +++ features/wasm-simd-relaxed.yml.dist | 11 +++++ features/wasm-tail-calls.yml | 5 +++ features/wasm-tail-calls.yml.dist | 13 ++++++ features/wasm-threads.yml | 7 ++++ features/wasm-threads.yml.dist | 42 +++++++++++++++++++ .../spec/wasm-js-api-2.yml => wasm.yml} | 25 +++++------ .../wasm-js-api-2.yml.dist => wasm.yml.dist} | 42 +++++++++---------- 36 files changed, 341 insertions(+), 106 deletions(-) delete mode 100644 features/draft/spec/wasm-core-2-fork-gc.yml delete mode 100644 features/draft/spec/wasm-js-api-2-fork-exception-handling.yml delete mode 100644 features/draft/spec/wasm-js-api-2-fork-threads.yml delete mode 100644 features/draft/spec/wasm-js-api-2-fork-threads.yml.dist delete mode 100644 features/draft/spec/wasm-web-api-2.yml delete mode 100644 features/draft/spec/wasm-web-api-2.yml.dist create mode 100644 features/wasm-bigint.yml create mode 100644 features/wasm-bigint.yml.dist create mode 100644 features/wasm-bulk-memory.yml create mode 100644 features/wasm-bulk-memory.yml.dist create mode 100644 features/wasm-exception-handling.yml rename features/{draft/spec/wasm-js-api-2-fork-exception-handling.yml.dist => wasm-exception-handling.yml.dist} (59%) create mode 100644 features/wasm-garbage-collection.yml rename features/{draft/spec/wasm-core-2-fork-gc.yml.dist => wasm-garbage-collection.yml.dist} (84%) create mode 100644 features/wasm-multi-memory.yml create mode 100644 features/wasm-multi-memory.yml.dist create mode 100644 features/wasm-multi-value.yml create mode 100644 features/wasm-multi-value.yml.dist create mode 100644 features/wasm-mutable-globals.yml create mode 100644 features/wasm-mutable-globals.yml.dist create mode 100644 features/wasm-non-trapping-float-to-int.yml create mode 100644 features/wasm-non-trapping-float-to-int.yml.dist create mode 100644 features/wasm-reference-types.yml create mode 100644 features/wasm-reference-types.yml.dist create mode 100644 features/wasm-sign-extension-operators.yml create mode 100644 features/wasm-sign-extension-operators.yml.dist rename features/{wasm-simd.yml => wasm-simd-fixed.yml} (79%) rename features/{wasm-simd.yml.dist => wasm-simd-fixed.yml.dist} (89%) create mode 100644 features/wasm-simd-relaxed.yml create mode 100644 features/wasm-simd-relaxed.yml.dist create mode 100644 features/wasm-tail-calls.yml create mode 100644 features/wasm-tail-calls.yml.dist create mode 100644 features/wasm-threads.yml create mode 100644 features/wasm-threads.yml.dist rename features/{draft/spec/wasm-js-api-2.yml => wasm.yml} (75%) rename features/{draft/spec/wasm-js-api-2.yml.dist => wasm.yml.dist} (79%) diff --git a/features/draft/spec/wasm-core-2-fork-gc.yml b/features/draft/spec/wasm-core-2-fork-gc.yml deleted file mode 100644 index c7c66a30a84..00000000000 --- a/features/draft/spec/wasm-core-2-fork-gc.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-09-09 -name: "WebAssembly Core: Garbage Collection" -description: TODO -spec: https://webassembly.github.io/gc/core/bikeshed/ -compat_features: - - webassembly.garbage-collection diff --git a/features/draft/spec/wasm-js-api-2-fork-exception-handling.yml b/features/draft/spec/wasm-js-api-2-fork-exception-handling.yml deleted file mode 100644 index 6025966ec92..00000000000 --- a/features/draft/spec/wasm-js-api-2-fork-exception-handling.yml +++ /dev/null @@ -1,12 +0,0 @@ -draft_date: 2024-09-09 -name: "WebAssembly JavaScript Interface: Exception Handling" -description: TODO -spec: https://webassembly.github.io/exception-handling/js-api/ -compat_features: - - webassembly.api.Exception - - webassembly.api.Exception.Exception - - webassembly.api.Exception.getArg - - webassembly.api.Exception.is - - webassembly.api.Tag - - webassembly.api.Tag.Tag - - webassembly.api.Tag.type diff --git a/features/draft/spec/wasm-js-api-2-fork-threads.yml b/features/draft/spec/wasm-js-api-2-fork-threads.yml deleted file mode 100644 index ec5cbde3bee..00000000000 --- a/features/draft/spec/wasm-js-api-2-fork-threads.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-09-09 -name: "WebAssembly JavaScript Interface: Threading" -description: TODO -spec: https://webassembly.github.io/threads/js-api/ -compat_features: - - webassembly.api.Memory.Memory.shared diff --git a/features/draft/spec/wasm-js-api-2-fork-threads.yml.dist b/features/draft/spec/wasm-js-api-2-fork-threads.yml.dist deleted file mode 100644 index 16a680153c6..00000000000 --- a/features/draft/spec/wasm-js-api-2-fork-threads.yml.dist +++ /dev/null @@ -1,17 +0,0 @@ -# Generated from: wasm-js-api-2-fork-threads.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: "74" - chrome_android: "88" - edge: "79" - firefox: "78" - firefox_android: "79" - safari: "15.2" - safari_ios: "15.2" -compat_features: - - webassembly.api.Memory.Memory.shared diff --git a/features/draft/spec/wasm-web-api-2.yml b/features/draft/spec/wasm-web-api-2.yml deleted file mode 100644 index da8af527895..00000000000 --- a/features/draft/spec/wasm-web-api-2.yml +++ /dev/null @@ -1,7 +0,0 @@ -draft_date: 2024-09-09 -name: WebAssembly Web API -description: TODO -spec: https://webassembly.github.io/spec/web-api/ -compat_features: - - webassembly.api.compileStreaming_static - - webassembly.api.instantiateStreaming_static diff --git a/features/draft/spec/wasm-web-api-2.yml.dist b/features/draft/spec/wasm-web-api-2.yml.dist deleted file mode 100644 index ebf1bc4a80f..00000000000 --- a/features/draft/spec/wasm-web-api-2.yml.dist +++ /dev/null @@ -1,18 +0,0 @@ -# Generated from: wasm-web-api-2.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: high - baseline_low_date: 2021-09-20 - baseline_high_date: 2024-03-20 - support: - chrome: "61" - chrome_android: "61" - edge: "16" - firefox: "58" - firefox_android: "58" - safari: "15" - safari_ios: "15" -compat_features: - - webassembly.api.compileStreaming_static - - webassembly.api.instantiateStreaming_static diff --git a/features/wasm-bigint.yml b/features/wasm-bigint.yml new file mode 100644 index 00000000000..2b4d71488bb --- /dev/null +++ b/features/wasm-bigint.yml @@ -0,0 +1,6 @@ +name: WebAssembly BigInt to i64 conversion in JS +description: An extension to the WebAssembly JS API for bidrectionally converting BigInts and 64-bit WebAssembly integer values. +spec: https://webassembly.github.io/spec/js-api/ +caniuse: wasm-bigint +compat_features: + - webassembly.BigInt-to-i64-integration diff --git a/features/wasm-bigint.yml.dist b/features/wasm-bigint.yml.dist new file mode 100644 index 00000000000..bbfe30a6aa9 --- /dev/null +++ b/features/wasm-bigint.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-bigint.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2021-04-26 + baseline_high_date: 2023-10-26 + support: + chrome: "85" + chrome_android: "85" + edge: "85" + firefox: "78" + firefox_android: "79" + safari: "14.1" + safari_ios: "14.5" +compat_features: + - webassembly.BigInt-to-i64-integration diff --git a/features/wasm-bulk-memory.yml b/features/wasm-bulk-memory.yml new file mode 100644 index 00000000000..d0102c11446 --- /dev/null +++ b/features/wasm-bulk-memory.yml @@ -0,0 +1,6 @@ +name: WebAssembly bulk memory operations +description: An extension to WebAssembly adding bulk memory operations and conditional segment initialization. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm-bulk-memory +compat_features: + - webassembly.bulk-memory-operations diff --git a/features/wasm-bulk-memory.yml.dist b/features/wasm-bulk-memory.yml.dist new file mode 100644 index 00000000000..b983d1d432c --- /dev/null +++ b/features/wasm-bulk-memory.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-bulk-memory.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2021-10-25 + baseline_high_date: 2024-04-25 + support: + chrome: ≤80 + chrome_android: "80" + edge: ≤80 + firefox: "78" + firefox_android: "79" + safari: "15.1" + safari_ios: "15.1" +compat_features: + - webassembly.bulk-memory-operations diff --git a/features/wasm-exception-handling.yml b/features/wasm-exception-handling.yml new file mode 100644 index 00000000000..4d713f7cbd9 --- /dev/null +++ b/features/wasm-exception-handling.yml @@ -0,0 +1,16 @@ +name: WebAssembly exception handling +description: Exception handling allows code to break control flow when an exception is thrown. +spec: https://webassembly.github.io/exception-handling/js-api/ +status: + compute_from: webassembly.api.Exception +compat_features: + - webassembly.exception-handling + - webassembly.api.Exception + - webassembly.api.Exception.Exception + - webassembly.api.Exception.getArg + - webassembly.api.Exception.is + - webassembly.api.Tag + - webassembly.api.Tag.Tag + - webassembly.api.Tag.type + - webassembly.api.Exception.Exception.options_parameter_traceStack + - webassembly.api.Exception.stack diff --git a/features/draft/spec/wasm-js-api-2-fork-exception-handling.yml.dist b/features/wasm-exception-handling.yml.dist similarity index 59% rename from features/draft/spec/wasm-js-api-2-fork-exception-handling.yml.dist rename to features/wasm-exception-handling.yml.dist index e27e006a4ee..ab3e2a451ef 100644 --- a/features/draft/spec/wasm-js-api-2-fork-exception-handling.yml.dist +++ b/features/wasm-exception-handling.yml.dist @@ -1,12 +1,19 @@ -# Generated from: wasm-js-api-2-fork-exception-handling.yml +# Generated from: wasm-exception-handling.yml # Do not edit this file by hand. Edit the source file instead! status: - baseline: false + baseline: low + baseline_low_date: 2022-05-03 support: + chrome: "95" + chrome_android: "95" + edge: "95" + firefox: "100" + firefox_android: "100" safari: "15.2" safari_ios: "15.2" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: low # baseline_low_date: 2022-05-03 # support: @@ -19,12 +26,22 @@ compat_features: # safari_ios: "15.2" - webassembly.api.Exception - webassembly.api.Exception.Exception + - webassembly.api.Exception.Exception.options_parameter_traceStack - webassembly.api.Exception.getArg - webassembly.api.Exception.is - webassembly.api.Tag - webassembly.api.Tag.Tag + - webassembly.exception-handling + + # baseline: false + # support: + # chrome: "95" + # chrome_android: "95" + # edge: "95" + # firefox: "100" + # firefox_android: "100" + - webassembly.api.Exception.stack - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # safari: "15.2" diff --git a/features/wasm-garbage-collection.yml b/features/wasm-garbage-collection.yml new file mode 100644 index 00000000000..44a44138737 --- /dev/null +++ b/features/wasm-garbage-collection.yml @@ -0,0 +1,5 @@ +name: WebAssembly garbage collection +description: An extension to WebAssembly adding support for garbage collection. +spec: https://webassembly.github.io/gc/core/bikeshed/ +compat_features: + - webassembly.garbage-collection diff --git a/features/draft/spec/wasm-core-2-fork-gc.yml.dist b/features/wasm-garbage-collection.yml.dist similarity index 84% rename from features/draft/spec/wasm-core-2-fork-gc.yml.dist rename to features/wasm-garbage-collection.yml.dist index 270719e9268..7671d545646 100644 --- a/features/draft/spec/wasm-core-2-fork-gc.yml.dist +++ b/features/wasm-garbage-collection.yml.dist @@ -1,4 +1,4 @@ -# Generated from: wasm-core-2-fork-gc.yml +# Generated from: wasm-garbage-collection.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/wasm-multi-memory.yml b/features/wasm-multi-memory.yml new file mode 100644 index 00000000000..9f02940544e --- /dev/null +++ b/features/wasm-multi-memory.yml @@ -0,0 +1,5 @@ +name: WebAssembly multi-memory +description: An extension to WebAssembly to all the use of multiple memories within a single Wasm module. +spec: https://webassembly.github.io/gc/core/bikeshed/ +compat_features: + - webassembly.multiMemory diff --git a/features/wasm-multi-memory.yml.dist b/features/wasm-multi-memory.yml.dist new file mode 100644 index 00000000000..2da540e1a1f --- /dev/null +++ b/features/wasm-multi-memory.yml.dist @@ -0,0 +1,13 @@ +# Generated from: wasm-multi-memory.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "120" + chrome_android: "120" + edge: "120" + firefox: "125" + firefox_android: "125" +compat_features: + - webassembly.multiMemory diff --git a/features/wasm-multi-value.yml b/features/wasm-multi-value.yml new file mode 100644 index 00000000000..76370d814a9 --- /dev/null +++ b/features/wasm-multi-value.yml @@ -0,0 +1,6 @@ +name: WebAssembly multi-value +description: An extension to WebAssembly allowing instructions, blocks and functions to produce multiple result values. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm-multi-value +compat_features: + - webassembly.multi-value diff --git a/features/wasm-multi-value.yml.dist b/features/wasm-multi-value.yml.dist new file mode 100644 index 00000000000..c6b1de557fc --- /dev/null +++ b/features/wasm-multi-value.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-multi-value.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2020-10-20 + baseline_high_date: 2023-04-20 + support: + chrome: "86" + chrome_android: "86" + edge: "86" + firefox: "78" + firefox_android: "79" + safari: ≤13.1 + safari_ios: ≤13.4 +compat_features: + - webassembly.multi-value diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml new file mode 100644 index 00000000000..1396dc1415c --- /dev/null +++ b/features/wasm-mutable-globals.yml @@ -0,0 +1,6 @@ +name: WebAssembly import & export of mutable globals +description: An extension to WebAssembly import and export of mutable global variables. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm-mutable-globals +compat_features: + - webassembly.mutable-globals diff --git a/features/wasm-mutable-globals.yml.dist b/features/wasm-mutable-globals.yml.dist new file mode 100644 index 00000000000..80414e6e8e5 --- /dev/null +++ b/features/wasm-mutable-globals.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-mutable-globals.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2020-07-28 + baseline_high_date: 2023-01-28 + support: + chrome: ≤80 + chrome_android: "80" + edge: ≤80 + firefox: ≤72 + firefox_android: "79" + safari: ≤13.1 + safari_ios: ≤13.4 +compat_features: + - webassembly.mutable-globals diff --git a/features/wasm-non-trapping-float-to-int.yml b/features/wasm-non-trapping-float-to-int.yml new file mode 100644 index 00000000000..1049e4b5e0e --- /dev/null +++ b/features/wasm-non-trapping-float-to-int.yml @@ -0,0 +1,6 @@ +name: WebAssembly non-trapping float-to-int conversion +description: An extension to WebAssembly adding floating-point to integer conversion operators which saturate instead of trapping. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm-nontrapping-fptoint +compat_features: + - webassembly.non-trapping-float-to-int-conversions diff --git a/features/wasm-non-trapping-float-to-int.yml.dist b/features/wasm-non-trapping-float-to-int.yml.dist new file mode 100644 index 00000000000..fcfdc709837 --- /dev/null +++ b/features/wasm-non-trapping-float-to-int.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-non-trapping-float-to-int.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2021-10-25 + baseline_high_date: 2024-04-25 + support: + chrome: ≤80 + chrome_android: "80" + edge: ≤80 + firefox: ≤72 + firefox_android: "79" + safari: "15.1" + safari_ios: "15.1" +compat_features: + - webassembly.non-trapping-float-to-int-conversions diff --git a/features/wasm-reference-types.yml b/features/wasm-reference-types.yml new file mode 100644 index 00000000000..299b444bfaf --- /dev/null +++ b/features/wasm-reference-types.yml @@ -0,0 +1,6 @@ +name: WebAssembly reference types +description: An extension to WebAssembly allowing opaque references as first-class types, and multiple tables. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm-reference-types +compat_features: + - webassembly.reference-types diff --git a/features/wasm-reference-types.yml.dist b/features/wasm-reference-types.yml.dist new file mode 100644 index 00000000000..50fc0a85dc9 --- /dev/null +++ b/features/wasm-reference-types.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-reference-types.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2021-11-19 + baseline_high_date: 2024-05-19 + support: + chrome: "96" + chrome_android: "96" + edge: "96" + firefox: "79" + firefox_android: "79" + safari: "15.1" + safari_ios: "15.1" +compat_features: + - webassembly.reference-types diff --git a/features/wasm-sign-extension-operators.yml b/features/wasm-sign-extension-operators.yml new file mode 100644 index 00000000000..2fddeeef13b --- /dev/null +++ b/features/wasm-sign-extension-operators.yml @@ -0,0 +1,6 @@ +name: WebAssembly sign extension operators +description: An extension to WebAssembly adding sign-extension operator instructions. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm-signext +compat_features: + - webassembly.sign-extension-operations diff --git a/features/wasm-sign-extension-operators.yml.dist b/features/wasm-sign-extension-operators.yml.dist new file mode 100644 index 00000000000..82ca64671dc --- /dev/null +++ b/features/wasm-sign-extension-operators.yml.dist @@ -0,0 +1,17 @@ +# Generated from: wasm-sign-extension-operators.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: high + baseline_low_date: 2021-04-26 + baseline_high_date: 2023-10-26 + support: + chrome: ≤80 + chrome_android: "80" + edge: ≤80 + firefox: ≤72 + firefox_android: "79" + safari: "14.1" + safari_ios: "14.5" +compat_features: + - webassembly.sign-extension-operations diff --git a/features/wasm-simd.yml b/features/wasm-simd-fixed.yml similarity index 79% rename from features/wasm-simd.yml rename to features/wasm-simd-fixed.yml index d567fceb4c6..3aa4677638a 100644 --- a/features/wasm-simd.yml +++ b/features/wasm-simd-fixed.yml @@ -1,4 +1,6 @@ -name: WebAssembly SIMD +name: WebAssembly SIMD (fixed width) description: The 128-bit SIMD (Single Instruction Multiple Data) extension to WebAssembly performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions caniuse: wasm-simd +compat_features: + - webassembly.fixed-width-SIMD diff --git a/features/wasm-simd.yml.dist b/features/wasm-simd-fixed.yml.dist similarity index 89% rename from features/wasm-simd.yml.dist rename to features/wasm-simd-fixed.yml.dist index fb6e3909d9f..d1b45019607 100644 --- a/features/wasm-simd.yml.dist +++ b/features/wasm-simd-fixed.yml.dist @@ -1,4 +1,4 @@ -# Generated from: wasm-simd.yml +# Generated from: wasm-simd-fixed.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/wasm-simd-relaxed.yml b/features/wasm-simd-relaxed.yml new file mode 100644 index 00000000000..e2c0c22274a --- /dev/null +++ b/features/wasm-simd-relaxed.yml @@ -0,0 +1,5 @@ +name: WebAssembly SIMD (relaxed width) +description: The relaxed SIMD (Single Instruction Multiple Data) extension adds instructions that introduce local non-determinism (where the results of the instructions may vary based on hardware support). +spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions +compat_features: + - webassembly.relaxed-SIMD diff --git a/features/wasm-simd-relaxed.yml.dist b/features/wasm-simd-relaxed.yml.dist new file mode 100644 index 00000000000..a5b33fd9eb2 --- /dev/null +++ b/features/wasm-simd-relaxed.yml.dist @@ -0,0 +1,11 @@ +# Generated from: wasm-simd-relaxed.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "114" + chrome_android: "114" + edge: "114" +compat_features: + - webassembly.relaxed-SIMD diff --git a/features/wasm-tail-calls.yml b/features/wasm-tail-calls.yml new file mode 100644 index 00000000000..2c50ff3b750 --- /dev/null +++ b/features/wasm-tail-calls.yml @@ -0,0 +1,5 @@ +name: WebAssembly tail calls +description: An extension to WebAssembly to optimize tail calls by discarding the caller frame and replacing the call with a jump. +spec: https://webassembly.github.io/gc/core/bikeshed/ +compat_features: + - webassembly.tail-calls diff --git a/features/wasm-tail-calls.yml.dist b/features/wasm-tail-calls.yml.dist new file mode 100644 index 00000000000..9e780c31783 --- /dev/null +++ b/features/wasm-tail-calls.yml.dist @@ -0,0 +1,13 @@ +# Generated from: wasm-tail-calls.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + chrome: "112" + chrome_android: "112" + edge: "112" + firefox: "121" + firefox_android: "121" +compat_features: + - webassembly.tail-calls diff --git a/features/wasm-threads.yml b/features/wasm-threads.yml new file mode 100644 index 00000000000..01fbc10354e --- /dev/null +++ b/features/wasm-threads.yml @@ -0,0 +1,7 @@ +name: WebAssembly threads and atomics +description: An extension to WebAssembly adding shared memory and atomic memory operations. +spec: https://webassembly.github.io/threads/js-api/ +caniuse: wasm-threads +compat_features: + - webassembly.api.Memory.Memory.shared + - webassembly.threads-and-atomics diff --git a/features/wasm-threads.yml.dist b/features/wasm-threads.yml.dist new file mode 100644 index 00000000000..61e4bae3256 --- /dev/null +++ b/features/wasm-threads.yml.dist @@ -0,0 +1,42 @@ +# Generated from: wasm-threads.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: "74" + chrome_android: "88" + 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: "74" + # chrome_android: "88" + # edge: "79" + # firefox: "78" + # firefox_android: "79" + # safari: "15.2" + # safari_ios: "15.2" + - webassembly.api.Memory.Memory.shared + + # ⬇️ Same status as overall feature ⬇️ + # baseline: high + # baseline_low_date: 2021-12-13 + # baseline_high_date: 2024-06-13 + # support: + # chrome: "74" + # chrome_android: "88" + # edge: "79" + # firefox: "79" + # firefox_android: "79" + # safari: "15.2" + # safari_ios: "15.2" + - webassembly.threads-and-atomics diff --git a/features/draft/spec/wasm-js-api-2.yml b/features/wasm.yml similarity index 75% rename from features/draft/spec/wasm-js-api-2.yml rename to features/wasm.yml index 1a2f0cb1bbd..6171f4bee4d 100644 --- a/features/draft/spec/wasm-js-api-2.yml +++ b/features/wasm.yml @@ -1,39 +1,40 @@ -draft_date: 2024-09-09 -name: WebAssembly JavaScript Interface -description: TODO -spec: https://webassembly.github.io/spec/js-api/ +name: WebAssembly +description: WebAssembly or "wasm" is a new portable, size- and load-time-efficient format suitable for compilation to the web. +spec: https://webassembly.github.io/gc/core/bikeshed/ +caniuse: wasm compat_features: - - webassembly.BigInt-to-i64-integration - webassembly.api + - webassembly.api.compile_static - webassembly.api.CompileError - webassembly.api.CompileError.CompileError + - webassembly.api.compileStreaming_static - webassembly.api.Global - webassembly.api.Global.Global - webassembly.api.Global.value - webassembly.api.Global.valueOf - webassembly.api.Instance - - webassembly.api.Instance.Instance - webassembly.api.Instance.exports + - webassembly.api.Instance.Instance + - webassembly.api.instantiate_static + - webassembly.api.instantiateStreaming_static - webassembly.api.LinkError - webassembly.api.LinkError.LinkError - webassembly.api.Memory - - webassembly.api.Memory.Memory - webassembly.api.Memory.buffer - webassembly.api.Memory.grow + - webassembly.api.Memory.Memory - webassembly.api.Module - - webassembly.api.Module.Module - webassembly.api.Module.customSections_static - webassembly.api.Module.exports_static - webassembly.api.Module.imports_static + - webassembly.api.Module.Module - webassembly.api.RuntimeError - webassembly.api.RuntimeError.RuntimeError - webassembly.api.Table - - webassembly.api.Table.Table - webassembly.api.Table.get - webassembly.api.Table.grow - webassembly.api.Table.length - webassembly.api.Table.set - - webassembly.api.compile_static - - webassembly.api.instantiate_static + - webassembly.api.Table.Table - webassembly.api.validate_static - - webassembly.mutable-globals + - webassembly.extended-constant-expressions diff --git a/features/draft/spec/wasm-js-api-2.yml.dist b/features/wasm.yml.dist similarity index 79% rename from features/draft/spec/wasm-js-api-2.yml.dist rename to features/wasm.yml.dist index ade670ac022..9a96bbeb84b 100644 --- a/features/draft/spec/wasm-js-api-2.yml.dist +++ b/features/wasm.yml.dist @@ -1,18 +1,17 @@ -# Generated from: wasm-js-api-2.yml +# Generated from: wasm.yml # Do not edit this file by hand. Edit the source file instead! status: - baseline: high - baseline_low_date: 2021-04-26 - baseline_high_date: 2023-10-26 + baseline: low + baseline_low_date: 2024-03-05 support: - chrome: "85" - chrome_android: "85" - edge: "85" - firefox: "78" - firefox_android: "79" - safari: "14.1" - safari_ios: "14.5" + chrome: "114" + chrome_android: "114" + edge: "114" + firefox: "112" + firefox_android: "112" + safari: "17.4" + safari_ios: "17.4" compat_features: # baseline: high # baseline_low_date: 2017-10-17 @@ -84,15 +83,14 @@ compat_features: - webassembly.mutable-globals # ⬇️ Same status as overall feature ⬇️ - # baseline: high - # baseline_low_date: 2021-04-26 - # baseline_high_date: 2023-10-26 + # baseline: low + # baseline_low_date: 2024-03-05 # support: - # chrome: "85" - # chrome_android: "85" - # edge: "85" - # firefox: "78" - # firefox_android: "79" - # safari: "14.1" - # safari_ios: "14.5" - - webassembly.BigInt-to-i64-integration + # chrome: "114" + # chrome_android: "114" + # edge: "114" + # firefox: "112" + # firefox_android: "112" + # safari: "17.4" + # safari_ios: "17.4" + - webassembly.extended-constant-expressions From c7900eb5eac29141156f77f61a76026cdea1f9c8 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 15 Oct 2024 12:33:37 +0200 Subject: [PATCH 02/14] Some fixes per Dietrich --- features/wasm-bigint.yml | 4 ++-- features/wasm-multi-memory.yml | 2 +- features/wasm-mutable-globals.yml | 2 +- features/wasm.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/features/wasm-bigint.yml b/features/wasm-bigint.yml index 2b4d71488bb..ff4f1bd67fb 100644 --- a/features/wasm-bigint.yml +++ b/features/wasm-bigint.yml @@ -1,6 +1,6 @@ name: WebAssembly BigInt to i64 conversion in JS -description: An extension to the WebAssembly JS API for bidrectionally converting BigInts and 64-bit WebAssembly integer values. -spec: https://webassembly.github.io/spec/js-api/ +description: An extension to the WebAssembly JS API for bidirectionally converting BigInts and 64-bit WebAssembly integer values. +spec: https://webassembly.github.io/spec/js-api/#ref-for-syntax-numtype①⓪ caniuse: wasm-bigint compat_features: - webassembly.BigInt-to-i64-integration diff --git a/features/wasm-multi-memory.yml b/features/wasm-multi-memory.yml index 9f02940544e..fdb65f520a9 100644 --- a/features/wasm-multi-memory.yml +++ b/features/wasm-multi-memory.yml @@ -1,5 +1,5 @@ name: WebAssembly multi-memory -description: An extension to WebAssembly to all the use of multiple memories within a single Wasm module. +description: An extension to WebAssembly to allow the use of multiple memories within a single Wasm module. spec: https://webassembly.github.io/gc/core/bikeshed/ compat_features: - webassembly.multiMemory diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml index 1396dc1415c..04b61485fdd 100644 --- a/features/wasm-mutable-globals.yml +++ b/features/wasm-mutable-globals.yml @@ -1,4 +1,4 @@ -name: WebAssembly import & export of mutable globals +name: WebAssembly import and export of mutable globals description: An extension to WebAssembly import and export of mutable global variables. spec: https://webassembly.github.io/gc/core/bikeshed/ caniuse: wasm-mutable-globals diff --git a/features/wasm.yml b/features/wasm.yml index 6171f4bee4d..09aa1602764 100644 --- a/features/wasm.yml +++ b/features/wasm.yml @@ -1,5 +1,5 @@ name: WebAssembly -description: WebAssembly or "wasm" is a new portable, size- and load-time-efficient format suitable for compilation to the web. +description: WebAssembly or "WASM" is a new portable, size- and load-time-efficient binary instruction format suitable for compilation to the web. spec: https://webassembly.github.io/gc/core/bikeshed/ caniuse: wasm compat_features: From b38a7ce9b82830e3af977aeb56fc647d2991c7c5 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 15 Oct 2024 14:25:53 +0200 Subject: [PATCH 03/14] npm run dist --- features/wasm-bulk-memory.yml.dist | 4 ++-- features/wasm-mutable-globals.yml.dist | 12 ++++++------ features/wasm.yml.dist | 21 +++++++++++---------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/features/wasm-bulk-memory.yml.dist b/features/wasm-bulk-memory.yml.dist index b983d1d432c..0824e8be161 100644 --- a/features/wasm-bulk-memory.yml.dist +++ b/features/wasm-bulk-memory.yml.dist @@ -6,8 +6,8 @@ status: baseline_low_date: 2021-10-25 baseline_high_date: 2024-04-25 support: - chrome: ≤80 - chrome_android: "80" + chrome: "75" + chrome_android: "75" edge: ≤80 firefox: "78" firefox_android: "79" diff --git a/features/wasm-mutable-globals.yml.dist b/features/wasm-mutable-globals.yml.dist index 80414e6e8e5..cbe2fec4357 100644 --- a/features/wasm-mutable-globals.yml.dist +++ b/features/wasm-mutable-globals.yml.dist @@ -3,14 +3,14 @@ status: baseline: high - baseline_low_date: 2020-07-28 - baseline_high_date: 2023-01-28 + baseline_low_date: ≤2020-03-24 + baseline_high_date: ≤2022-09-24 support: - chrome: ≤80 - chrome_android: "80" + chrome: "69" + chrome_android: "69" edge: ≤80 - firefox: ≤72 - firefox_android: "79" + firefox: "62" + firefox_android: "62" safari: ≤13.1 safari_ios: ≤13.4 compat_features: diff --git a/features/wasm.yml.dist b/features/wasm.yml.dist index 9a96bbeb84b..ded206998e2 100644 --- a/features/wasm.yml.dist +++ b/features/wasm.yml.dist @@ -70,17 +70,18 @@ compat_features: - webassembly.api.Global.valueOf # baseline: high - # baseline_low_date: ≤2020-03-24 - # baseline_high_date: ≤2022-09-24 + # baseline_low_date: 2021-09-20 + # baseline_high_date: 2024-03-20 # support: - # chrome: "69" - # chrome_android: "69" - # edge: ≤80 - # firefox: "62" - # firefox_android: "62" - # safari: ≤13.1 - # safari_ios: ≤13.4 - - webassembly.mutable-globals + # chrome: "61" + # chrome_android: "61" + # edge: "16" + # firefox: "58" + # firefox_android: "58" + # safari: "15" + # safari_ios: "15" + - webassembly.api.compileStreaming_static + - webassembly.api.instantiateStreaming_static # ⬇️ Same status as overall feature ⬇️ # baseline: low From 679d1cbb89a6ff34a9221aad4473bd62b3a84a1e Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Thu, 17 Oct 2024 14:04:38 +0200 Subject: [PATCH 04/14] Fixes to descriptions --- features/wasm-bigint.yml | 4 ++-- features/wasm-exception-handling.yml | 2 +- features/wasm-multi-memory.yml | 2 +- features/wasm-mutable-globals.yml | 2 +- features/wasm-simd-fixed.yml | 2 +- features/wasm-simd-relaxed.yml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/features/wasm-bigint.yml b/features/wasm-bigint.yml index ff4f1bd67fb..13d12bec3aa 100644 --- a/features/wasm-bigint.yml +++ b/features/wasm-bigint.yml @@ -1,5 +1,5 @@ -name: WebAssembly BigInt to i64 conversion in JS -description: An extension to the WebAssembly JS API for bidirectionally converting BigInts and 64-bit WebAssembly integer values. +name: WebAssembly BigInt to i64 conversion in JavaScript +description: An extension to the WebAssembly JavaScript API for bidirectionally converting BigInts and 64-bit WebAssembly integer values. spec: https://webassembly.github.io/spec/js-api/#ref-for-syntax-numtype①⓪ caniuse: wasm-bigint compat_features: diff --git a/features/wasm-exception-handling.yml b/features/wasm-exception-handling.yml index 4d713f7cbd9..23e60f72307 100644 --- a/features/wasm-exception-handling.yml +++ b/features/wasm-exception-handling.yml @@ -1,5 +1,5 @@ name: WebAssembly exception handling -description: Exception handling allows code to break control flow when an exception is thrown. +description: An extension to WebAssembly adding break control flow when an exception is thrown. spec: https://webassembly.github.io/exception-handling/js-api/ status: compute_from: webassembly.api.Exception diff --git a/features/wasm-multi-memory.yml b/features/wasm-multi-memory.yml index fdb65f520a9..48c9a263d11 100644 --- a/features/wasm-multi-memory.yml +++ b/features/wasm-multi-memory.yml @@ -1,5 +1,5 @@ name: WebAssembly multi-memory -description: An extension to WebAssembly to allow the use of multiple memories within a single Wasm module. +description: An extension to WebAssembly to allow the use of multiple memories within a single module. spec: https://webassembly.github.io/gc/core/bikeshed/ compat_features: - webassembly.multiMemory diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml index 04b61485fdd..962c89b9cf7 100644 --- a/features/wasm-mutable-globals.yml +++ b/features/wasm-mutable-globals.yml @@ -1,5 +1,5 @@ name: WebAssembly import and export of mutable globals -description: An extension to WebAssembly import and export of mutable global variables. +description: An extension to WebAssembly for importing and exporting mutable global variables. spec: https://webassembly.github.io/gc/core/bikeshed/ caniuse: wasm-mutable-globals compat_features: diff --git a/features/wasm-simd-fixed.yml b/features/wasm-simd-fixed.yml index 3aa4677638a..7da93d827c3 100644 --- a/features/wasm-simd-fixed.yml +++ b/features/wasm-simd-fixed.yml @@ -1,5 +1,5 @@ name: WebAssembly SIMD (fixed width) -description: The 128-bit SIMD (Single Instruction Multiple Data) extension to WebAssembly performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. +description: An extension to WebAssembly adding 128-bit SIMD (Single Instruction Multiple Data) performing one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions caniuse: wasm-simd compat_features: diff --git a/features/wasm-simd-relaxed.yml b/features/wasm-simd-relaxed.yml index e2c0c22274a..4c32df579d6 100644 --- a/features/wasm-simd-relaxed.yml +++ b/features/wasm-simd-relaxed.yml @@ -1,5 +1,5 @@ name: WebAssembly SIMD (relaxed width) -description: The relaxed SIMD (Single Instruction Multiple Data) extension adds instructions that introduce local non-determinism (where the results of the instructions may vary based on hardware support). +description: An extension to WebAssembly adding relaxed SIMD (Single Instruction Multiple Data) introducing local non-determinism (where the results of the instructions may vary based on hardware support). spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions compat_features: - webassembly.relaxed-SIMD From d2ab1570e77eb73910ed0bbbf8b80b5d7246478c Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Thu, 17 Oct 2024 14:07:25 +0200 Subject: [PATCH 05/14] Use compute_from to match caniuse --- features/wasm.yml | 2 ++ features/wasm.yml.dist | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/features/wasm.yml b/features/wasm.yml index 09aa1602764..8b5850c2c79 100644 --- a/features/wasm.yml +++ b/features/wasm.yml @@ -2,6 +2,8 @@ name: WebAssembly description: WebAssembly or "WASM" is a new portable, size- and load-time-efficient binary instruction format suitable for compilation to the web. spec: https://webassembly.github.io/gc/core/bikeshed/ caniuse: wasm +status: + compute_from: webassembly.api compat_features: - webassembly.api - webassembly.api.compile_static diff --git a/features/wasm.yml.dist b/features/wasm.yml.dist index ded206998e2..1db6c1eaec0 100644 --- a/features/wasm.yml.dist +++ b/features/wasm.yml.dist @@ -2,17 +2,19 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: low - baseline_low_date: 2024-03-05 + baseline: high + baseline_low_date: 2017-10-17 + baseline_high_date: 2020-04-17 support: - chrome: "114" - chrome_android: "114" - edge: "114" - firefox: "112" - firefox_android: "112" - safari: "17.4" - safari_ios: "17.4" + chrome: "57" + chrome_android: "57" + edge: "16" + firefox: "52" + firefox_android: "52" + safari: "11" + safari_ios: "11" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2017-10-17 # baseline_high_date: 2020-04-17 @@ -83,7 +85,6 @@ compat_features: - webassembly.api.compileStreaming_static - webassembly.api.instantiateStreaming_static - # ⬇️ Same status as overall feature ⬇️ # baseline: low # baseline_low_date: 2024-03-05 # support: From 9aa7b1b9010d4f2aee63705fdb76b6b27e32011c Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Thu, 17 Oct 2024 14:15:44 +0200 Subject: [PATCH 06/14] Move extended constant expression to an own feature --- features/wasm-extended-constant-expressions.yml | 5 +++++ .../wasm-extended-constant-expressions.yml.dist | 16 ++++++++++++++++ features/wasm.yml | 1 - features/wasm.yml.dist | 12 ------------ 4 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 features/wasm-extended-constant-expressions.yml create mode 100644 features/wasm-extended-constant-expressions.yml.dist diff --git a/features/wasm-extended-constant-expressions.yml b/features/wasm-extended-constant-expressions.yml new file mode 100644 index 00000000000..197a713fcbe --- /dev/null +++ b/features/wasm-extended-constant-expressions.yml @@ -0,0 +1,5 @@ +name: WebAssembly extended constant expressions +description: An extension to WebAssembly adding new instructions (`i32.add`, `i32.sub`, `i32.mul`, `i64.add`, `i64.sub`, `i64.mul`) to the list of valid constant expressions. +spec: https://webassembly.github.io/gc/core/bikeshed/ +compat_features: + - webassembly.extended-constant-expressions diff --git a/features/wasm-extended-constant-expressions.yml.dist b/features/wasm-extended-constant-expressions.yml.dist new file mode 100644 index 00000000000..991a404557b --- /dev/null +++ b/features/wasm-extended-constant-expressions.yml.dist @@ -0,0 +1,16 @@ +# Generated from: wasm-extended-constant-expressions.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: low + baseline_low_date: 2024-03-05 + support: + chrome: "114" + chrome_android: "114" + edge: "114" + firefox: "112" + firefox_android: "112" + safari: "17.4" + safari_ios: "17.4" +compat_features: + - webassembly.extended-constant-expressions diff --git a/features/wasm.yml b/features/wasm.yml index 8b5850c2c79..851bb076759 100644 --- a/features/wasm.yml +++ b/features/wasm.yml @@ -39,4 +39,3 @@ compat_features: - webassembly.api.Table.set - webassembly.api.Table.Table - webassembly.api.validate_static - - webassembly.extended-constant-expressions diff --git a/features/wasm.yml.dist b/features/wasm.yml.dist index 1db6c1eaec0..a84a6482e45 100644 --- a/features/wasm.yml.dist +++ b/features/wasm.yml.dist @@ -84,15 +84,3 @@ compat_features: # safari_ios: "15" - webassembly.api.compileStreaming_static - webassembly.api.instantiateStreaming_static - - # baseline: low - # baseline_low_date: 2024-03-05 - # support: - # chrome: "114" - # chrome_android: "114" - # edge: "114" - # firefox: "112" - # firefox_android: "112" - # safari: "17.4" - # safari_ios: "17.4" - - webassembly.extended-constant-expressions From 48b0760d9d485f54e9bc8b994ac482f36bf36f0e Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 22 Oct 2024 14:34:19 +0200 Subject: [PATCH 07/14] Adress more feedback --- features/wasm-simd-fixed.yml | 2 +- features/wasm-simd-relaxed.yml | 2 +- .../{wasm-tail-calls.yml => wasm-tail-call-optimization.yml} | 2 +- ...tail-calls.yml.dist => wasm-tail-call-optimization.yml.dist} | 2 +- features/wasm.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename features/{wasm-tail-calls.yml => wasm-tail-call-optimization.yml} (84%) rename features/{wasm-tail-calls.yml.dist => wasm-tail-call-optimization.yml.dist} (83%) diff --git a/features/wasm-simd-fixed.yml b/features/wasm-simd-fixed.yml index 7da93d827c3..9c0514bace2 100644 --- a/features/wasm-simd-fixed.yml +++ b/features/wasm-simd-fixed.yml @@ -1,4 +1,4 @@ -name: WebAssembly SIMD (fixed width) +name: WebAssembly fixed width SIMD description: An extension to WebAssembly adding 128-bit SIMD (Single Instruction Multiple Data) performing one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions caniuse: wasm-simd diff --git a/features/wasm-simd-relaxed.yml b/features/wasm-simd-relaxed.yml index 4c32df579d6..cb52e02eeca 100644 --- a/features/wasm-simd-relaxed.yml +++ b/features/wasm-simd-relaxed.yml @@ -1,4 +1,4 @@ -name: WebAssembly SIMD (relaxed width) +name: WebAssembly relaxed width SIMD description: An extension to WebAssembly adding relaxed SIMD (Single Instruction Multiple Data) introducing local non-determinism (where the results of the instructions may vary based on hardware support). spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions compat_features: diff --git a/features/wasm-tail-calls.yml b/features/wasm-tail-call-optimization.yml similarity index 84% rename from features/wasm-tail-calls.yml rename to features/wasm-tail-call-optimization.yml index 2c50ff3b750..b6496825f8a 100644 --- a/features/wasm-tail-calls.yml +++ b/features/wasm-tail-call-optimization.yml @@ -1,4 +1,4 @@ -name: WebAssembly tail calls +name: WebAssembly tail call optimization description: An extension to WebAssembly to optimize tail calls by discarding the caller frame and replacing the call with a jump. spec: https://webassembly.github.io/gc/core/bikeshed/ compat_features: diff --git a/features/wasm-tail-calls.yml.dist b/features/wasm-tail-call-optimization.yml.dist similarity index 83% rename from features/wasm-tail-calls.yml.dist rename to features/wasm-tail-call-optimization.yml.dist index 9e780c31783..58d80b715b8 100644 --- a/features/wasm-tail-calls.yml.dist +++ b/features/wasm-tail-call-optimization.yml.dist @@ -1,4 +1,4 @@ -# Generated from: wasm-tail-calls.yml +# Generated from: wasm-tail-call-optimization.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/wasm.yml b/features/wasm.yml index 851bb076759..d7e197b9915 100644 --- a/features/wasm.yml +++ b/features/wasm.yml @@ -1,5 +1,5 @@ name: WebAssembly -description: WebAssembly or "WASM" is a new portable, size- and load-time-efficient binary instruction format suitable for compilation to the web. +description: WebAssembly or WASM is a portable binary instruction format suitable for compilation to the web. spec: https://webassembly.github.io/gc/core/bikeshed/ caniuse: wasm status: From 06b6cc3468f0d3586a487267050e045ab9350a4f Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 22 Oct 2024 14:37:40 +0200 Subject: [PATCH 08/14] npm run dist --- features/wasm-non-trapping-float-to-int.yml.dist | 10 +++++----- features/wasm-sign-extension-operators.yml.dist | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/features/wasm-non-trapping-float-to-int.yml.dist b/features/wasm-non-trapping-float-to-int.yml.dist index fcfdc709837..eb0f0ed003f 100644 --- a/features/wasm-non-trapping-float-to-int.yml.dist +++ b/features/wasm-non-trapping-float-to-int.yml.dist @@ -6,11 +6,11 @@ status: baseline_low_date: 2021-10-25 baseline_high_date: 2024-04-25 support: - chrome: ≤80 - chrome_android: "80" - edge: ≤80 - firefox: ≤72 - firefox_android: "79" + chrome: "75" + chrome_android: "75" + edge: "18" + firefox: "64" + firefox_android: "64" safari: "15.1" safari_ios: "15.1" compat_features: diff --git a/features/wasm-sign-extension-operators.yml.dist b/features/wasm-sign-extension-operators.yml.dist index 82ca64671dc..3aa76ce951c 100644 --- a/features/wasm-sign-extension-operators.yml.dist +++ b/features/wasm-sign-extension-operators.yml.dist @@ -6,11 +6,11 @@ status: baseline_low_date: 2021-04-26 baseline_high_date: 2023-10-26 support: - chrome: ≤80 - chrome_android: "80" - edge: ≤80 - firefox: ≤72 - firefox_android: "79" + chrome: "69" + chrome_android: "69" + edge: "18" + firefox: "62" + firefox_android: "62" safari: "14.1" safari_ios: "14.5" compat_features: From fe5acf7dfbe21c47d5cbbb1527dddeef58d2efb2 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 4 Nov 2024 12:51:02 +0100 Subject: [PATCH 09/14] Update descriptions, add specs --- features/wasm-bigint.yml | 4 ++-- features/wasm-bulk-memory.yml | 6 +++--- features/wasm-exception-handling.yml | 6 +++--- features/wasm-extended-constant-expressions.yml | 6 +++--- features/wasm-garbage-collection.yml | 6 +++--- features/wasm-multi-memory.yml | 6 +++--- features/wasm-multi-value.yml | 6 +++--- features/wasm-mutable-globals.yml | 6 +++--- features/wasm-non-trapping-float-to-int.yml | 6 +++--- features/wasm-reference-types.yml | 6 +++--- features/wasm-sign-extension-operators.yml | 6 +++--- features/wasm-simd-fixed.yml | 4 ++-- features/wasm-simd-relaxed.yml | 6 +++--- features/wasm-tail-call-optimization.yml | 6 +++--- features/wasm-threads.yml | 6 +++--- features/wasm.yml | 2 +- 16 files changed, 44 insertions(+), 44 deletions(-) diff --git a/features/wasm-bigint.yml b/features/wasm-bigint.yml index 13d12bec3aa..839123e6ed1 100644 --- a/features/wasm-bigint.yml +++ b/features/wasm-bigint.yml @@ -1,5 +1,5 @@ -name: WebAssembly BigInt to i64 conversion in JavaScript -description: An extension to the WebAssembly JavaScript API for bidirectionally converting BigInts and 64-bit WebAssembly integer values. +name: BigInt to i64 conversion (WebAssembly) +description: Integer values pass bidirectionally between JavaScript and WebAssembly, converted to i64 values in WebAssembly or BigInt values in JavaScript. spec: https://webassembly.github.io/spec/js-api/#ref-for-syntax-numtype①⓪ caniuse: wasm-bigint compat_features: diff --git a/features/wasm-bulk-memory.yml b/features/wasm-bulk-memory.yml index d0102c11446..254adbe4549 100644 --- a/features/wasm-bulk-memory.yml +++ b/features/wasm-bulk-memory.yml @@ -1,6 +1,6 @@ -name: WebAssembly bulk memory operations -description: An extension to WebAssembly adding bulk memory operations and conditional segment initialization. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Bulk memory operations (WebAssembly) +description: Bulk memory operations such as `copy` and `init` similar to the native `memcpy` and `memmove` functions. +spec: https://github.com/WebAssembly/spec/blob/main/proposals/bulk-memory-operations/Overview.md caniuse: wasm-bulk-memory compat_features: - webassembly.bulk-memory-operations diff --git a/features/wasm-exception-handling.yml b/features/wasm-exception-handling.yml index 23e60f72307..9dbd1bc1b89 100644 --- a/features/wasm-exception-handling.yml +++ b/features/wasm-exception-handling.yml @@ -1,6 +1,6 @@ -name: WebAssembly exception handling -description: An extension to WebAssembly adding break control flow when an exception is thrown. -spec: https://webassembly.github.io/exception-handling/js-api/ +name: Exception handling (WebAssembly) +description: Exceptions break the normal control flow of execution to represent exceptional behavior, such as an error. You can respond to the exception in JavaScript code. +spec: https://github.com/WebAssembly/exception-handling/blob/main/proposals/exception-handling/Exceptions.md status: compute_from: webassembly.api.Exception compat_features: diff --git a/features/wasm-extended-constant-expressions.yml b/features/wasm-extended-constant-expressions.yml index 197a713fcbe..2c9155d5e60 100644 --- a/features/wasm-extended-constant-expressions.yml +++ b/features/wasm-extended-constant-expressions.yml @@ -1,5 +1,5 @@ -name: WebAssembly extended constant expressions -description: An extension to WebAssembly adding new instructions (`i32.add`, `i32.sub`, `i32.mul`, `i64.add`, `i64.sub`, `i64.mul`) to the list of valid constant expressions. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Extended constant expressions (WebAssembly) +description: New valid constant expressions (`i32.add`, `i32.sub`, `i32.mul`, `i64.add`, `i64.sub`, `i64.mul`). +spec: https://github.com/WebAssembly/extended-const/blob/main/proposals/extended-const/Overview.md compat_features: - webassembly.extended-constant-expressions diff --git a/features/wasm-garbage-collection.yml b/features/wasm-garbage-collection.yml index 44a44138737..d8ecf8fb0ad 100644 --- a/features/wasm-garbage-collection.yml +++ b/features/wasm-garbage-collection.yml @@ -1,5 +1,5 @@ -name: WebAssembly garbage collection -description: An extension to WebAssembly adding support for garbage collection. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Garbage collection (WebAssembly) +description: Garbage collection support in WebAssembly. +spec: https://webassembly.github.io/gc/core/bikeshed/#garbage-collection① compat_features: - webassembly.garbage-collection diff --git a/features/wasm-multi-memory.yml b/features/wasm-multi-memory.yml index 48c9a263d11..c33cd1f7740 100644 --- a/features/wasm-multi-memory.yml +++ b/features/wasm-multi-memory.yml @@ -1,5 +1,5 @@ -name: WebAssembly multi-memory -description: An extension to WebAssembly to allow the use of multiple memories within a single module. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Multi-memory (WebAssembly) +description: A single module in WebAssembly can have multiple memories. +spec: https://github.com/WebAssembly/multi-memory/blob/main/proposals/multi-memory/Overview.md compat_features: - webassembly.multiMemory diff --git a/features/wasm-multi-value.yml b/features/wasm-multi-value.yml index 76370d814a9..88eb47f4c9a 100644 --- a/features/wasm-multi-value.yml +++ b/features/wasm-multi-value.yml @@ -1,6 +1,6 @@ -name: WebAssembly multi-value -description: An extension to WebAssembly allowing instructions, blocks and functions to produce multiple result values. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Multi-value (WebAssembly) +description: Instructions, blocks and can produce multiple result values. +spec: https://github.com/WebAssembly/spec/blob/main/proposals/multi-value/Overview.md caniuse: wasm-multi-value compat_features: - webassembly.multi-value diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml index 962c89b9cf7..4ae86ccbfab 100644 --- a/features/wasm-mutable-globals.yml +++ b/features/wasm-mutable-globals.yml @@ -1,6 +1,6 @@ -name: WebAssembly import and export of mutable globals -description: An extension to WebAssembly for importing and exporting mutable global variables. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Import and export of mutable globals (WebAssembly) +description: Mutable global variables can be imported and exported. +spec: https://webassembly.github.io/spec/js-api/#dom-globaldescriptor-mutable caniuse: wasm-mutable-globals compat_features: - webassembly.mutable-globals diff --git a/features/wasm-non-trapping-float-to-int.yml b/features/wasm-non-trapping-float-to-int.yml index 1049e4b5e0e..4e07c05d8e2 100644 --- a/features/wasm-non-trapping-float-to-int.yml +++ b/features/wasm-non-trapping-float-to-int.yml @@ -1,6 +1,6 @@ -name: WebAssembly non-trapping float-to-int conversion -description: An extension to WebAssembly adding floating-point to integer conversion operators which saturate instead of trapping. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Non-trapping float-to-int conversion (WebAssembly) +description: Floating-point to integer conversion operators which saturate instead of trapping (on positive or negative overflow, they return the maximum or minimum integer value, respectively, and do not trap.) +spec: https://github.com/WebAssembly/spec/blob/main/proposals/nontrapping-float-to-int-conversion/Overview.md caniuse: wasm-nontrapping-fptoint compat_features: - webassembly.non-trapping-float-to-int-conversions diff --git a/features/wasm-reference-types.yml b/features/wasm-reference-types.yml index 299b444bfaf..b764b5c4ec0 100644 --- a/features/wasm-reference-types.yml +++ b/features/wasm-reference-types.yml @@ -1,6 +1,6 @@ -name: WebAssembly reference types -description: An extension to WebAssembly allowing opaque references as first-class types, and multiple tables. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Reference types (WebAssembly) +description: The `externref` type can be used as both a value types and a table element type. The `funcref`can be used as a value type. +spec: https://github.com/WebAssembly/spec/blob/main/proposals/reference-types/Overview.md caniuse: wasm-reference-types compat_features: - webassembly.reference-types diff --git a/features/wasm-sign-extension-operators.yml b/features/wasm-sign-extension-operators.yml index 2fddeeef13b..d471a8b9648 100644 --- a/features/wasm-sign-extension-operators.yml +++ b/features/wasm-sign-extension-operators.yml @@ -1,6 +1,6 @@ -name: WebAssembly sign extension operators -description: An extension to WebAssembly adding sign-extension operator instructions. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Sign extension operators (WebAssembly) +description: Sign-extension operator instructions for 8-bit, 16-bit, and 32-bit values. +spec: https://github.com/WebAssembly/spec/blob/main/proposals/sign-extension-ops/Overview.md caniuse: wasm-signext compat_features: - webassembly.sign-extension-operations diff --git a/features/wasm-simd-fixed.yml b/features/wasm-simd-fixed.yml index 9c0514bace2..c2ea34ffffc 100644 --- a/features/wasm-simd-fixed.yml +++ b/features/wasm-simd-fixed.yml @@ -1,5 +1,5 @@ -name: WebAssembly fixed width SIMD -description: An extension to WebAssembly adding 128-bit SIMD (Single Instruction Multiple Data) performing one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. +name: Fixed width SIMD (WebAssembly) +description: 128-bit SIMD (Single Instruction Multiple Data) performing one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions caniuse: wasm-simd compat_features: diff --git a/features/wasm-simd-relaxed.yml b/features/wasm-simd-relaxed.yml index cb52e02eeca..00a6a42ad85 100644 --- a/features/wasm-simd-relaxed.yml +++ b/features/wasm-simd-relaxed.yml @@ -1,5 +1,5 @@ -name: WebAssembly relaxed width SIMD -description: An extension to WebAssembly adding relaxed SIMD (Single Instruction Multiple Data) introducing local non-determinism (where the results of the instructions may vary based on hardware support). -spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions +name: Relaxed width SIMD (WebAssembly) +description: Relaxed SIMD (Single Instruction Multiple Data) introducing local non-determinism (where the results of the instructions may vary based on hardware support). +spec: https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md compat_features: - webassembly.relaxed-SIMD diff --git a/features/wasm-tail-call-optimization.yml b/features/wasm-tail-call-optimization.yml index b6496825f8a..0fe4fead378 100644 --- a/features/wasm-tail-call-optimization.yml +++ b/features/wasm-tail-call-optimization.yml @@ -1,5 +1,5 @@ -name: WebAssembly tail call optimization -description: An extension to WebAssembly to optimize tail calls by discarding the caller frame and replacing the call with a jump. -spec: https://webassembly.github.io/gc/core/bikeshed/ +name: Tail call optimization (WebAssembly) +description: Tail call optimization discards a caller frame and replaces the call with a jump instruction. +spec: https://github.com/WebAssembly/tail-call/blob/main/proposals/tail-call/Overview.md compat_features: - webassembly.tail-calls diff --git a/features/wasm-threads.yml b/features/wasm-threads.yml index 01fbc10354e..3b6aa9b1c40 100644 --- a/features/wasm-threads.yml +++ b/features/wasm-threads.yml @@ -1,6 +1,6 @@ -name: WebAssembly threads and atomics -description: An extension to WebAssembly adding shared memory and atomic memory operations. -spec: https://webassembly.github.io/threads/js-api/ +name: Threads and atomics (WebAssembly) +description: Threads in WebAssembly run code in parallel, while atomic memory instructions can guarantee that no two threads can read or write to shared memory at the same time. +spec: https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md caniuse: wasm-threads compat_features: - webassembly.api.Memory.Memory.shared diff --git a/features/wasm.yml b/features/wasm.yml index d7e197b9915..835bb58278e 100644 --- a/features/wasm.yml +++ b/features/wasm.yml @@ -1,5 +1,5 @@ name: WebAssembly -description: WebAssembly or WASM is a portable binary instruction format suitable for compilation to the web. +description: The `WebAssembly.instantiate()` and `WebAssembly.instantiateStreaming()` global static methods load WebAssembly code (also known as Wasm), a portable binary instruction format. spec: https://webassembly.github.io/gc/core/bikeshed/ caniuse: wasm status: From 546e95d4200087df84e6a367339dce7fa040cf62 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 4 Nov 2024 13:44:19 +0100 Subject: [PATCH 10/14] Add spec url exceptions --- features/wasm-mutable-globals.yml | 2 +- scripts/specs.ts | 44 +++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml index 4ae86ccbfab..89c27d1bc92 100644 --- a/features/wasm-mutable-globals.yml +++ b/features/wasm-mutable-globals.yml @@ -1,5 +1,5 @@ name: Import and export of mutable globals (WebAssembly) -description: Mutable global variables can be imported and exported. +description: Mutable global variables can be imported and exported. spec: https://webassembly.github.io/spec/js-api/#dom-globaldescriptor-mutable caniuse: wasm-mutable-globals compat_features: diff --git a/scripts/specs.ts b/scripts/specs.ts index 72eb37070d1..4574ccf7475 100644 --- a/scripts/specs.ts +++ b/scripts/specs.ts @@ -32,6 +32,50 @@ const defaultAllowlist: allowlistItem[] = [ [ "https://www.w3.org/TR/webnn/", "Allowed because this URL actually serves the same content as the Editor Draft URL, and because the ED URL is a bit verbose. See https://github.com/mdn/browser-compat-data/pull/22569#issuecomment-1992632118." + ], + [ + "https://github.com/WebAssembly/spec/blob/main/proposals/bulk-memory-operations/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/exception-handling/blob/main/proposals/exception-handling/Exceptions.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/extended-const/blob/main/proposals/extended-const/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/multi-memory/blob/main/proposals/multi-memory/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/spec/blob/main/proposals/multi-value/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/spec/blob/main/proposals/nontrapping-float-to-int-conversion/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/spec/blob/main/proposals/reference-types/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/spec/blob/main/proposals/sign-extension-ops/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/tail-call/blob/main/proposals/tail-call/Overview.md", + "Allowed because there is no other specification to link to." + ], + [ + "https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md", + "Allowed because there is no other specification to link to." ] ]; From 3266a70a8dd91b065cf2b8032e344889270f45e8 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 4 Nov 2024 13:48:29 +0100 Subject: [PATCH 11/14] Add a webassembly group --- features/wasm-bigint.yml | 1 + features/wasm-bulk-memory.yml | 1 + features/wasm-exception-handling.yml | 1 + features/wasm-extended-constant-expressions.yml | 1 + features/wasm-garbage-collection.yml | 1 + features/wasm-multi-memory.yml | 1 + features/wasm-multi-value.yml | 1 + features/wasm-mutable-globals.yml | 1 + features/wasm-non-trapping-float-to-int.yml | 1 + features/wasm-reference-types.yml | 1 + features/wasm-sign-extension-operators.yml | 1 + features/wasm-simd-fixed.yml | 1 + features/wasm-simd-relaxed.yml | 1 + features/wasm-tail-call-optimization.yml | 1 + features/wasm-threads.yml | 1 + features/wasm.yml | 1 + groups/webassembly.yml | 2 ++ 17 files changed, 18 insertions(+) create mode 100644 groups/webassembly.yml diff --git a/features/wasm-bigint.yml b/features/wasm-bigint.yml index 839123e6ed1..0372287f7fc 100644 --- a/features/wasm-bigint.yml +++ b/features/wasm-bigint.yml @@ -1,6 +1,7 @@ name: BigInt to i64 conversion (WebAssembly) description: Integer values pass bidirectionally between JavaScript and WebAssembly, converted to i64 values in WebAssembly or BigInt values in JavaScript. spec: https://webassembly.github.io/spec/js-api/#ref-for-syntax-numtype①⓪ +group: webassembly caniuse: wasm-bigint compat_features: - webassembly.BigInt-to-i64-integration diff --git a/features/wasm-bulk-memory.yml b/features/wasm-bulk-memory.yml index 254adbe4549..b9eee0754b9 100644 --- a/features/wasm-bulk-memory.yml +++ b/features/wasm-bulk-memory.yml @@ -2,5 +2,6 @@ name: Bulk memory operations (WebAssembly) description: Bulk memory operations such as `copy` and `init` similar to the native `memcpy` and `memmove` functions. spec: https://github.com/WebAssembly/spec/blob/main/proposals/bulk-memory-operations/Overview.md caniuse: wasm-bulk-memory +group: webassembly compat_features: - webassembly.bulk-memory-operations diff --git a/features/wasm-exception-handling.yml b/features/wasm-exception-handling.yml index 9dbd1bc1b89..a903136fc1a 100644 --- a/features/wasm-exception-handling.yml +++ b/features/wasm-exception-handling.yml @@ -1,6 +1,7 @@ name: Exception handling (WebAssembly) description: Exceptions break the normal control flow of execution to represent exceptional behavior, such as an error. You can respond to the exception in JavaScript code. spec: https://github.com/WebAssembly/exception-handling/blob/main/proposals/exception-handling/Exceptions.md +group: webassembly status: compute_from: webassembly.api.Exception compat_features: diff --git a/features/wasm-extended-constant-expressions.yml b/features/wasm-extended-constant-expressions.yml index 2c9155d5e60..c927c3707ff 100644 --- a/features/wasm-extended-constant-expressions.yml +++ b/features/wasm-extended-constant-expressions.yml @@ -1,5 +1,6 @@ name: Extended constant expressions (WebAssembly) description: New valid constant expressions (`i32.add`, `i32.sub`, `i32.mul`, `i64.add`, `i64.sub`, `i64.mul`). spec: https://github.com/WebAssembly/extended-const/blob/main/proposals/extended-const/Overview.md +group: webassembly compat_features: - webassembly.extended-constant-expressions diff --git a/features/wasm-garbage-collection.yml b/features/wasm-garbage-collection.yml index d8ecf8fb0ad..cfded3b5ee5 100644 --- a/features/wasm-garbage-collection.yml +++ b/features/wasm-garbage-collection.yml @@ -1,5 +1,6 @@ name: Garbage collection (WebAssembly) description: Garbage collection support in WebAssembly. spec: https://webassembly.github.io/gc/core/bikeshed/#garbage-collection① +group: webassembly compat_features: - webassembly.garbage-collection diff --git a/features/wasm-multi-memory.yml b/features/wasm-multi-memory.yml index c33cd1f7740..95fca9739ed 100644 --- a/features/wasm-multi-memory.yml +++ b/features/wasm-multi-memory.yml @@ -1,5 +1,6 @@ name: Multi-memory (WebAssembly) description: A single module in WebAssembly can have multiple memories. spec: https://github.com/WebAssembly/multi-memory/blob/main/proposals/multi-memory/Overview.md +group: webassembly compat_features: - webassembly.multiMemory diff --git a/features/wasm-multi-value.yml b/features/wasm-multi-value.yml index 88eb47f4c9a..83f9a0a6c3d 100644 --- a/features/wasm-multi-value.yml +++ b/features/wasm-multi-value.yml @@ -1,6 +1,7 @@ name: Multi-value (WebAssembly) description: Instructions, blocks and can produce multiple result values. spec: https://github.com/WebAssembly/spec/blob/main/proposals/multi-value/Overview.md +group: webassembly caniuse: wasm-multi-value compat_features: - webassembly.multi-value diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml index 89c27d1bc92..558fb5fd748 100644 --- a/features/wasm-mutable-globals.yml +++ b/features/wasm-mutable-globals.yml @@ -1,6 +1,7 @@ name: Import and export of mutable globals (WebAssembly) description: Mutable global variables can be imported and exported. spec: https://webassembly.github.io/spec/js-api/#dom-globaldescriptor-mutable +group: webassembly caniuse: wasm-mutable-globals compat_features: - webassembly.mutable-globals diff --git a/features/wasm-non-trapping-float-to-int.yml b/features/wasm-non-trapping-float-to-int.yml index 4e07c05d8e2..25463575b1a 100644 --- a/features/wasm-non-trapping-float-to-int.yml +++ b/features/wasm-non-trapping-float-to-int.yml @@ -1,6 +1,7 @@ name: Non-trapping float-to-int conversion (WebAssembly) description: Floating-point to integer conversion operators which saturate instead of trapping (on positive or negative overflow, they return the maximum or minimum integer value, respectively, and do not trap.) spec: https://github.com/WebAssembly/spec/blob/main/proposals/nontrapping-float-to-int-conversion/Overview.md +group: webassembly caniuse: wasm-nontrapping-fptoint compat_features: - webassembly.non-trapping-float-to-int-conversions diff --git a/features/wasm-reference-types.yml b/features/wasm-reference-types.yml index b764b5c4ec0..a40a6cc84da 100644 --- a/features/wasm-reference-types.yml +++ b/features/wasm-reference-types.yml @@ -1,6 +1,7 @@ name: Reference types (WebAssembly) description: The `externref` type can be used as both a value types and a table element type. The `funcref`can be used as a value type. spec: https://github.com/WebAssembly/spec/blob/main/proposals/reference-types/Overview.md +group: webassembly caniuse: wasm-reference-types compat_features: - webassembly.reference-types diff --git a/features/wasm-sign-extension-operators.yml b/features/wasm-sign-extension-operators.yml index d471a8b9648..3f2a4569b32 100644 --- a/features/wasm-sign-extension-operators.yml +++ b/features/wasm-sign-extension-operators.yml @@ -1,6 +1,7 @@ name: Sign extension operators (WebAssembly) description: Sign-extension operator instructions for 8-bit, 16-bit, and 32-bit values. spec: https://github.com/WebAssembly/spec/blob/main/proposals/sign-extension-ops/Overview.md +group: webassembly caniuse: wasm-signext compat_features: - webassembly.sign-extension-operations diff --git a/features/wasm-simd-fixed.yml b/features/wasm-simd-fixed.yml index c2ea34ffffc..7e79bff3e14 100644 --- a/features/wasm-simd-fixed.yml +++ b/features/wasm-simd-fixed.yml @@ -1,6 +1,7 @@ name: Fixed width SIMD (WebAssembly) description: 128-bit SIMD (Single Instruction Multiple Data) performing one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions +group: webassembly caniuse: wasm-simd compat_features: - webassembly.fixed-width-SIMD diff --git a/features/wasm-simd-relaxed.yml b/features/wasm-simd-relaxed.yml index 00a6a42ad85..27b7d6f652e 100644 --- a/features/wasm-simd-relaxed.yml +++ b/features/wasm-simd-relaxed.yml @@ -1,5 +1,6 @@ name: Relaxed width SIMD (WebAssembly) description: Relaxed SIMD (Single Instruction Multiple Data) introducing local non-determinism (where the results of the instructions may vary based on hardware support). spec: https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md +group: webassembly compat_features: - webassembly.relaxed-SIMD diff --git a/features/wasm-tail-call-optimization.yml b/features/wasm-tail-call-optimization.yml index 0fe4fead378..686be3b0165 100644 --- a/features/wasm-tail-call-optimization.yml +++ b/features/wasm-tail-call-optimization.yml @@ -1,5 +1,6 @@ name: Tail call optimization (WebAssembly) description: Tail call optimization discards a caller frame and replaces the call with a jump instruction. spec: https://github.com/WebAssembly/tail-call/blob/main/proposals/tail-call/Overview.md +group: webassembly compat_features: - webassembly.tail-calls diff --git a/features/wasm-threads.yml b/features/wasm-threads.yml index 3b6aa9b1c40..777ba1b9725 100644 --- a/features/wasm-threads.yml +++ b/features/wasm-threads.yml @@ -1,6 +1,7 @@ name: Threads and atomics (WebAssembly) description: Threads in WebAssembly run code in parallel, while atomic memory instructions can guarantee that no two threads can read or write to shared memory at the same time. spec: https://github.com/WebAssembly/threads/blob/main/proposals/threads/Overview.md +group: webassembly caniuse: wasm-threads compat_features: - webassembly.api.Memory.Memory.shared diff --git a/features/wasm.yml b/features/wasm.yml index 835bb58278e..07e7da4c3b3 100644 --- a/features/wasm.yml +++ b/features/wasm.yml @@ -1,6 +1,7 @@ name: WebAssembly description: The `WebAssembly.instantiate()` and `WebAssembly.instantiateStreaming()` global static methods load WebAssembly code (also known as Wasm), a portable binary instruction format. spec: https://webassembly.github.io/gc/core/bikeshed/ +group: webassembly caniuse: wasm status: compute_from: webassembly.api diff --git a/groups/webassembly.yml b/groups/webassembly.yml new file mode 100644 index 00000000000..a85d98dc3df --- /dev/null +++ b/groups/webassembly.yml @@ -0,0 +1,2 @@ +# WebAssembly or WASM features and extensions +name: WebAssembly From 74aa1bb6b043e4426e271003fa71cc7dd1eca5f2 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 5 Nov 2024 10:43:16 +0100 Subject: [PATCH 12/14] Apply suggestions from code review Co-authored-by: Daniel D. Beck --- features/wasm-bulk-memory.yml | 2 +- features/wasm-extended-constant-expressions.yml | 2 +- features/wasm-garbage-collection.yml | 2 +- features/wasm-multi-value.yml | 2 +- features/wasm-mutable-globals.yml | 2 +- features/wasm-non-trapping-float-to-int.yml | 2 +- features/wasm-reference-types.yml | 2 +- features/wasm-sign-extension-operators.yml | 2 +- features/wasm-simd-fixed.yml | 4 ++-- features/wasm-simd-relaxed.yml | 4 ++-- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/features/wasm-bulk-memory.yml b/features/wasm-bulk-memory.yml index b9eee0754b9..fbecf5487b9 100644 --- a/features/wasm-bulk-memory.yml +++ b/features/wasm-bulk-memory.yml @@ -1,5 +1,5 @@ name: Bulk memory operations (WebAssembly) -description: Bulk memory operations such as `copy` and `init` similar to the native `memcpy` and `memmove` functions. +description: Bulk memory operations, such as `copy` and `init`, mirror the efficiency of native `memcpy` and `memmove` operations. spec: https://github.com/WebAssembly/spec/blob/main/proposals/bulk-memory-operations/Overview.md caniuse: wasm-bulk-memory group: webassembly diff --git a/features/wasm-extended-constant-expressions.yml b/features/wasm-extended-constant-expressions.yml index c927c3707ff..cc283701c08 100644 --- a/features/wasm-extended-constant-expressions.yml +++ b/features/wasm-extended-constant-expressions.yml @@ -1,5 +1,5 @@ name: Extended constant expressions (WebAssembly) -description: New valid constant expressions (`i32.add`, `i32.sub`, `i32.mul`, `i64.add`, `i64.sub`, `i64.mul`). +description: The `i32.add`, `i32.sub`, `i32.mul`, `i64.add`, `i64.sub`, and `i64.mul` operations extend constant expressions to include arithmetic. spec: https://github.com/WebAssembly/extended-const/blob/main/proposals/extended-const/Overview.md group: webassembly compat_features: diff --git a/features/wasm-garbage-collection.yml b/features/wasm-garbage-collection.yml index cfded3b5ee5..07a77dae737 100644 --- a/features/wasm-garbage-collection.yml +++ b/features/wasm-garbage-collection.yml @@ -1,5 +1,5 @@ name: Garbage collection (WebAssembly) -description: Garbage collection support in WebAssembly. +description: Garbage collection tracks references for better memory management with garbage-collected languages running in WebAssmbly. spec: https://webassembly.github.io/gc/core/bikeshed/#garbage-collection① group: webassembly compat_features: diff --git a/features/wasm-multi-value.yml b/features/wasm-multi-value.yml index 83f9a0a6c3d..755b413b561 100644 --- a/features/wasm-multi-value.yml +++ b/features/wasm-multi-value.yml @@ -1,5 +1,5 @@ name: Multi-value (WebAssembly) -description: Instructions, blocks and can produce multiple result values. +description: Instructions and blocks can produce multiple result values. spec: https://github.com/WebAssembly/spec/blob/main/proposals/multi-value/Overview.md group: webassembly caniuse: wasm-multi-value diff --git a/features/wasm-mutable-globals.yml b/features/wasm-mutable-globals.yml index 558fb5fd748..a7d0794c2a2 100644 --- a/features/wasm-mutable-globals.yml +++ b/features/wasm-mutable-globals.yml @@ -1,5 +1,5 @@ name: Import and export of mutable globals (WebAssembly) -description: Mutable global variables can be imported and exported. +description: Mutable global variables are importable and exportable. spec: https://webassembly.github.io/spec/js-api/#dom-globaldescriptor-mutable group: webassembly caniuse: wasm-mutable-globals diff --git a/features/wasm-non-trapping-float-to-int.yml b/features/wasm-non-trapping-float-to-int.yml index 25463575b1a..5142857df88 100644 --- a/features/wasm-non-trapping-float-to-int.yml +++ b/features/wasm-non-trapping-float-to-int.yml @@ -1,5 +1,5 @@ name: Non-trapping float-to-int conversion (WebAssembly) -description: Floating-point to integer conversion operators which saturate instead of trapping (on positive or negative overflow, they return the maximum or minimum integer value, respectively, and do not trap.) +description: Saturating floating-point to integer conversion operators return the maximum or minimum integer value on overflow instead of trapping. spec: https://github.com/WebAssembly/spec/blob/main/proposals/nontrapping-float-to-int-conversion/Overview.md group: webassembly caniuse: wasm-nontrapping-fptoint diff --git a/features/wasm-reference-types.yml b/features/wasm-reference-types.yml index a40a6cc84da..97788bc9089 100644 --- a/features/wasm-reference-types.yml +++ b/features/wasm-reference-types.yml @@ -1,5 +1,5 @@ name: Reference types (WebAssembly) -description: The `externref` type can be used as both a value types and a table element type. The `funcref`can be used as a value type. +description: The `externref` type can be both a value type and a table element type, while `funcref` can be a value type. spec: https://github.com/WebAssembly/spec/blob/main/proposals/reference-types/Overview.md group: webassembly caniuse: wasm-reference-types diff --git a/features/wasm-sign-extension-operators.yml b/features/wasm-sign-extension-operators.yml index 3f2a4569b32..34a6c90b8ee 100644 --- a/features/wasm-sign-extension-operators.yml +++ b/features/wasm-sign-extension-operators.yml @@ -1,5 +1,5 @@ name: Sign extension operators (WebAssembly) -description: Sign-extension operator instructions for 8-bit, 16-bit, and 32-bit values. +description: Sign-extension operator instructions extend the width of 8-bit, 16-bit, and 32-bit values to 32-bit and 64-bit values. spec: https://github.com/WebAssembly/spec/blob/main/proposals/sign-extension-ops/Overview.md group: webassembly caniuse: wasm-signext diff --git a/features/wasm-simd-fixed.yml b/features/wasm-simd-fixed.yml index 7e79bff3e14..87685da762b 100644 --- a/features/wasm-simd-fixed.yml +++ b/features/wasm-simd-fixed.yml @@ -1,5 +1,5 @@ -name: Fixed width SIMD (WebAssembly) -description: 128-bit SIMD (Single Instruction Multiple Data) performing one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. +name: Fixed-width SIMD (WebAssembly) +description: 128-bit SIMD (Single Instruction Multiple Data) performs one instruction on multiple units of data, when running on hardware that supports such instructions. Also known as vector instructions. spec: https://webassembly.github.io/spec/core/bikeshed/#vector-instructions group: webassembly caniuse: wasm-simd diff --git a/features/wasm-simd-relaxed.yml b/features/wasm-simd-relaxed.yml index 27b7d6f652e..48ec19e7c3c 100644 --- a/features/wasm-simd-relaxed.yml +++ b/features/wasm-simd-relaxed.yml @@ -1,5 +1,5 @@ -name: Relaxed width SIMD (WebAssembly) -description: Relaxed SIMD (Single Instruction Multiple Data) introducing local non-determinism (where the results of the instructions may vary based on hardware support). +name: Relaxed-width SIMD (WebAssembly) +description: Relaxed SIMD (Single Instruction Multiple Data) introduces local non-determinism, where the results of the instructions may vary based on hardware support. spec: https://github.com/WebAssembly/relaxed-simd/blob/main/proposals/relaxed-simd/Overview.md group: webassembly compat_features: From 7c7bdd89358741b36d220f872ef7c40c7e5d38f7 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 5 Nov 2024 10:47:31 +0100 Subject: [PATCH 13/14] undo SIMD ID renaming --- features/{wasm-simd-fixed.yml => wasm-simd.yml} | 0 features/{wasm-simd-fixed.yml.dist => wasm-simd.yml.dist} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename features/{wasm-simd-fixed.yml => wasm-simd.yml} (100%) rename features/{wasm-simd-fixed.yml.dist => wasm-simd.yml.dist} (100%) diff --git a/features/wasm-simd-fixed.yml b/features/wasm-simd.yml similarity index 100% rename from features/wasm-simd-fixed.yml rename to features/wasm-simd.yml diff --git a/features/wasm-simd-fixed.yml.dist b/features/wasm-simd.yml.dist similarity index 100% rename from features/wasm-simd-fixed.yml.dist rename to features/wasm-simd.yml.dist From 03d2556620008063fd2b083deb0a5dfe8910004b Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Tue, 5 Nov 2024 10:51:29 +0100 Subject: [PATCH 14/14] npm run dist --- features/wasm-simd.yml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/wasm-simd.yml.dist b/features/wasm-simd.yml.dist index d1b45019607..fb6e3909d9f 100644 --- a/features/wasm-simd.yml.dist +++ b/features/wasm-simd.yml.dist @@ -1,4 +1,4 @@ -# Generated from: wasm-simd-fixed.yml +# Generated from: wasm-simd.yml # Do not edit this file by hand. Edit the source file instead! status: