summaryrefslogtreecommitdiffstats
path: root/webkit/port/bindings
diff options
context:
space:
mode:
authorericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-17 21:23:56 +0000
committerericroman@google.com <ericroman@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-04-17 21:23:56 +0000
commitd61b508b17797ab48dbbf181d2cc5b2604cc8bad (patch)
tree4f6d312033863acbb9ee90409140eeb941e6f41d /webkit/port/bindings
parenta81542053c0652efa66cc13634946582732273b4 (diff)
downloadchromium_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.pm8
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";