aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings
diff options
context:
space:
mode:
authorAkash Pateria <pateria.akash77@gmail.com>2024-10-01 17:34:35 -0700
committerGitHub <noreply@github.com>2024-10-02 00:34:35 +0000
commitc76524e63bee4c00f7b3be26c021e314526f8b3a (patch)
tree4b48003203d73b41862f37fc0c25f7d13b1d8e9d /components/script/dom/bindings
parentf3e61885023c9ebd0e0505ba5663f74bea546043 (diff)
downloadservo-c76524e63bee4c00f7b3be26c021e314526f8b3a.tar.gz
servo-c76524e63bee4c00f7b3be26c021e314526f8b3a.zip
Fix panic in webstorage/symbol-props.window.js (#33108)
Issue: https://github.com/servo/servo/issues/32987 Signed-off-by: Akash Pateria <pateria.akash77@gmail.com>
Diffstat (limited to 'components/script/dom/bindings')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 78e9588877e..86dafdddd29 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -5563,6 +5563,22 @@ class CGProxyNamedDeleter(CGProxyNamedOperation):
def __init__(self, descriptor):
CGProxySpecialOperation.__init__(self, descriptor, 'NamedDeleter')
+ def define(self):
+ # Our first argument is the id we're getting.
+ argName = self.arguments[0].identifier.name
+ return ("if !id.is_symbol() {\n"
+ f' let {argName} = match jsid_to_string(*cx, Handle::from_raw(id)) {{\n'
+ " Some(val) => val,\n"
+ " None => {\n"
+ " throw_type_error(*cx, \"Not a string-convertible JSID\");\n"
+ " return false;\n"
+ " }\n"
+ " };\n"
+ " let this = UnwrapProxy(proxy);\n"
+ " let this = &*this;\n"
+ f" {CGProxySpecialOperation.define(self)}"
+ "}\n")
+
class CGProxyUnwrap(CGAbstractMethod):
def __init__(self, descriptor):