Index: Source/bindings/scripts/deprecated_code_generator_v8.pm |
diff --git a/Source/bindings/scripts/deprecated_code_generator_v8.pm b/Source/bindings/scripts/deprecated_code_generator_v8.pm |
index 509aef934798ea65d3b26a22d1522d1eaae1c768..ee8ac669ec20e87a11bbc9fa9bfac41f00a581b4 100644 |
--- a/Source/bindings/scripts/deprecated_code_generator_v8.pm |
+++ b/Source/bindings/scripts/deprecated_code_generator_v8.pm |
@@ -2327,11 +2327,19 @@ sub GenerateParametersCheck |
$parameterCheckString .= " $parameterName = ${v8ClassName}::create(args[$paramIndex], getScriptExecutionContext());\n"; |
$parameterCheckString .= " }\n"; |
} else { |
- $parameterCheckString .= " if (args.Length() <= $paramIndex || !args[$paramIndex]->IsFunction()) {\n"; |
+ $parameterCheckString .= " if (args.Length() <= $paramIndex || "; |
+ if ($parameter->isNullable) { |
+ $parameterCheckString .= "!(args[$paramIndex]->IsFunction() || args[$paramIndex]->IsNull())"; |
+ } else { |
+ $parameterCheckString .= "!args[$paramIndex]->IsFunction()"; |
+ } |
+ $parameterCheckString .= ") {\n"; |
$parameterCheckString .= " throwTypeError(args.GetIsolate());\n"; |
$parameterCheckString .= " return;\n"; |
$parameterCheckString .= " }\n"; |
- $parameterCheckString .= " RefPtr<" . $parameter->type . "> $parameterName = ${v8ClassName}::create(args[$paramIndex], getScriptExecutionContext());\n"; |
+ $parameterCheckString .= " RefPtr<" . $parameter->type . "> $parameterName = "; |
+ $parameterCheckString .= "args[$paramIndex]->IsNull() ? 0 : " if $parameter->isNullable; |
+ $parameterCheckString .= "${v8ClassName}::create(args[$paramIndex], getScriptExecutionContext());\n"; |
} |
} elsif ($parameter->extendedAttributes->{"Clamp"}) { |
my $nativeValue = "${parameterName}NativeValue"; |