From 84ae98242e7430eca318cb21d60f9f3be3bc04b0 Mon Sep 17 00:00:00 2001 From: Pete LePage Date: Tue, 20 Aug 2024 12:56:37 -0400 Subject: [PATCH] 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} | 63 +++++++++---------- 36 files changed, 352 insertions(+), 116 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} (68%) 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 dc18c540faa..00000000000 --- a/features/draft/spec/wasm-core-2-fork-gc.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-08-19 -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 b2ace985de6..00000000000 --- a/features/draft/spec/wasm-js-api-2-fork-exception-handling.yml +++ /dev/null @@ -1,12 +0,0 @@ -draft_date: 2024-08-19 -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 a07715497b8..00000000000 --- a/features/draft/spec/wasm-js-api-2-fork-threads.yml +++ /dev/null @@ -1,6 +0,0 @@ -draft_date: 2024-08-19 -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 fcfdbf249c7..00000000000 --- a/features/draft/spec/wasm-web-api-2.yml +++ /dev/null @@ -1,7 +0,0 @@ -draft_date: 2024-08-19 -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 03c6154be38..6171f4bee4d 100644 --- a/features/draft/spec/wasm-js-api-2.yml +++ b/features/wasm.yml @@ -1,39 +1,40 @@ -draft_date: 2024-08-19 -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 68% rename from features/draft/spec/wasm-js-api-2.yml.dist rename to features/wasm.yml.dist index e3875600a67..ded206998e2 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 @@ -71,28 +70,28 @@ compat_features: - webassembly.api.Global.valueOf # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 + # baseline_low_date: 2021-09-20 + # baseline_high_date: 2024-03-20 # support: - # chrome: ≤80 - # chrome_android: "80" - # edge: ≤80 - # firefox: ≤72 - # firefox_android: "79" - # 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: 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