aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno.d@partner.samsung.com>2014-12-23 13:39:42 +0100
committerMs2ger <ms2ger@gmail.com>2014-12-23 14:22:30 +0100
commitade0b7be8ea6fa46af6498eb8e9a22b76792a54b (patch)
tree738d6e1309f2304b6c0c2d5652e900cf8db1697e /components/script/dom/bindings/codegen
parentc82eb3b1a450c4b7021e4d35d640b631f85ca39c (diff)
downloadservo-ade0b7be8ea6fa46af6498eb8e9a22b76792a54b.tar.gz
servo-ade0b7be8ea6fa46af6498eb8e9a22b76792a54b.zip
Use the custom defineProperty trap when it exists.
Diffstat (limited to 'components/script/dom/bindings/codegen')
-rw-r--r--components/script/dom/bindings/codegen/CodegenRust.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py
index 35e3a05d2d0..8fee5cae6a5 100644
--- a/components/script/dom/bindings/codegen/CodegenRust.py
+++ b/components/script/dom/bindings/codegen/CodegenRust.py
@@ -2086,11 +2086,14 @@ class CGDefineProxyHandler(CGAbstractMethod):
return CGAbstractMethod.define(self)
def definition_body(self):
+ customDefineProperty = 'defineProperty_'
+ if self.descriptor.operations['IndexedSetter'] or self.descriptor.operations['NamedSetter']:
+ customDefineProperty = 'defineProperty'
body = """\
let traps = ProxyTraps {
getPropertyDescriptor: Some(getPropertyDescriptor),
getOwnPropertyDescriptor: Some(getOwnPropertyDescriptor),
- defineProperty: Some(defineProperty_),
+ defineProperty: Some(%s),
getOwnPropertyNames: ptr::null(),
delete_: Some(delete_),
enumerate: ptr::null(),
@@ -2120,7 +2123,7 @@ let traps = ProxyTraps {
};
CreateProxyHandler(&traps, &Class as *const _ as *const _)
-""" % (FINALIZE_HOOK_NAME,
+""" % (customDefineProperty, FINALIZE_HOOK_NAME,
TRACE_HOOK_NAME)
return CGGeneric(body)