| 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 5c4a4e4a5acc3176d3432509cec33691bb9ae698..c59799944fc408541df6a64e62bae6e17cd248c5 100644 | 
| --- a/Source/bindings/scripts/code_generator_v8.pm | 
| +++ b/Source/bindings/scripts/code_generator_v8.pm | 
| @@ -3377,7 +3377,6 @@ sub IsStandardFunction | 
| return 0 if $function->isStatic; | 
| return 0 if $attrExt->{"RuntimeEnabled"}; | 
| return 0 if $attrExt->{"PerContextEnabled"}; | 
| -    return 0 if RequiresCustomSignature($function); | 
| return 0 if $attrExt->{"DoNotCheckSignature"}; | 
| return 0 if ($attrExt->{"DoNotCheckSecurity"} && ($interface->extendedAttributes->{"CheckSecurity"} || $interfaceName eq "Window")); | 
| return 0 if $attrExt->{"NotEnumerable"}; | 
| @@ -3455,10 +3454,6 @@ END | 
|  | 
| my $conditionalString = GenerateConditionalString($function); | 
| $code .= "#if ${conditionalString}\n" if $conditionalString; | 
| -    if (RequiresCustomSignature($function)) { | 
| -        $signature = "${name}Signature"; | 
| -        $code .= "\n    // Custom Signature '$name'\n" . CreateCustomSignature($function); | 
| -    } | 
|  | 
| if ($property_attributes eq "v8::DontDelete") { | 
| $property_attributes = ""; | 
| @@ -5503,6 +5498,10 @@ sub JSValueToNative | 
| return "toNodeFilter($value, $getIsolate)"; | 
| } | 
|  | 
| +    if ($type eq "Window") { | 
| +        return "toNativeDOMWindow($value, $getIsolate)"; | 
| +    } | 
| + | 
| if ($type eq "MediaQueryListListener") { | 
| AddToImplIncludes("core/css/MediaQueryListListener.h"); | 
| return "MediaQueryListListener::create(ScriptValue(" . $value . ", $getIsolate))"; | 
| @@ -5537,80 +5536,6 @@ sub JSValueToNative | 
| return "V8${type}::hasInstance($value, $getIsolate, worldType($getIsolate)) ? V8${type}::toNative(v8::Handle<v8::Object>::Cast($value)) : 0"; | 
| } | 
|  | 
| -sub CreateCustomSignature | 
| -{ | 
| -    my $function = shift; | 
| -    my $count = @{$function->parameters}; | 
| -    my $name = $function->name; | 
| -    my $code = "    const int ${name}Argc = ${count};\n" . | 
| -      "    v8::Handle<v8::FunctionTemplate> ${name}Argv[${name}Argc] = { "; | 
| -    my $first = 1; | 
| -    foreach my $parameter (@{$function->parameters}) { | 
| -        if ($first) { $first = 0; } | 
| -        else { $code .= ", "; } | 
| -        if (IsWrapperType($parameter->type) && not IsTypedArrayType($parameter->type)) { | 
| -            if ($parameter->type eq "XPathNSResolver") { | 
| -                # Special case for XPathNSResolver.  All other browsers accepts a callable, | 
| -                # so, even though it's against IDL, accept objects here. | 
| -                $code .= "v8::Handle<v8::FunctionTemplate>()"; | 
| -            } else { | 
| -                my $type = $parameter->type; | 
| -                my $arrayOrSequenceType = GetArrayOrSequenceType($type); | 
| - | 
| -                if ($arrayOrSequenceType) { | 
| -                    if (IsRefPtrType($arrayOrSequenceType)) { | 
| -                        AddIncludesForType($arrayOrSequenceType); | 
| -                    } else { | 
| -                        $code .= "v8::Handle<v8::FunctionTemplate>()"; | 
| -                        next; | 
| -                    } | 
| -                } else { | 
| -                    AddIncludesForType($type); | 
| -                } | 
| -                $code .= "V8PerIsolateData::from(isolate)->rawDOMTemplate(&V8${type}::wrapperTypeInfo, currentWorldType)"; | 
| -            } | 
| -        } else { | 
| -            $code .= "v8::Handle<v8::FunctionTemplate>()"; | 
| -        } | 
| -    } | 
| -    $code .= " };\n"; | 
| -    $code .= "    v8::Handle<v8::Signature> ${name}Signature = v8::Signature::New(isolate, functionTemplate, ${name}Argc, ${name}Argv);\n"; | 
| -    return $code; | 
| -} | 
| - | 
| - | 
| -sub RequiresCustomSignature | 
| -{ | 
| -    my $function = shift; | 
| -    # No signature needed for Custom function | 
| -    if (HasCustomMethod($function->extendedAttributes)) { | 
| -        return 0; | 
| -    } | 
| -    # No signature needed for overloaded function | 
| -    if (@{$function->{overloads}} > 1) { | 
| -        return 0; | 
| -    } | 
| -    if ($function->isStatic) { | 
| -        return 0; | 
| -    } | 
| -    # Type checking is performed in the generated code | 
| -    if ($function->extendedAttributes->{"StrictTypeChecking"}) { | 
| -      return 0; | 
| -    } | 
| -    foreach my $parameter (@{$function->parameters}) { | 
| -        if (($parameter->isOptional && !$parameter->extendedAttributes->{"Default"}) || IsCallbackInterface($parameter->type)) { | 
| -            return 0; | 
| -        } | 
| -    } | 
| - | 
| -    foreach my $parameter (@{$function->parameters}) { | 
| -        if (IsWrapperType($parameter->type)) { | 
| -            return 1; | 
| -        } | 
| -    } | 
| -    return 0; | 
| -} | 
| - | 
| sub IsUnionType | 
| { | 
| my $type = shift; # string or UnionType | 
|  |