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 ec6302f779373588a4dedb74d686b780cc20d97c..dd1072a0234c146775be32341f18854c2ddf4448 100644 |
--- a/Source/bindings/scripts/code_generator_v8.pm |
+++ b/Source/bindings/scripts/code_generator_v8.pm |
@@ -1908,7 +1908,7 @@ END |
$code .= " return;\n"; |
} |
} else { |
- $code .= JSValueToNativeStatement($attribute->type, $attribute->extendedAttributes, "jsValue", "cppValue", " ", "info.GetIsolate()"); |
+ $code .= JSValueToNativeStatement($attribute->type, $attribute->extendedAttributes, 0, "jsValue", "cppValue", " ", "info.GetIsolate()"); |
Mike West
2013/10/24 07:08:54
Is this argument 0-based, or 1-based? It looks lik
sof
2013/10/24 21:16:41
This is in the context of a setter; made less magi
|
} |
if (IsEnumType($attrType)) { |
@@ -2503,7 +2503,7 @@ sub GenerateParametersCheck |
$parameterCheckString .= " bool ${parameterName}IsNull = $jsValue->IsNull();\n"; |
$stringResourceParameterName .= "StringResource"; |
} |
- $parameterCheckString .= JSValueToNativeStatement($parameter->type, $parameter->extendedAttributes, $jsValue, $stringResourceParameterName, " ", "args.GetIsolate()"); |
+ $parameterCheckString .= JSValueToNativeStatement($parameter->type, $parameter->extendedAttributes, $humanFriendlyIndex, $jsValue, $stringResourceParameterName, " ", "args.GetIsolate()"); |
$parameterCheckString .= " String $parameterName = $stringResourceParameterName;\n" if $isNullable; |
if (IsEnumType($parameter->type)) { |
my @enumValues = ValidEnumValues($parameter->type); |
@@ -2539,7 +2539,7 @@ sub GenerateParametersCheck |
my $jsValue = $parameter->isOptional && $default eq "NullString" ? "argumentOrNull(args, $paramIndex)" : "args[$paramIndex]"; |
my $isNullable = $parameter->isNullable && !IsRefPtrType($parameter->type); |
$parameterCheckString .= " bool ${parameterName}IsNull = $jsValue->IsNull();\n" if $isNullable; |
- $parameterCheckString .= JSValueToNativeStatement($parameter->type, $parameter->extendedAttributes, $jsValue, $parameterName, " ", "args.GetIsolate()"); |
+ $parameterCheckString .= JSValueToNativeStatement($parameter->type, $parameter->extendedAttributes, $humanFriendlyIndex, $jsValue, $parameterName, " ", "args.GetIsolate()"); |
if ($nativeType eq 'Dictionary' or $nativeType eq 'ScriptPromise') { |
$parameterCheckString .= " if (!$parameterName.isUndefinedOrNull() && !$parameterName.isObject()) {\n"; |
if ($functionName eq "Constructor") { |
@@ -3502,7 +3502,7 @@ sub GenerateImplementationIndexedPropertySetter |
my $code = "static void indexedPropertySetter(uint32_t index, v8::Local<v8::Value> jsValue, const v8::PropertyCallbackInfo<v8::Value>& info)\n"; |
$code .= "{\n"; |
$code .= " ${implClassName}* collection = ${v8ClassName}::toNative(info.Holder());\n"; |
- $code .= JSValueToNativeStatement($indexedSetterFunction->parameters->[1]->type, $indexedSetterFunction->extendedAttributes, "jsValue", "propertyValue", " ", "info.GetIsolate()"); |
+ $code .= JSValueToNativeStatement($indexedSetterFunction->parameters->[1]->type, $indexedSetterFunction->extendedAttributes, 0, "jsValue", "propertyValue", " ", "info.GetIsolate()"); |
my $extraArguments = ""; |
if ($raisesExceptions) { |
@@ -3813,8 +3813,8 @@ sub GenerateImplementationNamedPropertySetter |
$code .= " return;\n"; |
} |
$code .= " ${implClassName}* collection = ${v8ClassName}::toNative(info.Holder());\n"; |
- $code .= JSValueToNativeStatement($namedSetterFunction->parameters->[0]->type, $namedSetterFunction->extendedAttributes, "name", "propertyName", " ", "info.GetIsolate()"); |
- $code .= JSValueToNativeStatement($namedSetterFunction->parameters->[1]->type, $namedSetterFunction->extendedAttributes, "jsValue", "propertyValue", " ", "info.GetIsolate()"); |
+ $code .= JSValueToNativeStatement($namedSetterFunction->parameters->[0]->type, $namedSetterFunction->extendedAttributes, 0, "name", "propertyName", " ", "info.GetIsolate()"); |
+ $code .= JSValueToNativeStatement($namedSetterFunction->parameters->[1]->type, $namedSetterFunction->extendedAttributes, 0, "jsValue", "propertyValue", " ", "info.GetIsolate()"); |
my $extraArguments = ""; |
if ($raisesExceptions) { |
$code .= " ExceptionState es(info.GetIsolate());\n"; |
@@ -5246,13 +5246,14 @@ sub JSValueToNativeStatement |
{ |
my $type = shift; |
my $extendedAttributes = shift; |
+ my $argIndex = shift; |
my $jsValue = shift; |
my $variableName = shift; |
my $indent = shift; |
my $getIsolate = shift; |
my $nativeType = GetNativeType($type, $extendedAttributes, "parameter"); |
- my $native_value = JSValueToNative($type, $extendedAttributes, $jsValue, $getIsolate); |
+ my $native_value = JSValueToNative($type, $extendedAttributes, $argIndex, $jsValue, $getIsolate); |
my $code = ""; |
if ($type eq "DOMString" || IsEnumType($type)) { |
die "Wrong native type passed: $nativeType" unless $nativeType =~ /^V8StringResource/; |
@@ -5274,6 +5275,7 @@ sub JSValueToNative |
{ |
my $type = shift; |
my $extendedAttributes = shift; |
+ my $argIndex = shift; |
my $value = shift; |
my $getIsolate = shift; |
@@ -5352,9 +5354,9 @@ sub JSValueToNative |
if ($arrayOrSequenceType) { |
if (IsRefPtrType($arrayOrSequenceType)) { |
AddToImplIncludes("V8${arrayOrSequenceType}.h"); |
- return "(toRefPtrNativeArray<${arrayOrSequenceType}, V8${arrayOrSequenceType}>($value, $getIsolate))"; |
+ return "(toRefPtrNativeArray<${arrayOrSequenceType}, V8${arrayOrSequenceType}>($value, $argIndex, $getIsolate))"; |
} |
- return "toNativeArray<" . GetNativeType($arrayOrSequenceType) . ">($value, $getIsolate)"; |
+ return "toNativeArray<" . GetNativeType($arrayOrSequenceType) . ">($value, $argIndex, $getIsolate)"; |
} |
AddIncludesForType($type); |