From 2e16798f53f1fc1fb632263853508bf1c9b8a218 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 2 Sep 2024 13:56:28 +0200 Subject: [PATCH 1/3] Add a feature for Serializable errors --- features/serializable-errors.yml | 14 ++++++++++ features/serializable-errors.yml.dist | 39 +++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 features/serializable-errors.yml create mode 100644 features/serializable-errors.yml.dist diff --git a/features/serializable-errors.yml b/features/serializable-errors.yml new file mode 100644 index 00000000000..da5b2c72bd6 --- /dev/null +++ b/features/serializable-errors.yml @@ -0,0 +1,14 @@ +name: Serializable errors +description: "`DOMException`, `Error`, `AggregateError`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, and `URIError` are serializable (structuring cloning is possible). This allows you to pass errors from a worker using `postMessage()`." +group: javascript +spec: https://webidl.spec.whatwg.org/#idl-DOMException +compat_features: + - api.DOMException.serializable_object + - javascript.builtins.AggregateError.serializable_object + - javascript.builtins.Error.serializable_object + - javascript.builtins.EvalError.serializable_object + - javascript.builtins.RangeError.serializable_object + - javascript.builtins.ReferenceError.serializable_object + - javascript.builtins.SyntaxError.serializable_object + - javascript.builtins.TypeError.serializable_object + - javascript.builtins.URIError.serializable_object diff --git a/features/serializable-errors.yml.dist b/features/serializable-errors.yml.dist new file mode 100644 index 00000000000..fba5454a3b9 --- /dev/null +++ b/features/serializable-errors.yml.dist @@ -0,0 +1,39 @@ +# Generated from: serializable-errors.yml +# Do not edit this file by hand. Edit the source file instead! + +status: + baseline: false + support: + firefox: "103" + firefox_android: "103" +compat_features: + # baseline: false + # support: + # chrome: "77" + # chrome_android: "77" + # edge: "79" + # firefox: "101" + # firefox_android: "101" + - api.DOMException.serializable_object + + # baseline: false + # support: + # chrome: "77" + # chrome_android: "77" + # edge: "79" + # firefox: "103" + # firefox_android: "103" + - javascript.builtins.Error.serializable_object + - javascript.builtins.EvalError.serializable_object + - javascript.builtins.RangeError.serializable_object + - javascript.builtins.ReferenceError.serializable_object + - javascript.builtins.SyntaxError.serializable_object + - javascript.builtins.TypeError.serializable_object + - javascript.builtins.URIError.serializable_object + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # firefox: "103" + # firefox_android: "103" + - javascript.builtins.AggregateError.serializable_object From a92fe22e7b07c2662fb346de947c13a099a4a847 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 2 Sep 2024 14:01:32 +0200 Subject: [PATCH 2/3] Remove AggregateError --- features/serializable-errors.yml | 3 +-- features/serializable-errors.yml.dist | 11 ++++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/features/serializable-errors.yml b/features/serializable-errors.yml index da5b2c72bd6..32e3523e738 100644 --- a/features/serializable-errors.yml +++ b/features/serializable-errors.yml @@ -1,10 +1,9 @@ name: Serializable errors -description: "`DOMException`, `Error`, `AggregateError`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, and `URIError` are serializable (structuring cloning is possible). This allows you to pass errors from a worker using `postMessage()`." +description: "`DOMException`, `Error`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, and `URIError` are serializable (structuring cloning is possible). This allows you to pass errors from a worker using `postMessage()`." group: javascript spec: https://webidl.spec.whatwg.org/#idl-DOMException compat_features: - api.DOMException.serializable_object - - javascript.builtins.AggregateError.serializable_object - javascript.builtins.Error.serializable_object - javascript.builtins.EvalError.serializable_object - javascript.builtins.RangeError.serializable_object diff --git a/features/serializable-errors.yml.dist b/features/serializable-errors.yml.dist index fba5454a3b9..c759ae5f9cc 100644 --- a/features/serializable-errors.yml.dist +++ b/features/serializable-errors.yml.dist @@ -4,6 +4,9 @@ status: baseline: false support: + chrome: "77" + chrome_android: "77" + edge: "79" firefox: "103" firefox_android: "103" compat_features: @@ -16,6 +19,7 @@ compat_features: # firefox_android: "101" - api.DOMException.serializable_object + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "77" @@ -30,10 +34,3 @@ compat_features: - javascript.builtins.SyntaxError.serializable_object - javascript.builtins.TypeError.serializable_object - javascript.builtins.URIError.serializable_object - - # ⬇️ Same status as overall feature ⬇️ - # baseline: false - # support: - # firefox: "103" - # firefox_android: "103" - - javascript.builtins.AggregateError.serializable_object From f95e1473dd05375389e4ce042217c3da52723676 Mon Sep 17 00:00:00 2001 From: Florian Scholz Date: Mon, 16 Sep 2024 15:52:10 +0200 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Daniel D. Beck --- features/serializable-errors.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/features/serializable-errors.yml b/features/serializable-errors.yml index 32e3523e738..1205834a5d3 100644 --- a/features/serializable-errors.yml +++ b/features/serializable-errors.yml @@ -1,6 +1,5 @@ name: Serializable errors -description: "`DOMException`, `Error`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, and `URIError` are serializable (structuring cloning is possible). This allows you to pass errors from a worker using `postMessage()`." -group: javascript +description: "The `DOMException`, `Error`, `EvalError`, `RangeError`, `ReferenceError`, `SyntaxError`, `TypeError`, and `URIError` objects are serializable. You can call `structuredClone()` on an error object or pass it to a worker using `postMessage()`." spec: https://webidl.spec.whatwg.org/#idl-DOMException compat_features: - api.DOMException.serializable_object