diff options
author | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-17 21:23:56 +0000 |
---|---|---|
committer | ericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-17 21:23:56 +0000 |
commit | d61b508b17797ab48dbbf181d2cc5b2604cc8bad (patch) | |
tree | 4f6d312033863acbb9ee90409140eeb941e6f41d /webkit/port/bindings | |
parent | a81542053c0652efa66cc13634946582732273b4 (diff) | |
download | chromium_src-d61b508b17797ab48dbbf181d2cc5b2604cc8bad.zip chromium_src-d61b508b17797ab48dbbf181d2cc5b2604cc8bad.tar.gz chromium_src-d61b508b17797ab48dbbf181d2cc5b2604cc8bad.tar.bz2 |
Quickfix to the v8 code generator to properly handle combination of "CustomGetter" + "Replaceable".
Review URL: http://codereview.chromium.org/67261
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13968 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port/bindings')
-rw-r--r-- | webkit/port/bindings/scripts/CodeGeneratorV8.pm | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/webkit/port/bindings/scripts/CodeGeneratorV8.pm b/webkit/port/bindings/scripts/CodeGeneratorV8.pm index 94a4ec4..1474888 100644 --- a/webkit/port/bindings/scripts/CodeGeneratorV8.pm +++ b/webkit/port/bindings/scripts/CodeGeneratorV8.pm @@ -923,6 +923,7 @@ sub GenerateBatchedAttributeData my $getter; my $setter; my $propAttr = "v8::None"; + my $hasCustomSetter = 0; # Check attributes. if ($attrExt->{"DontEnum"}) { @@ -970,11 +971,13 @@ sub GenerateBatchedAttributeData $setter = "0"; $propAttr = "v8::ReadOnly"; } else { + $hasCustomSetter = 1; $setter = "V8Custom::v8${customAccessor}AccessorSetter"; } # Custom Setter } elsif ($attrExt->{"CustomSetter"} || $attrExt->{"V8CustomSetter"}) { + $hasCustomSetter = 1; $getter = "${interfaceName}Internal::${attrName}AttrGetter"; $setter = "V8Custom::v8${customAccessor}AccessorSetter"; @@ -996,6 +999,11 @@ sub GenerateBatchedAttributeData $setter = "${interfaceName}Internal::${attrName}AttrSetter"; } + if ($attrExt->{"Replaceable"} && !$hasCustomSetter) { + $setter = "0"; + $propAttr .= "|v8::ReadOnly"; + } + # Read only attributes if ($attribute->type =~ /^readonly/ || $attrExt->{"V8ReadOnly"}) { $setter = "0"; |