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): diff --git a/tests/wpt/meta/webstorage/symbol-props.window.js.ini b/tests/wpt/meta/webstorage/symbol-props.window.js.ini index 5b87ea15f62..bc20460625b 100644 --- a/tests/wpt/meta/webstorage/symbol-props.window.js.ini +++ b/tests/wpt/meta/webstorage/symbol-props.window.js.ini @@ -1,2 +1,6 @@ [symbol-props.window.html] - expected: CRASH + [localStorage: defineProperty not configurable] + expected: FAIL + + [sessionStorage: defineProperty not configurable] + expected: FAIL