Index: Source/bindings/scripts/code_generator_v8.pm |
diff --git a/Source/bindings/scripts/code_generator_v8.pm b/Source/bindings/scripts/code_generator_v8.pm |
index 6030b45d5b750c3c22d52a75b8d8ab5994d59718..c58ca980f589218a868ca85ef2fcf2691f154fa2 100644 |
--- a/Source/bindings/scripts/code_generator_v8.pm |
+++ b/Source/bindings/scripts/code_generator_v8.pm |
@@ -1294,10 +1294,12 @@ END |
} elsif ($accessType eq "Setter") { |
$code .= <<END; |
V8PerContextData* contextData = V8PerContextData::from(info.GetIsolate()->GetCurrentContext()); |
+/* |
if (contextData && contextData->activityLogger()) { |
v8::Handle<v8::Value> loggerArg[] = { jsValue }; |
contextData->activityLogger()->log("${interfaceName}.${propertyName}", 1, &loggerArg[0], "${accessType}"); |
} |
+*/ |
END |
} elsif ($accessType eq "Getter") { |
$code .= <<END; |
@@ -1317,6 +1319,7 @@ sub GenerateNormalAttributeGetterCallback |
my $attribute = shift; |
my $interface = shift; |
my $forMainWorldSuffix = shift; |
+ my $isAccessor = shift; |
my $implClassName = GetImplName($interface); |
my $v8ClassName = GetV8ClassName($interface); |
@@ -1327,7 +1330,11 @@ sub GenerateNormalAttributeGetterCallback |
my $code = ""; |
$code .= "#if ${conditionalString}\n" if $conditionalString; |
- $code .= "static void ${attrName}AttributeGetterCallback${forMainWorldSuffix}(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info)\n"; |
+ if ($isAccessor) { |
+ $code .= "static void ${attrName}AttributeGetterCallback${forMainWorldSuffix}(const v8::FunctionCallbackInfo<v8::Value>& info)\n"; |
+ } else { |
+ $code .= "static void ${attrName}AttributeGetterCallback${forMainWorldSuffix}(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info)\n"; |
+ } |
$code .= "{\n"; |
$code .= " TRACE_EVENT_SET_SAMPLING_STATE(\"Blink\", \"DOMGetter\");\n"; |
$code .= GenerateFeatureObservation($attrExt->{"MeasureAs"}); |
@@ -1336,9 +1343,17 @@ sub GenerateNormalAttributeGetterCallback |
$code .= GenerateActivityLogging("Getter", $interface, "${attrName}"); |
} |
if (HasCustomGetter($attrExt)) { |
- $code .= " ${v8ClassName}::${attrName}AttributeGetterCustom(name, info);\n"; |
+ if ($isAccessor) { |
+ $code .= " ${v8ClassName}::${attrName}AttributeGetterCustom(info);\n"; |
+ } else { |
+ $code .= " ${v8ClassName}::${attrName}AttributeGetterCustom(name, info);\n"; |
+ } |
} else { |
- $code .= " ${implClassName}V8Internal::${attrName}AttributeGetter${forMainWorldSuffix}(name, info);\n"; |
+ if ($isAccessor) { |
+ $code .= " ${implClassName}V8Internal::${attrName}AttributeGetter${forMainWorldSuffix}(info);\n"; |
+ } else { |
+ $code .= " ${implClassName}V8Internal::${attrName}AttributeGetter${forMainWorldSuffix}(name, info);\n"; |
+ } |
} |
$code .= " TRACE_EVENT_SET_SAMPLING_STATE(\"V8\", \"Execution\");\n"; |
$code .= "}\n"; |
@@ -1363,6 +1378,7 @@ sub GenerateNormalAttributeGetter |
my $attribute = shift; |
my $interface = shift; |
my $forMainWorldSuffix = shift; |
+ my $isAccessor = shift; |
my $interfaceName = $interface->name; |
my $implClassName = GetImplName($interface); |
@@ -1383,10 +1399,13 @@ sub GenerateNormalAttributeGetter |
my $conditionalString = GenerateConditionalString($attribute); |
my $code = ""; |
$code .= "#if ${conditionalString}\n" if $conditionalString; |
- $code .= <<END; |
-static void ${attrName}AttributeGetter${forMainWorldSuffix}(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info) |
-{ |
-END |
+ if ($isAccessor) { |
+ $code .= "static void ${attrName}AttributeGetter${forMainWorldSuffix}(const v8::FunctionCallbackInfo<v8::Value>& info)\n"; |
+ $code .= "{\n"; |
+ } else { |
+ $code .= "static void ${attrName}AttributeGetter${forMainWorldSuffix}(v8::Local<v8::String> name, const v8::PropertyCallbackInfo<v8::Value>& info)\n"; |
+ $code .= "{\n"; |
+ } |
if ($svgNativeType) { |
my $svgWrappedNativeType = GetSVGWrappedTypeNeedingTearOff($interfaceName); |
if ($svgWrappedNativeType =~ /List/) { |
@@ -1754,6 +1773,7 @@ sub GenerateNormalAttributeSetterCallback |
my $attribute = shift; |
my $interface = shift; |
my $forMainWorldSuffix = shift; |
+ my $isAccessor = shift; |
my $implClassName = GetImplName($interface); |
my $v8ClassName = GetV8ClassName($interface); |
@@ -1764,7 +1784,11 @@ sub GenerateNormalAttributeSetterCallback |
my $code = ""; |
$code .= "#if ${conditionalString}\n" if $conditionalString; |
- $code .= "static void ${attrName}AttributeSetterCallback${forMainWorldSuffix}(v8::Local<v8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)\n"; |
+ if ($isAccessor) { |
+ $code .= "static void ${attrName}AttributeSetterCallback${forMainWorldSuffix}(const v8::FunctionCallbackInfo<v8::Value>& info)\n"; |
+ } else { |
+ $code .= "static void ${attrName}AttributeSetterCallback${forMainWorldSuffix}(v8::Local<v8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)\n"; |
+ } |
$code .= "{\n"; |
$code .= " TRACE_EVENT_SET_SAMPLING_STATE(\"Blink\", \"DOMSetter\");\n"; |
$code .= GenerateFeatureObservation($attrExt->{"MeasureAs"}); |
@@ -1774,9 +1798,17 @@ sub GenerateNormalAttributeSetterCallback |
} |
$code .= GenerateCustomElementInvocationScopeIfNeeded($attrExt); |
if (HasCustomSetter($attribute)) { |
- $code .= " ${v8ClassName}::${attrName}AttributeSetterCustom(name, jsValue, info);\n"; |
+ if ($isAccessor) { |
+ $code .= " ${v8ClassName}::${attrName}AttributeSetterCustom(info);\n"; |
+ } else { |
+ $code .= " ${v8ClassName}::${attrName}AttributeSetterCustom(name, jsValue, info);\n"; |
+ } |
} else { |
- $code .= " ${implClassName}V8Internal::${attrName}AttributeSetter${forMainWorldSuffix}(name, jsValue, info);\n"; |
+ if ($isAccessor) { |
+ $code .= " ${implClassName}V8Internal::${attrName}AttributeSetter${forMainWorldSuffix}(info);\n"; |
+ } else { |
+ $code .= " ${implClassName}V8Internal::${attrName}AttributeSetter${forMainWorldSuffix}(name, jsValue, info);\n"; |
+ } |
} |
$code .= " TRACE_EVENT_SET_SAMPLING_STATE(\"V8\", \"Execution\");\n"; |
$code .= "}\n"; |
@@ -1802,6 +1834,7 @@ sub GenerateNormalAttributeSetter |
my $attribute = shift; |
my $interface = shift; |
my $forMainWorldSuffix = shift; |
+ my $isAccessor = shift; |
my $interfaceName = $interface->name; |
my $implClassName = GetImplName($interface); |
@@ -1818,8 +1851,14 @@ sub GenerateNormalAttributeSetter |
my $conditionalString = GenerateConditionalString($attribute); |
my $code = ""; |
$code .= "#if ${conditionalString}\n" if $conditionalString; |
- $code .= "static void ${attrName}AttributeSetter${forMainWorldSuffix}(v8::Local<v8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)\n"; |
- $code .= "{\n"; |
+ if ($isAccessor) { |
+ $code .= "static void ${attrName}AttributeSetter${forMainWorldSuffix}(const v8::FunctionCallbackInfo<v8::Value>& info)\n"; |
+ $code .= "{\n"; |
+ $code .= " v8::Local<v8::Value> jsValue = info[0];\n"; |
+ } else { |
+ $code .= "static void ${attrName}AttributeSetter${forMainWorldSuffix}(v8::Local<v8::String> name, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<void>& info)\n"; |
+ $code .= "{\n"; |
+ } |
# If the "StrictTypeChecking" extended attribute is present, and the attribute's type is an |
# interface type, then if the incoming value does not implement that interface, a TypeError is |
@@ -3015,13 +3054,14 @@ sub GenerateAttributeConfigurationArray |
{ |
my $interface = shift; |
my $attributes = shift; |
+ my $isAccessor = shift; |
my $code = ""; |
foreach my $attribute (@$attributes) { |
my $conditionalString = GenerateConditionalString($attribute); |
my $subCode = ""; |
$subCode .= "#if ${conditionalString}\n" if $conditionalString; |
- $subCode .= GenerateAttributeConfiguration($interface, $attribute, ",", ""); |
+ $subCode .= GenerateAttributeConfiguration($interface, $attribute, ",", "", $isAccessor); |
$subCode .= "#endif // ${conditionalString}\n" if $conditionalString; |
$code .= $subCode; |
} |
@@ -3032,6 +3072,7 @@ sub GenerateAttributeConfigurationParameters |
{ |
my $interface = shift; |
my $attribute = shift; |
+ my $isAccessor = shift; |
my $attrName = $attribute->name; |
my $attrExt = $attribute->extendedAttributes; |
my $implClassName = GetImplName($interface); |
@@ -3079,7 +3120,7 @@ sub GenerateAttributeConfigurationParameters |
@propAttributeList = ("v8::None") unless @propAttributeList; |
my $propAttribute = join(" | ", @propAttributeList); |
- my $on_proto = "0 /* on instance */"; |
+ my $onPrototype = "0 /* on instance */"; |
my $data = "0"; # no data |
# Constructor |
@@ -3118,7 +3159,7 @@ sub GenerateAttributeConfigurationParameters |
# An accessor can be installed on the proto |
if ($attrExt->{"OnProto"}) { |
- $on_proto = "1 /* on proto */"; |
+ $onPrototype = "1 /* on proto */"; |
} |
if (!$attrExt->{"PerWorldBindings"}) { |
@@ -3126,7 +3167,7 @@ sub GenerateAttributeConfigurationParameters |
$setterForMainWorld = "0"; |
} |
- return ($attrName, $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, "static_cast<v8::PropertyAttribute>($propAttribute)", $on_proto); |
+ return ($attrName, $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, "static_cast<v8::PropertyAttribute>($propAttribute)", $onPrototype); |
} |
sub GenerateAttributeConfiguration |
@@ -3135,11 +3176,16 @@ sub GenerateAttributeConfiguration |
my $attribute = shift; |
my $delimiter = shift; |
my $indent = shift; |
+ my $isAccessor = shift; |
my $code = ""; |
- my ($attrName, $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute, $on_proto) = GenerateAttributeConfigurationParameters($interface, $attribute); |
+ my ($attrName, $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute, $onPrototype) = GenerateAttributeConfigurationParameters($interface, $attribute, $isAccessor); |
- $code .= $indent . " {\"$attrName\", $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute, $on_proto}" . $delimiter . "\n"; |
+ if ($isAccessor) { |
+ $code .= $indent . " {\"$attrName\", $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute}" . $delimiter . "\n"; |
+ } else { |
+ $code .= $indent . " {\"$attrName\", $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute, $onPrototype}" . $delimiter . "\n"; |
+ } |
return $code; |
} |
@@ -3150,7 +3196,7 @@ sub GenerateStaticAttribute |
my $attrExt = $attribute->extendedAttributes; |
my $code = ""; |
- my ($attrName, $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute, $on_proto) = GenerateAttributeConfigurationParameters($interface, $attribute); |
+ my ($attrName, $getter, $setter, $getterForMainWorld, $setterForMainWorld, $data, $accessControl, $propAttribute, $onPrototype) = GenerateAttributeConfigurationParameters($interface, $attribute); |
die "Static attributes do not support optimized getters or setters for the main world" if $getterForMainWorld || $setterForMainWorld; |
@@ -4082,16 +4128,17 @@ END |
$hasReplaceable = 1; |
} |
+ my $isAccessor = $attrExt->{"ExposeV8GetterAndSetter"}; |
my @worldSuffixes = (""); |
if ($attrExt->{"PerWorldBindings"}) { |
push(@worldSuffixes, "ForMainWorld"); |
} |
foreach my $worldSuffix (@worldSuffixes) { |
- GenerateNormalAttributeGetter($attribute, $interface, $worldSuffix); |
- GenerateNormalAttributeGetterCallback($attribute, $interface, $worldSuffix); |
+ GenerateNormalAttributeGetter($attribute, $interface, $worldSuffix, $isAccessor); |
+ GenerateNormalAttributeGetterCallback($attribute, $interface, $worldSuffix, $isAccessor); |
if (!$isReplaceable && !IsReadonly($attribute)) { |
- GenerateNormalAttributeSetter($attribute, $interface, $worldSuffix); |
- GenerateNormalAttributeSetterCallback($attribute, $interface, $worldSuffix); |
+ GenerateNormalAttributeSetter($attribute, $interface, $worldSuffix, $isAccessor); |
+ GenerateNormalAttributeSetterCallback($attribute, $interface, $worldSuffix, $isAccessor); |
} |
} |
} |
@@ -4185,17 +4232,22 @@ END |
my @runtimeEnabledAttributes; |
my @perContextEnabledAttributes; |
my @normalAttributes; |
+ my @normalAccessors; |
my @staticAttributes; |
foreach my $attribute (@$attributes) { |
- |
if ($attribute->isStatic) { |
push(@staticAttributes, $attribute); |
} elsif ($interfaceName eq "Window" && $attribute->extendedAttributes->{"Unforgeable"}) { |
push(@disallowsShadowing, $attribute); |
- } elsif ($attribute->extendedAttributes->{"PerContextEnabled"}) { |
- push(@perContextEnabledAttributes, $attribute); |
- } elsif ($attribute->extendedAttributes->{"RuntimeEnabled"}) { |
- push(@runtimeEnabledAttributes, $attribute); |
+ } elsif ($attribute->extendedAttributes->{"RuntimeEnabled"} || $attribute->extendedAttributes->{"PerContextEnabled"}) { |
+ if ($attribute->extendedAttributes->{"PerContextEnabled"}) { |
+ push(@perContextEnabledAttributes, $attribute); |
+ } |
+ if ($attribute->extendedAttributes->{"RuntimeEnabled"}) { |
+ push(@runtimeEnabledAttributes, $attribute); |
+ } |
+ } elsif ($attribute->extendedAttributes->{"ExposeV8GetterAndSetter"}) { |
+ push(@normalAccessors, $attribute); |
} else { |
push(@normalAttributes, $attribute); |
} |
@@ -4210,9 +4262,9 @@ END |
$implementation{nameSpaceWebCore}->add($code); |
} |
- my $has_attributes = 0; |
+ my $hasAttributes = 0; |
if (@normalAttributes) { |
- $has_attributes = 1; |
+ $hasAttributes = 1; |
my $code = ""; |
$code .= "static const V8DOMConfiguration::AttributeConfiguration ${v8ClassName}Attributes[] = {\n"; |
$code .= GenerateAttributeConfigurationArray($interface, \@normalAttributes); |
@@ -4220,9 +4272,18 @@ END |
$implementation{nameSpaceWebCore}->add($code); |
} |
+ my $hasAccessors = 0; |
+ if (@normalAccessors) { |
+ $hasAccessors = 1; |
+ my $code = ""; |
+ $code .= "static const V8DOMConfiguration::AccessorConfiguration ${v8ClassName}Accessors[] = {\n"; |
+ $code .= GenerateAttributeConfigurationArray($interface, \@normalAccessors, "accessor"); |
+ $code .= "};\n\n"; |
+ $implementation{nameSpaceWebCore}->add($code); |
+ } |
+ |
# Setup table of standard callback functions |
- my $num_callbacks = 0; |
- my $has_callbacks = 0; |
+ my $hasMethods = 0; |
$code = ""; |
foreach my $function (@normalFunctions) { |
# Only one table entry is needed for overloaded methods: |
@@ -4230,8 +4291,8 @@ END |
# Don't put any nonstandard functions into this table: |
next if !IsStandardFunction($interface, $function); |
next if $function->name eq ""; |
- if (!$has_callbacks) { |
- $has_callbacks = 1; |
+ if (!$hasMethods) { |
+ $hasMethods = 1; |
$code .= "static const V8DOMConfiguration::MethodConfiguration ${v8ClassName}Methods[] = {\n"; |
} |
my $name = $function->name; |
@@ -4246,14 +4307,13 @@ END |
{"$name", ${implClassName}V8Internal::${name}MethodCallback, ${methodForMainWorld}, ${functionLength}}, |
END |
$code .= "#endif // ${conditionalString}\n" if $conditionalString; |
- $num_callbacks++; |
} |
- $code .= "};\n\n" if $has_callbacks; |
+ $code .= "};\n\n" if $hasMethods; |
$implementation{nameSpaceWebCore}->add($code); |
- my $has_constants = 0; |
+ my $hasConstants = 0; |
if (@{$interface->constants}) { |
- $has_constants = 1; |
+ $hasConstants = 1; |
} |
if (!HasCustomConstructor($interface)) { |
@@ -4269,9 +4329,9 @@ END |
GenerateConstructorCallback($interface); |
} |
- my $access_check = ""; |
+ my $accessCheck = ""; |
if ($interface->extendedAttributes->{"CheckSecurity"} && $interfaceName ne "Window") { |
- $access_check = "instance->SetAccessCheckCallbacks(${implClassName}V8Internal::namedSecurityCheck, ${implClassName}V8Internal::indexedSecurityCheck, v8::External::New(const_cast<WrapperTypeInfo*>(&${v8ClassName}::wrapperTypeInfo)));"; |
+ $accessCheck = "instance->SetAccessCheckCallbacks(${implClassName}V8Internal::namedSecurityCheck, ${implClassName}V8Internal::indexedSecurityCheck, v8::External::New(const_cast<WrapperTypeInfo*>(&${v8ClassName}::wrapperTypeInfo)));"; |
} |
# For the Window interface, generate the shadow object template |
@@ -4301,37 +4361,22 @@ static v8::Handle<v8::FunctionTemplate> Configure${v8ClassName}Template(v8::Hand |
v8::Local<v8::Signature> defaultSignature; |
END |
+ |
+ # Define constants, attributes, accessors and methods. |
if ($interface->extendedAttributes->{"RuntimeEnabled"}) { |
my $runtimeEnabledFunction = GetRuntimeEnabledFunctionName($interface); |
$code .= <<END; |
if (!${runtimeEnabledFunction}()) |
- defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, \"\", $parentClassTemplate, ${v8ClassName}::internalFieldCount, 0, 0, 0, 0, isolate, currentWorldType); |
+ defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, \"\", $parentClassTemplate, ${v8ClassName}::internalFieldCount, 0, 0, 0, 0, 0, 0, isolate, currentWorldType); |
else |
END |
} |
- $code .= <<END; |
- defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, \"${interfaceName}\", $parentClassTemplate, ${v8ClassName}::internalFieldCount, |
-END |
- # Set up our attributes if we have them |
- if ($has_attributes) { |
- $code .= <<END; |
- ${v8ClassName}Attributes, WTF_ARRAY_LENGTH(${v8ClassName}Attributes), |
-END |
- } else { |
- $code .= <<END; |
- 0, 0, |
-END |
- } |
+ $code .= " defaultSignature = V8DOMConfiguration::installDOMClassTemplate(desc, \"${interfaceName}\", $parentClassTemplate, ${v8ClassName}::internalFieldCount, "; |
- if ($has_callbacks) { |
- $code .= <<END; |
- ${v8ClassName}Methods, WTF_ARRAY_LENGTH(${v8ClassName}Methods), isolate, currentWorldType); |
-END |
- } else { |
- $code .= <<END; |
- 0, 0, isolate, currentWorldType); |
-END |
- } |
+ $code .= $hasAttributes ? "${v8ClassName}Attributes, WTF_ARRAY_LENGTH(${v8ClassName}Attributes), " : "0, 0, "; |
+ $code .= $hasAccessors ? "${v8ClassName}Accessors, WTF_ARRAY_LENGTH(${v8ClassName}Accessors), " : "0, 0, "; |
+ $code .= $hasMethods ? "${v8ClassName}Methods, WTF_ARRAY_LENGTH(${v8ClassName}Methods), " : "0, 0, "; |
+ $code .= "isolate, currentWorldType);\n"; |
AddToImplIncludes("wtf/UnusedParam.h"); |
$code .= <<END; |
@@ -4344,7 +4389,7 @@ END |
$code .= " desc->SetLength(${interfaceLength});\n"; |
} |
- if ($access_check or @runtimeEnabledAttributes or @normalFunctions or $has_constants) { |
+ if ($accessCheck or @runtimeEnabledAttributes or @normalFunctions or $hasConstants) { |
$code .= <<END; |
v8::Local<v8::ObjectTemplate> instance = desc->InstanceTemplate(); |
v8::Local<v8::ObjectTemplate> proto = desc->PrototypeTemplate(); |
@@ -4353,18 +4398,18 @@ END |
END |
} |
- if ($access_check) { |
- $code .= " $access_check\n"; |
+ if ($accessCheck) { |
+ $code .= " $accessCheck\n"; |
} |
- # Setup the enable-at-runtime attributes if we have them |
- foreach my $runtime_attr (@runtimeEnabledAttributes) { |
- my $runtimeEnabledFunction = GetRuntimeEnabledFunctionName($runtime_attr); |
- my $conditionalString = GenerateConditionalString($runtime_attr); |
- $code .= "#if ${conditionalString}\n" if $conditionalString; |
+ # Define enable-at-runtime attributes. |
+ foreach my $runtimeAttribute (@runtimeEnabledAttributes) { |
+ my $runtimeEnabledFunction = GetRuntimeEnabledFunctionName($runtimeAttribute); |
+ my $conditionalString = GenerateConditionalString($runtimeAttribute); |
+ $code .= "\n#if ${conditionalString}\n" if $conditionalString; |
$code .= " if (${runtimeEnabledFunction}()) {\n"; |
$code .= " static const V8DOMConfiguration::AttributeConfiguration attributeConfiguration =\\\n"; |
- $code .= GenerateAttributeConfiguration($interface, $runtime_attr, ";", " "); |
+ $code .= GenerateAttributeConfiguration($interface, $runtimeAttribute, ";", " "); |
$code .= <<END; |
V8DOMConfiguration::installAttribute(instance, proto, attributeConfiguration, isolate, currentWorldType); |
} |
@@ -4373,7 +4418,8 @@ END |
} |
my @constantsEnabledAtRuntime; |
- if ($has_constants) { |
+ if ($hasConstants) { |
+ # Define constants. |
$code .= " static const V8DOMConfiguration::ConstantConfiguration ${v8ClassName}Constants[] = {\n"; |
foreach my $constant (@{$interface->constants}) { |
my $name = $constant->name; |
@@ -4396,11 +4442,11 @@ END |
$code .= <<END; |
V8DOMConfiguration::installConstants(desc, proto, ${v8ClassName}Constants, WTF_ARRAY_LENGTH(${v8ClassName}Constants), isolate); |
END |
- # Setup the enable-at-runtime constants if we have them |
- foreach my $runtime_const (@constantsEnabledAtRuntime) { |
- my $runtimeEnabledFunction = GetRuntimeEnabledFunctionName($runtime_const); |
- my $name = $runtime_const->name; |
- my $value = $runtime_const->value; |
+ # Define enable-at-runtime constants. |
+ foreach my $runtimeConstant (@constantsEnabledAtRuntime) { |
+ my $runtimeEnabledFunction = GetRuntimeEnabledFunctionName($runtimeConstant); |
+ my $name = $runtimeConstant->name; |
+ my $value = $runtimeConstant->value; |
$code .= " if (${runtimeEnabledFunction}()) {\n"; |
$code .= <<END; |
static const V8DOMConfiguration::ConstantConfiguration constantConfiguration = {"${name}", static_cast<signed int>(${value})}; |
@@ -4416,21 +4462,16 @@ END |
$code .= GenerateImplementationLegacyCall($interface); |
$code .= GenerateImplementationMasqueradesAsUndefined($interface); |
- # Define our functions with Set() or SetAccessor() |
- my $total_functions = 0; |
+ # Define methods. |
foreach my $function (@normalFunctions) { |
# Only one accessor is needed for overloaded methods: |
next if $function->{overloadIndex} > 1; |
next if $function->name eq ""; |
- $total_functions++; |
next if IsStandardFunction($interface, $function); |
$code .= GenerateNonStandardFunction($interface, $function); |
- $num_callbacks++; |
} |
- die "Wrong number of callbacks generated for $interfaceName ($num_callbacks, should be $total_functions)" if $num_callbacks != $total_functions; |
- |
# Define static attributes. |
foreach my $attribute (@staticAttributes) { |
$code .= GenerateStaticAttribute($interface, $attribute); |
@@ -4507,7 +4548,7 @@ void ${v8ClassName}::installPerContextEnabledProperties(v8::Handle<v8::Object> i |
v8::Local<v8::Object> proto = v8::Local<v8::Object>::Cast(instance->GetPrototype()); |
END |
- # Setup the enable-by-settings attributes if we have them |
+ # Define the enable-per-context attributes. |
foreach my $perContextEnabledAttribute (@perContextEnabledAttributes) { |
my $contextEnabledFunction = GetContextEnabledFunctionName($perContextEnabledAttribute); |
$code .= " if (${contextEnabledFunction}(impl->document())) {\n"; |
@@ -4533,7 +4574,7 @@ void ${v8ClassName}::installPerContextEnabledPrototypeProperties(v8::Handle<v8:: |
{ |
UNUSED_PARAM(proto); |
END |
- # Setup the enable-by-settings functions if we have them |
+ # Define enable-per-context methods. |
$code .= <<END; |
v8::Local<v8::Signature> defaultSignature = v8::Signature::New(GetTemplate(isolate, worldType(isolate))); |
UNUSED_PARAM(defaultSignature); |