Title: [200299] trunk
Revision
200299
Author
[email protected]
Date
2016-04-30 21:17:54 -0700 (Sat, 30 Apr 2016)

Log Message

Streamline and remove unused bindings generation code
https://bugs.webkit.org/show_bug.cgi?id=157237

Reviewed by Chris Dumez.

Source/WebCore:

* Modules/notifications/NotificationCenter.idl: Replace non-standard "int"
with standard "long", which means the same thing.

* bindings/scripts/CodeGenerator.pm:
(UpdateFile): Use a better perl idiom for open.
(IsTypedArrayType): Use a hash instead of a list of checks in the code.
(IsRefPtrType): Use GetArrayOrSequenceType. Add handling for "any", which
is not a "RefPtr" type.
(IsWrapperType): Build on top of IsRefPtr type so we don't have to repeat
the list.
(getInterfaceExtendedAttributesFromName): Added a FIXME about why this is no good.
(ComputeIsCallbackInterface): Renamed.
(IsCallbackInterface): Added a cache so we don't keep reading the same file
over and over again. Added a FIXME about why this is no good.
(ComputeIsFunctionOnlyCallbackInterface): Ditto.
(IsFunctionOnlyCallbackInterface): Ditto.

* bindings/scripts/CodeGeneratorJS.pm:
(AddIncludesForType): Use GetArrayOrSequenceType.
(IsScriptProfileType): Deleted.
(AddTypedefForScriptProfileType): Deleted.
(AddClassForwardIfNeeded): Streamlined the code and made the ScriptProfileNode
special case easier to read.
(GenerateParametersCheckExpression): Use GetArrayOrSequenceType.
(GetFunctionLength): Tweaked formatting and argument names.
(GenerateImplementation): Merged a couple checks into a single if statement.
(WillConvertUndefinedToDefaultParameterValue): Streamlined the function by
using a hash instead of a sequence of if statements for most cases.
(GetNativeType): Use GetArrayOrSequenceType.
(JSValueToNative): Do the integer conversion based on a hash rather than
with lots of separate lines of code. Moved more of the simple names down to
the bottom of the function and streamlined the logic. Removed unnecessary
includes of the DOM headers directly, since our header file includes those.
(NativeToJSValue): Factored out the global object handling so it works across
more cases. Simplified the logic for dates. Use IsNumericType instead of
IsPrimitiveType to guard code that is right only for the numeric types.
Removed code to handle "Symbol" since we don't ever use that.

* bindings/scripts/test/JS/JSTestCallback.cpp:
* bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
Regenerated.

* bindings/scripts/test/TestObj.idl: Removed test coverage for Symbol, which
we never use anywhere.

* html/canvas/EXTBlendMinMax.idl: Replace non-standard "int" with standard
"long", which means the same thing.
* html/canvas/EXTTextureFilterAnisotropic.idl: Ditto.
* html/canvas/EXTsRGB.idl: Ditto.
* html/canvas/OESStandardDerivatives.idl: Ditto.
* html/canvas/OESVertexArrayObject.idl: Ditto.
* html/canvas/WebGLCompressedTextureATC.idl: Ditto.
* html/canvas/WebGLCompressedTexturePVRTC.idl: Ditto.
* html/canvas/WebGLCompressedTextureS3TC.idl: Ditto.
* html/canvas/WebGLDebugRendererInfo.idl: Ditto.
* html/canvas/WebGLDepthTexture.idl: Ditto.

Tools:

* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
* WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
Replace non-standard "int" with standard "long", which means the same thing.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (200298 => 200299)


--- trunk/Source/WebCore/ChangeLog	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/ChangeLog	2016-05-01 04:17:54 UTC (rev 200299)
@@ -1,3 +1,70 @@
+2016-04-30  Darin Adler  <[email protected]>
+
+        Streamline and remove unused bindings generation code
+        https://bugs.webkit.org/show_bug.cgi?id=157237
+
+        Reviewed by Chris Dumez.
+
+        * Modules/notifications/NotificationCenter.idl: Replace non-standard "int"
+        with standard "long", which means the same thing.
+
+        * bindings/scripts/CodeGenerator.pm:
+        (UpdateFile): Use a better perl idiom for open.
+        (IsTypedArrayType): Use a hash instead of a list of checks in the code.
+        (IsRefPtrType): Use GetArrayOrSequenceType. Add handling for "any", which
+        is not a "RefPtr" type.
+        (IsWrapperType): Build on top of IsRefPtr type so we don't have to repeat
+        the list.
+        (getInterfaceExtendedAttributesFromName): Added a FIXME about why this is no good.
+        (ComputeIsCallbackInterface): Renamed.
+        (IsCallbackInterface): Added a cache so we don't keep reading the same file
+        over and over again. Added a FIXME about why this is no good.
+        (ComputeIsFunctionOnlyCallbackInterface): Ditto.
+        (IsFunctionOnlyCallbackInterface): Ditto.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (AddIncludesForType): Use GetArrayOrSequenceType.
+        (IsScriptProfileType): Deleted.
+        (AddTypedefForScriptProfileType): Deleted.
+        (AddClassForwardIfNeeded): Streamlined the code and made the ScriptProfileNode
+        special case easier to read.
+        (GenerateParametersCheckExpression): Use GetArrayOrSequenceType.
+        (GetFunctionLength): Tweaked formatting and argument names.
+        (GenerateImplementation): Merged a couple checks into a single if statement.
+        (WillConvertUndefinedToDefaultParameterValue): Streamlined the function by
+        using a hash instead of a sequence of if statements for most cases.
+        (GetNativeType): Use GetArrayOrSequenceType.
+        (JSValueToNative): Do the integer conversion based on a hash rather than
+        with lots of separate lines of code. Moved more of the simple names down to
+        the bottom of the function and streamlined the logic. Removed unnecessary
+        includes of the DOM headers directly, since our header file includes those.
+        (NativeToJSValue): Factored out the global object handling so it works across
+        more cases. Simplified the logic for dates. Use IsNumericType instead of
+        IsPrimitiveType to guard code that is right only for the numeric types.
+        Removed code to handle "Symbol" since we don't ever use that.
+
+        * bindings/scripts/test/JS/JSTestCallback.cpp:
+        * bindings/scripts/test/JS/JSTestCallbackFunction.cpp:
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
+        Regenerated.
+
+        * bindings/scripts/test/TestObj.idl: Removed test coverage for Symbol, which
+        we never use anywhere.
+
+        * html/canvas/EXTBlendMinMax.idl: Replace non-standard "int" with standard
+        "long", which means the same thing.
+        * html/canvas/EXTTextureFilterAnisotropic.idl: Ditto.
+        * html/canvas/EXTsRGB.idl: Ditto.
+        * html/canvas/OESStandardDerivatives.idl: Ditto.
+        * html/canvas/OESVertexArrayObject.idl: Ditto.
+        * html/canvas/WebGLCompressedTextureATC.idl: Ditto.
+        * html/canvas/WebGLCompressedTexturePVRTC.idl: Ditto.
+        * html/canvas/WebGLCompressedTextureS3TC.idl: Ditto.
+        * html/canvas/WebGLDebugRendererInfo.idl: Ditto.
+        * html/canvas/WebGLDepthTexture.idl: Ditto.
+
 2016-04-30  Chris Dumez  <[email protected]>
 
         [Web IDL] Pass even more types by reference

Modified: trunk/Source/WebCore/Modules/notifications/NotificationCenter.idl (200298 => 200299)


--- trunk/Source/WebCore/Modules/notifications/NotificationCenter.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/Modules/notifications/NotificationCenter.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -30,13 +30,12 @@
  */
 
 [
-    NoInterfaceObject,
-    Conditional=LEGACY_NOTIFICATIONS,
     ActiveDOMObject,
+    Conditional=LEGACY_NOTIFICATIONS,
+    NoInterfaceObject,
 ] interface NotificationCenter {
    [RaisesException] Notification createNotification(DOMString iconUrl, DOMString title, DOMString body);
 
-   int checkPermission();
+   long checkPermission();
    void requestPermission(optional VoidCallback? callback);
 };
-

Modified: trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/CodeGenerator.pm	2016-05-01 04:17:54 UTC (rev 200299)
@@ -71,6 +71,21 @@
 
 my %enumTypeHash = ();
 
+my %typedArrayTypes = (
+    "ArrayBuffer" => 1,
+    "ArrayBufferView" => 1,
+    "DataView" => 1,
+    "Float32Array" => 1,
+    "Float64Array" => 1,
+    "Int16Array" => 1,
+    "Int32Array" => 1,
+    "Int8Array" => 1,
+    "Uint16Array" => 1,
+    "Uint32Array" => 1,
+    "Uint8Array" => 1,
+    "Uint8ClampedArray" => 1,
+);
+
 my %nonPointerTypeHash = ( "DOMTimeStamp" => 1 );
 
 my %svgAttributesInHTMLHash = (
@@ -204,7 +219,7 @@
     my $fileName = shift;
     my $contents = shift;
 
-    open FH, "> $fileName" or die "Couldn't open $fileName: $!\n";
+    open FH, ">", $fileName or die "Couldn't open $fileName: $!\n";
     print FH $contents;
     close FH;
 }
@@ -434,10 +449,8 @@
 {
     my $object = shift;
     my $type = shift;
-    return 1 if (($type eq "ArrayBuffer") or ($type eq "ArrayBufferView"));
-    return 1 if (($type eq "Uint8Array") or ($type eq "Uint8ClampedArray") or ($type eq "Uint16Array") or ($type eq "Uint32Array"));
-    return 1 if (($type eq "Int8Array") or ($type eq "Int16Array") or ($type eq "Int32Array"));
-    return 1 if (($type eq "Float32Array") or ($type eq "Float64Array") or ($type eq "DataView"));
+
+    return 1 if $typedArrayTypes{$type};
     return 0;
 }
 
@@ -447,10 +460,10 @@
     my $type = shift;
 
     return 0 if $object->IsPrimitiveType($type);
-    return 0 if $object->GetArrayType($type);
-    return 0 if $object->GetSequenceType($type);
+    return 0 if $object->GetArrayOrSequenceType($type);
+    return 0 if $object->IsEnumType($type);
     return 0 if $type eq "DOMString";
-    return 0 if $object->IsEnumType($type);
+    return 0 if $type eq "any";
 
     return 1;
 }
@@ -696,27 +709,24 @@
     my $object = shift;
     my $type = shift;
 
-    return 0 if $object->IsPrimitiveType($type);
-    return 0 if $object->GetArrayType($type);
-    return 0 if $object->GetSequenceType($type);
-    return 0 if $object->IsEnumType($type);
-    return 0 if $object->IsStringType($type);
+    return 0 if !$object->IsRefPtrType($type);
     return 0 if $object->IsTypedArrayType($type);
     return 0 if $webCoreTypeHash{$type};
-    return 0 if $type eq "any";
 
     return 1;
 }
 
 sub getInterfaceExtendedAttributesFromName
 {
+    # FIXME: It's bad to have a function like this that opens another IDL file to answer a question.
+    # Overusing this kind of function can make things really slow. Lets avoid these if we can.
+
     my $object = shift;
     my $interfaceName = shift;
 
-    my $idlFile = $object->IDLFileForInterface($interfaceName)
-      or die("Could NOT find IDL file for interface \"$interfaceName\"!\n");
+    my $idlFile = $object->IDLFileForInterface($interfaceName) or die("Could NOT find IDL file for interface \"$interfaceName\"!\n");
 
-    open FILE, "<", $idlFile;
+    open FILE, "<", $idlFile or die;
     my @lines = <FILE>;
     close FILE;
 
@@ -739,17 +749,16 @@
     return $extendedAttributes;
 }
 
-sub IsCallbackInterface
+sub ComputeIsCallbackInterface
 {
   my $object = shift;
   my $type = shift;
 
   return 0 unless $object->IsWrapperType($type);
 
-  my $idlFile = $object->IDLFileForInterface($type)
-      or die("Could NOT find IDL file for interface \"$type\"!\n");
+  my $idlFile = $object->IDLFileForInterface($type) or die("Could NOT find IDL file for interface \"$type\"!\n");
 
-  open FILE, "<", $idlFile;
+  open FILE, "<", $idlFile or die;
   my @lines = <FILE>;
   close FILE;
 
@@ -757,20 +766,35 @@
   return ($fileContents =~ /callback\s+interface\s+(\w+)/gs);
 }
 
+my %isCallbackInterface = ();
+
+sub IsCallbackInterface
+{
+    # FIXME: It's bad to have a function like this that opens another IDL file to answer a question.
+    # Overusing this kind of function can make things really slow. Lets avoid these if we can.
+    # To mitigate that, lets cache what we learn in a hash so we don't open the same file over and over.
+
+    my ($object, $type) = @_;
+
+    return $isCallbackInterface{$type} if exists $isCallbackInterface{$type};
+    my $result = ComputeIsCallbackInterface($object, $type);
+    $isCallbackInterface{$type} = $result;
+    return $result;
+}
+
 # Callback interface with [Callback=FunctionOnly].
 # FIXME: This should be a callback function:
 # https://heycam.github.io/webidl/#idl-callback-functions
-sub IsFunctionOnlyCallbackInterface
+sub ComputeIsFunctionOnlyCallbackInterface
 {
   my $object = shift;
   my $type = shift;
 
   return 0 unless $object->IsCallbackInterface($type);
 
-  my $idlFile = $object->IDLFileForInterface($type)
-      or die("Could NOT find IDL file for interface \"$type\"!\n");
+  my $idlFile = $object->IDLFileForInterface($type) or die("Could NOT find IDL file for interface \"$type\"!\n");
 
-  open FILE, "<", $idlFile;
+  open FILE, "<", $idlFile or die;
   my @lines = <FILE>;
   close FILE;
 
@@ -791,6 +815,22 @@
   return 0;
 }
 
+my %isFunctionOnlyCallbackInterface = ();
+
+sub IsFunctionOnlyCallbackInterface
+{
+    # FIXME: It's bad to have a function like this that opens another IDL file to answer a question.
+    # Overusing this kind of function can make things really slow. Lets avoid these if we can.
+    # To mitigate that, lets cache what we learn in a hash so we don't open the same file over and over.
+
+    my ($object, $type) = @_;
+
+    return $isFunctionOnlyCallbackInterface{$type} if exists $isFunctionOnlyCallbackInterface{$type};
+    my $result = ComputeIsFunctionOnlyCallbackInterface($object, $type);
+    $isFunctionOnlyCallbackInterface{$type} = $result;
+    return $result;
+}
+
 sub GenerateConditionalString
 {
     my $generator = shift;
@@ -933,6 +973,7 @@
     return 0 if $parameter->isNullable;
     return 0 if !$object->IsWrapperType($parameter->type) && !$object->IsTypedArrayType($parameter->type);
     return 0 if $object->IsSVGTypeNeedingTearOff($parameter->type);
+
     return 1;
 }
 

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2016-05-01 04:17:54 UTC (rev 200299)
@@ -239,18 +239,15 @@
 
     return if SkipIncludeHeader($type);
     
-    # When we're finished with the one-file-per-class
-    # reorganization, we won't need these special cases.
+    # When we're finished with the one-file-per-class reorganization, we won't need these special cases.
     if ($type eq "XPathNSResolver") {
         $includesRef->{"JSXPathNSResolver.h"} = 1;
         $includesRef->{"JSCustomXPathNSResolver.h"} = 1;
     } elsif ($isCallback && $codeGenerator->IsWrapperType($type)) {
         $includesRef->{"JS${type}.h"} = 1;
-    } elsif ($codeGenerator->GetSequenceType($type) or $codeGenerator->GetArrayType($type)) {
+    } elsif ($codeGenerator->GetArrayOrSequenceType($type)) {
         my $arrayType = $codeGenerator->GetArrayType($type);
-        my $sequenceType = $codeGenerator->GetSequenceType($type);
-        my $arrayOrSequenceType = $arrayType || $sequenceType;
-
+        my $arrayOrSequenceType = $arrayType || $codeGenerator->GetSequenceType($type);
         if ($arrayType eq "DOMString") {
             $includesRef->{"JSDOMStringList.h"} = 1;
             $includesRef->{"DOMStringList.h"} = 1;
@@ -280,39 +277,28 @@
     }
 }
 
-sub IsScriptProfileType
-{
-    my $type = shift;
-    return 1 if ($type eq "ScriptProfileNode");
-    return 0;
-}
-
 sub IsReadonly
 {
     my $attribute = shift;
     return $attribute->isReadOnly && !$attribute->signature->extendedAttributes->{"Replaceable"} && !$attribute->signature->extendedAttributes->{"PutForwards"};
 }
 
-sub AddTypedefForScriptProfileType
-{
-    my $type = shift;
-    (my $jscType = $type) =~ s/Script//;
-
-    push(@headerContent, "typedef JSC::$jscType $type;\n\n");
-}
-
 sub AddClassForwardIfNeeded
 {
     my $interfaceName = shift;
 
-    # SVGAnimatedLength/Number/etc. are typedefs to SVGAnimatedTemplate, so don't use class forwards for them!
-    unless ($codeGenerator->IsSVGAnimatedType($interfaceName) or IsScriptProfileType($interfaceName) or $codeGenerator->IsTypedArrayType($interfaceName)) {
-        push(@headerContent, "class $interfaceName;\n\n");
-    # ScriptProfile and ScriptProfileNode are typedefs to JSC::Profile and JSC::ProfileNode.
-    } elsif (IsScriptProfileType($interfaceName)) {
+    if ($interfaceName eq "ScriptProfileNode") {
         $headerIncludes{"<profiler/ProfileNode.h>"} = 1;
-        AddTypedefForScriptProfileType($interfaceName);
+        push(@headerContent, "typedef JSC::ProfileNode ScriptProfileNode;\n\n");
+        return;
     }
+
+    # SVGAnimatedLength/Number/etc. are typedefs and should not be forward-declared as classes.
+    return if $codeGenerator->IsSVGAnimatedType($interfaceName);
+
+    return if $codeGenerator->IsTypedArrayType($interfaceName);
+
+    push(@headerContent, "class $interfaceName;\n\n");
 }
 
 sub GetGenerateIsReachable
@@ -472,7 +458,7 @@
 {
     my ($interface) = @_;
 
-    return 0 if ($interface->extendedAttributes->{"JSBuiltin"});
+    return 0 if $interface->extendedAttributes->{"JSBuiltin"};
     return 1;
 }
 
@@ -679,8 +665,7 @@
     # FIXME: The bindings generator does not support putting runtime-enabled operations on the instance yet (except for global objects).
     return 0 if $function->signature->extendedAttributes->{"EnabledAtRuntime"};
 
-    # [Unforgeable] operations should be on the instance.
-    # https://heycam.github.io/webidl/#Unforgeable
+    # [Unforgeable] operations should be on the instance. https://heycam.github.io/webidl/#Unforgeable
     return 1 if IsUnforgeable($interface, $function);
 
     return 0;
@@ -781,7 +766,6 @@
         || $hasNamedGetter;
 
     return $numInstanceProperties > 0 || $hasComplexGetter;
-
 }
 
 sub PrototypeOverridesGetOwnPropertySlot
@@ -829,12 +813,14 @@
     return $name;
 }
 
-sub GetEnumerationClassName {
+sub GetEnumerationClassName
+{
     my ($name) = @_;
     return $codeGenerator->WK_ucfirst($name);
 };
 
-sub GetEnumerationValueName {
+sub GetEnumerationValueName
+{
     my ($name) = @_;
     return "EmptyString" if $name eq "";
     $name = join("", map { $codeGenerator->WK_ucfirst($_) } split("-", $name));
@@ -1577,7 +1563,7 @@
             # http://heycam.github.io/webidl/#es-nullable-type
             $condition .= "${value}.isNull() || " if $parameter->isNullable;
 
-            if ($codeGenerator->GetArrayType($type) || $codeGenerator->GetSequenceType($type)) {
+            if ($codeGenerator->GetArrayOrSequenceType($type)) {
                 # FIXME: Add proper support for T[], T[]?, sequence<T>.
                 $condition .= "(${value}.isObject() && isJSArray(${value}))";
             } else {
@@ -1593,20 +1579,19 @@
     return ($res, sort {$a <=> $b} (keys %usedArguments));
 }
 
-# As per Web IDL specification, the length of a function Object is
-# its number of mandatory parameters.
+# As per Web IDL specification, the length of a function Object is its number of mandatory parameters.
 sub GetFunctionLength
 {
-  my $function = shift;
+    my $function = shift;
 
-  my $numMandatoryParams = 0;
-  foreach my $parameter (@{$function->parameters}) {
-    # Abort as soon as we find the first optional parameter as no mandatory
-    # parameter can follow an optional one.
-    last if $parameter->isOptional || $parameter->isVariadic;
-    $numMandatoryParams++;
-  }
-  return $numMandatoryParams;
+    my $length = 0;
+    foreach my $parameter (@{$function->parameters}) {
+        # Abort as soon as we find the first optional parameter as no mandatory
+        # parameter can follow an optional one.
+        last if $parameter->isOptional || $parameter->isVariadic;
+        $length++;
+    }
+    return $length;
 }
 
 sub GenerateFunctionParametersCheck
@@ -2844,15 +2829,12 @@
                 # is thrown rather than silently passing NULL to the C++ code.
                 # Per the Web IDL and ECMAScript specifications, incoming values can always be converted to
                 # both strings and numbers, so do not throw TypeError if the attribute is of these types.
-                if ($attribute->signature->extendedAttributes->{"StrictTypeChecking"}) {
+                if ($codeGenerator->IsWrapperType($type) && $attribute->signature->extendedAttributes->{"StrictTypeChecking"}) {
                     $implIncludes{"<runtime/Error.h>"} = 1;
-
-                    if ($codeGenerator->IsWrapperType($type)) {
-                        push(@implContent, "    if (UNLIKELY(!value.isUndefinedOrNull() && !value.inherits(JS${type}::info()))) {\n");
-                        push(@implContent, "        throwAttributeTypeError(*state, \"$interfaceName\", \"$name\", \"$type\");\n");
-                        push(@implContent, "        return false;\n");
-                        push(@implContent, "    };\n");
-                    }
+                    push(@implContent, "    if (UNLIKELY(!value.isUndefinedOrNull() && !value.inherits(JS${type}::info()))) {\n");
+                    push(@implContent, "        throwAttributeTypeError(*state, \"$interfaceName\", \"$name\", \"$type\");\n");
+                    push(@implContent, "        return false;\n");
+                    push(@implContent, "    };\n");
                 }
 
                 push(@implContent, "    " . GetNativeTypeFromSignature($attribute->signature) . " nativeValue = " . JSValueToNative($attribute->signature, "value", $attribute->signature->extendedAttributes->{"Conditional"}) . ";\n");
@@ -3475,43 +3457,49 @@
     return 1;
 }
 
-sub WillConvertUndefinedToDefaultParameterValue
-{
-    my $parameterType = shift;
-    my $defaultValue = shift;
+my %automaticallyGeneratedDefaultValues = (
+    "any" => "undefined",
 
-    if ($defaultValue eq "[]") {
-        # Dictionary(state, undefined) will construct an empty Dictionary.
-        return 1 if $parameterType eq "Dictionary";
-
-        # toRefPtrNativeArray() will convert undefined to an empty Vector.
-        return 1 if $codeGenerator->GetArrayType($parameterType) or $codeGenerator->GetSequenceType($parameterType);
-    }
-
     # toString() will convert undefined to the string "undefined";
-    return 1 if $parameterType eq "DOMString" and $defaultValue eq "\"undefined\"";
+    # (note that this optimizes a behavior that is almost never useful)
+    "DOMString" => "\"undefined\"",
 
-    return 1 if $parameterType eq "any" and $defaultValue eq "undefined";
+    # Dictionary(state, undefined) will construct an empty Dictionary.
+    "Dictionary" => "[]",
 
     # JSValue::toBoolean() will convert undefined to false.
-    return 1 if $parameterType eq "boolean" and $defaultValue eq "false";
+    "boolean" => "false",
 
     # JSValue::toInt*() / JSValue::toUint*() will convert undefined to 0.
-    if ($defaultValue eq "0") {
-        return 1 if $parameterType eq "byte" or $parameterType eq "octet";
-        return 1 if $parameterType eq "short" or $parameterType eq "unsigned short";
-        return 1 if $parameterType eq "long" or $parameterType eq "unsigned long";
-        return 1 if $parameterType eq "long long" or $parameterType eq "unsigned long long";
-    }
+    "byte" => "0",
+    "long long" => "0",
+    "long" => "0",
+    "octet" => "0",
+    "short" => "0",
+    "unsigned long long" => "0",
+    "unsigned long" => "0",
+    "unsigned short" => "0",
 
-    if ($defaultValue eq "NaN") {
-        # toNumber() / toFloat() convert undefined to NaN.
-        return 1 if $parameterType eq "double" or $parameterType eq "unrestricted double";
-        return 1 if $parameterType eq "float" or $parameterType eq "unrestricted float";
-    }
+    # toNumber() / toFloat() convert undefined to NaN.
+    "double" => "NaN",
+    "float" => "NaN",
+    "unrestricted double" => "NaN",
+    "unrestricted float" => "NaN",
+);
 
-    return 1 if $codeGenerator->IsWrapperType($parameterType) and $defaultValue eq "null";
+sub WillConvertUndefinedToDefaultParameterValue
+{
+    my $parameterType = shift;
+    my $defaultValue = shift;
 
+    my $automaticallyGeneratedDefaultValue = $automaticallyGeneratedDefaultValues{$parameterType};
+    return 1 if defined $automaticallyGeneratedDefaultValue && $automaticallyGeneratedDefaultValue eq $defaultValue;
+
+    # toRefPtrNativeArray() will convert undefined to an empty Vector.
+    return 1 if $defaultValue eq "[]" && $codeGenerator->GetArrayOrSequenceType($parameterType);
+
+    return 1 if $defaultValue eq "null" && $codeGenerator->IsWrapperType($parameterType);
+
     return 0;
 }
 
@@ -4265,26 +4253,25 @@
 
 my %nativeType = (
     "DOMString" => "String",
-    "NodeFilter" => "RefPtr<NodeFilter>",
-    "SerializedScriptValue" => "RefPtr<SerializedScriptValue>",
+    "DOMTimeStamp" => "DOMTimeStamp",
     "Date" => "double",
     "Dictionary" => "Dictionary",
+    "NodeFilter" => "RefPtr<NodeFilter>",
+    "SerializedScriptValue" => "RefPtr<SerializedScriptValue>",
     "any" => "JSC::JSValue",
     "boolean" => "bool",
+    "byte" => "int8_t",
     "double" => "double",
     "float" => "float",
+    "long long" => "long long",
+    "long" => "int",
+    "octet" => "uint8_t",
+    "short" => "int16_t",
     "unrestricted double" => "double",
     "unrestricted float" => "float",
-    "short" => "int16_t",
-    "long" => "int",
+    "unsigned long long" => "unsigned long long",
     "unsigned long" => "unsigned",
     "unsigned short" => "uint16_t",
-    "long long" => "long long",
-    "unsigned long long" => "unsigned long long",
-    "byte" => "int8_t",
-    "octet" => "uint8_t",
-    "DOMTimeStamp" => "DOMTimeStamp",
-    "Symbol" => "PrivateName"
 );
 
 sub GetNativeType
@@ -4299,9 +4286,7 @@
     return "RefPtr<${type}>" if $codeGenerator->IsTypedArrayType($type) and not $type eq "ArrayBuffer";
     return $nativeType{$type} if exists $nativeType{$type};
 
-    my $arrayType = $codeGenerator->GetArrayType($type);
-    my $sequenceType = $codeGenerator->GetSequenceType($type);
-    my $arrayOrSequenceType = $arrayType || $sequenceType;
+    my $arrayOrSequenceType = $codeGenerator->GetArrayOrSequenceType($type);
 
     return "Vector<" . GetNativeVectorInnerType($arrayOrSequenceType) . ">" if $arrayOrSequenceType;
     return "String" if $codeGenerator->IsStringBasedEnumType($type);
@@ -4391,6 +4376,17 @@
     return exists $nativeType{$type};
 }
 
+my %integerConversionFunction = (
+    "byte" => "toInt8",
+    "long long" => "toInt64",
+    "long" => "toInt32",
+    "octet" => "toUInt8",
+    "short" => "toInt16",
+    "unsigned long long" => "toUInt64",
+    "unsigned long" => "toUInt32",
+    "unsigned short" => "toUInt16",
+);
+
 sub JSValueToNative
 {
     my $signature = shift;
@@ -4399,24 +4395,14 @@
 
     my $type = $signature->type;
 
-    return "$value.toBoolean(state)" if $type eq "boolean";
-    return "$value.toNumber(state)" if $type eq "double" or $type eq "unrestricted double" ;
-    return "$value.toFloat(state)" if $type eq "float" or $type eq "unrestricted float" ;
+    my $function = $integerConversionFunction{$type};
+    if ($function) {
+        my $conversionType = "NormalConversion";
+        $conversionType = "EnforceRange" if $signature->extendedAttributes->{"EnforceRange"};
+        $conversionType = "Clamp" if $signature->extendedAttributes->{"Clamp"};
+        return "$function(state, $value, $conversionType)";
+    }
 
-    my $intConversion = "NormalConversion";
-    $intConversion = "EnforceRange" if $signature->extendedAttributes->{"EnforceRange"};
-    $intConversion = "Clamp" if $signature->extendedAttributes->{"Clamp"};
-    return "toInt8(state, $value, $intConversion)" if $type eq "byte";
-    return "toUInt8(state, $value, $intConversion)" if $type eq "octet";
-    return "toInt16(state, $value, $intConversion)" if $type eq "short";
-    return "toUInt16(state, $value, $intConversion)" if $type eq "unsigned short";
-    return "toInt32(state, $value, $intConversion)" if $type eq "long";
-    return "toUInt32(state, $value, $intConversion)" if $type eq "unsigned long";
-    return "toInt64(state, $value, $intConversion)" if $type eq "long long";
-    return "toUInt64(state, $value, $intConversion)" if $type eq "unsigned long long";
-
-    return "valueToDate(state, $value)" if $type eq "Date";
-
     if ($type eq "DOMString") {
         if ($signature->extendedAttributes->{"TreatNullAs"}) {
             return "valueToStringTreatingNullAsEmptyString(state, $value)" if $signature->extendedAttributes->{"TreatNullAs"} eq "EmptyString";
@@ -4424,19 +4410,9 @@
         }
         return "valueToStringWithUndefinedOrNullCheck(state, $value)" if $signature->isNullable;
         return "$value.toString(state)->toAtomicString(state)" if $signature->extendedAttributes->{"AtomicString"};
-
         return "$value.toWTFString(state)";
     }
 
-    if ($type eq "any") {
-        return $value;
-    }
-
-    if ($type eq "NodeFilter") {
-        AddToImplIncludes("JS$type.h", $conditional);
-        return "JS${type}::toWrapped(state->vm(), $value)";
-    }
-
     if ($type eq "SerializedScriptValue") {
         AddToImplIncludes("SerializedScriptValue.h", $conditional);
         return "SerializedScriptValue::create(state, $value, 0, 0)";
@@ -4447,22 +4423,7 @@
         return "{ state, $value }";
     }
 
-    if ($type eq "DOMStringList" ) {
-        AddToImplIncludes("JSDOMStringList.h", $conditional);
-        return "toDOMStringList(state, $value)";
-    }
-    
-    if ($codeGenerator->IsTypedArrayType($type)) {
-        return "to$type($value)";
-    }
-
-    AddToImplIncludes("HTMLOptionElement.h", $conditional) if $type eq "HTMLOptionElement";
-    AddToImplIncludes("Event.h", $conditional) if $type eq "Event";
-
-    my $arrayType = $codeGenerator->GetArrayType($type);
-    my $sequenceType = $codeGenerator->GetSequenceType($type);
-    my $arrayOrSequenceType = $arrayType || $sequenceType;
-
+    my $arrayOrSequenceType = $codeGenerator->GetArrayOrSequenceType($type);
     if ($arrayOrSequenceType) {
         if ($codeGenerator->IsRefPtrType($arrayOrSequenceType)) {
             AddToImplIncludes("JS${arrayOrSequenceType}.h");
@@ -4471,15 +4432,22 @@
         return "toNativeArray<" . GetNativeVectorInnerType($arrayOrSequenceType) . ">(state, $value)";
     }
 
-    return "$value.toWTFString(state)" if $codeGenerator->IsStringBasedEnumType($type);
+    return $value if $type eq "any";
 
-    if ($codeGenerator->IsEnumType($type)) {
-        my $className = GetEnumerationClassName($type);
-        return "parse$className(*state, $value)";
-    }
+    return "$value.toBoolean(state)" if $type eq "boolean";
+    return "$value.toNumber(state)" if $type eq "double" or $type eq "unrestricted double";
+    return "$value.toFloat(state)" if $type eq "float" or $type eq "unrestricted float";
+    return "valueToDate(state, $value)" if $type eq "Date";
 
-    # Default, assume autogenerated type conversion routines
+    return "to$type($value)" if $codeGenerator->IsTypedArrayType($type);
+    return "$value.toWTFString(state)" if $codeGenerator->IsStringBasedEnumType($type);
+    return "parse" . GetEnumerationClassName($type) . "(*state, $value)" if $codeGenerator->IsEnumType($type);
+
     AddToImplIncludes("JS$type.h", $conditional);
+
+    return "toDOMStringList(state, $value)" if $type eq "DOMStringList";
+    return "JSNodeFilter::toWrapped(state->vm(), $value)" if $type eq "NodeFilter";
+
     return "JS${type}::toWrapped($value)";
 }
 
@@ -4494,32 +4462,24 @@
     my $conditional = $signature->extendedAttributes->{"Conditional"};
     my $type = $signature->type;
 
+    my $globalObject = $thisValue ? "$thisValue->globalObject()" : "jsCast<JSDOMGlobalObject*>(state->lexicalGlobalObject())";
+
     return "jsBoolean($value)" if $type eq "boolean";
 
-    # Need to check Date type before IsPrimitiveType().
     if ($type eq "Date") {
-        my $conv = $signature->extendedAttributes->{"TreatReturnedNaNDateAs"};
-        if (defined $conv) {
-            return "jsDateOrNull(state, $value)" if $conv eq "Null";
-            return "jsDateOrNaN(state, $value)" if $conv eq "NaN";
-            
-            die "Unknown value for TreatReturnedNaNDateAs extended attribute";
-        }
-        return "jsDateOrNull(state, $value)";
+        my $handlingForNaN = $signature->extendedAttributes->{"TreatReturnedNaNDateAs"};
+        return "jsDateOrNull(state, $value)" if !defined $handlingForNaN || $handlingForNaN eq "Null";
+        return "jsDateOrNaN(state, $value)" if $handlingForNaN eq "NaN";
+        die "Unknown value for TreatReturnedNaNDateAs extended attribute";
     }
 
-    if ($type eq "Symbol") {
-        AddToImplIncludes("<runtime/Symbol.h>", $conditional);
-        return "Symbol::create(state->vm(), *($value).uid())";
-    }
-
-    if ($codeGenerator->IsPrimitiveType($type) or $type eq "DOMTimeStamp") {
+    if ($codeGenerator->IsNumericType($type) or $type eq "DOMTimeStamp") {
         # We could instead overload a function to work with optional as well as non-optional numbers, but this
         # is slightly better because it guarantees we will fail to compile if the IDL file doesn't match the C++.
         my $function = $signature->isNullable ? "toNullableJSNumber" : "jsNumber";
         if ($signature->extendedAttributes->{"Reflect"} and ($type eq "unsigned long" or $type eq "unsigned short")) {
             $value =~ s/getUnsignedIntegralAttribute/getIntegralAttribute/g;
-            return "$function(std::max(0, " . $value . "))";
+            $value = "std::max(0, $value)";
         }
         return "$function($value)";
     }
@@ -4536,34 +4496,16 @@
         return "jsStringWithCache(state, $value)";
     }
     
-    my $globalObject;
-    if ($thisValue) {
-        $globalObject = "$thisValue->globalObject()";
-    }
-
-    if ($type eq "CSSStyleDeclaration") {
-        AddToImplIncludes("StyleProperties.h", $conditional);
-    }
-
-    if ($type eq "NodeList") {
-        AddToImplIncludes("NameNodeList.h", $conditional);
-    }
-
     my $arrayType = $codeGenerator->GetArrayType($type);
-    my $sequenceType = $codeGenerator->GetSequenceType($type);
-    my $arrayOrSequenceType = $arrayType || $sequenceType;
+    my $arrayOrSequenceType = $arrayType || $codeGenerator->GetSequenceType($type);
 
     if ($arrayOrSequenceType) {
         if ($arrayType eq "DOMString") {
             AddToImplIncludes("JSDOMStringList.h", $conditional);
-            AddToImplIncludes("DOMStringList.h", $conditional);
-
         } elsif ($codeGenerator->IsRefPtrType($arrayOrSequenceType)) {
             AddToImplIncludes("JS${arrayOrSequenceType}.h", $conditional);
-            AddToImplIncludes("${arrayOrSequenceType}.h", $conditional);
         }
         AddToImplIncludes("<runtime/JSArray.h>", $conditional);
-
         return "jsArray(state, $globalObject, $value)";
     }
 
@@ -4572,35 +4514,30 @@
         if (defined $returnType and ($returnType eq "IDBKeyPath" or $returnType eq "IDBKey")) {
             AddToImplIncludes("IDBBindingUtilities.h", $conditional);
             return "toJS(*state, *$globalObject, $value)";
-        } else {
-            return $value;
         }
-    } elsif ($type eq "SerializedScriptValue") {
+        return $value;
+    }
+
+    if ($type eq "SerializedScriptValue") {
         AddToImplIncludes("SerializedScriptValue.h", $conditional);
         return "$value ? $value->deserialize(state, castedThis->globalObject(), 0) : jsNull()";
-    } elsif ($codeGenerator->IsTypedArrayType($type)) {
-        # Do nothing - all headers are already included.
-    } else {
-        # Default, include header with same name.
-        AddToImplIncludes("JS$type.h", $conditional);
-        AddToImplIncludes("$type.h", $conditional) if not $codeGenerator->SkipIncludeHeader($type);
     }
 
+    AddToImplIncludes("StyleProperties.h", $conditional) if $type eq "CSSStyleDeclaration";
+    AddToImplIncludes("NameNodeList.h", $conditional) if $type eq "NodeList";
+    AddToImplIncludes("JS$type.h", $conditional) if !$codeGenerator->IsTypedArrayType($type);
+
     return $value if $codeGenerator->IsSVGAnimatedType($type);
 
-    if ($signature->extendedAttributes->{"NewObject"}) {
-        return "toJSNewlyCreated(state, $globalObject, WTF::getPtr($value))";
-    }
-
     if ($codeGenerator->IsSVGAnimatedType($interfaceName) or ($interfaceName eq "SVGViewSpec" and $type eq "SVGTransformList")) {
         # Convert from abstract RefPtr<ListProperty> to real type, so the right toJS() method can be invoked.
-        $value = "static_cast<" . GetNativeType($type) . ">($value" . ".get())";
+        $value = "static_cast<" . GetNativeType($type) . ">($value.get())";
     } elsif ($interfaceName eq "SVGViewSpec") {
         # Convert from abstract SVGProperty to real type, so the right toJS() method can be invoked.
         $value = "static_cast<" . GetNativeType($type) . ">($value)";
     } elsif ($codeGenerator->IsSVGTypeNeedingTearOff($type) and not $interfaceName =~ /List$/) {
         my $tearOffType = $codeGenerator->GetSVGTypeNeedingTearOff($type);
-        if ($codeGenerator->IsSVGTypeWithWritablePropertiesNeedingTearOff($type) and $inFunctionCall eq 0 and not defined $signature->extendedAttributes->{"Immutable"}) {
+        if ($codeGenerator->IsSVGTypeWithWritablePropertiesNeedingTearOff($type) and !$inFunctionCall and not defined $signature->extendedAttributes->{"Immutable"}) {
             my $getter = $value;
             $getter =~ s/impl\.//;
             $getter =~ s/impl->//;
@@ -4609,8 +4546,8 @@
 
             my $selfIsTearOffType = $codeGenerator->IsSVGTypeNeedingTearOff($interfaceName);
             if ($selfIsTearOffType) {
+                # FIXME: Why SVGMatrix specifically?
                 AddToImplIncludes("SVGMatrixTearOff.h", $conditional);
-                # FIXME: Blink: Don't create a new one everytime we access the matrix property. This means, e.g, === won't work.
                 $value = "SVGMatrixTearOff::create(castedThis->wrapped(), $value)";
             } else {
                 AddToImplIncludes("SVGStaticPropertyTearOff.h", $conditional);
@@ -4623,11 +4560,10 @@
             $value = "${tearOffType}::create($value)";
         }
     }
-    if ($globalObject) {
-        return "toJS(state, $globalObject, WTF::getPtr($value))";
-    } else {
-        return "toJS(state, jsCast<JSDOMGlobalObject*>(state->lexicalGlobalObject()), WTF::getPtr($value))";
-    }
+
+    my $function = $signature->extendedAttributes->{"NewObject"} ? "toJSNewlyCreated" : "toJS";
+
+    return "$function(state, $globalObject, WTF::getPtr($value))";
 }
 
 sub ceilingToPowerOf2

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallback.cpp	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,13 +24,11 @@
 
 #include "JSTestCallback.h"
 
-#include "DOMStringList.h"
 #include "JSDOMConstructor.h"
 #include "JSDOMStringList.h"
 #include "JSTestNode.h"
 #include "ScriptExecutionContext.h"
 #include "SerializedScriptValue.h"
-#include "TestNode.h"
 #include "URL.h"
 #include <runtime/FunctionPrototype.h>
 #include <runtime/JSLock.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,12 +24,10 @@
 
 #include "JSTestCallbackFunction.h"
 
-#include "DOMStringList.h"
 #include "JSDOMStringList.h"
 #include "JSTestNode.h"
 #include "ScriptExecutionContext.h"
 #include "SerializedScriptValue.h"
-#include "TestNode.h"
 #include "URL.h"
 #include <runtime/JSLock.h>
 #include <runtime/JSString.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp	2016-05-01 04:17:54 UTC (rev 200299)
@@ -40,7 +40,6 @@
 #if ENABLE(Condition11) || ENABLE(Condition12) || ENABLE(Condition22) || ENABLE(Condition23)
 #include "JSNode.h"
 #include "JSTestObj.h"
-#include "Node.h"
 #include "URL.h"
 #include <runtime/JSString.h>
 #endif

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp	2016-05-01 04:17:54 UTC (rev 200299)
@@ -54,7 +54,6 @@
 #include "ScriptProfile.h"
 #include "SerializedScriptValue.h"
 #include "Settings.h"
-#include "TestNode.h"
 #include "TestObj.h"
 #include "URL.h"
 #include "WebCoreJSClientData.h"
@@ -66,7 +65,6 @@
 #include <runtime/JSArray.h>
 #include <runtime/JSString.h>
 #include <runtime/PropertyNameArray.h>
-#include <runtime/Symbol.h>
 #include <wtf/GetPtr.h>
 
 #if ENABLE(Condition1)
@@ -441,8 +439,6 @@
 bool setJSTestObjXMLObjAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
 JSC::EncodedJSValue jsTestObjCreate(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
 bool setJSTestObjCreate(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
-JSC::EncodedJSValue jsTestObjReadOnlySymbolAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
-JSC::EncodedJSValue jsTestObjConstructorStaticReadOnlySymbolAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
 JSC::EncodedJSValue jsTestObjReflectedStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
 bool setJSTestObjReflectedStringAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::EncodedJSValue);
 JSC::EncodedJSValue jsTestObjReflectedIntegralAttr(JSC::ExecState*, JSC::EncodedJSValue, JSC::PropertyName);
@@ -665,7 +661,6 @@
     { "staticReadOnlyLongAttr", DontDelete | ReadOnly, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructorStaticReadOnlyLongAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
     { "staticStringAttr", DontDelete, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructorStaticStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjConstructorStaticStringAttr) } },
     { "TestSubObj", DontDelete | ReadOnly, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructorTestSubObj), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
-    { "staticReadOnlySymbolAttr", DontDelete | ReadOnly, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjConstructorStaticReadOnlySymbolAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
     { "nullableStringStaticMethod", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjConstructorFunctionNullableStringStaticMethod), (intptr_t) (0) } },
     { "staticMethodWithCallbackAndOptionalArg", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg), (intptr_t) (0) } },
     { "staticMethodWithCallbackArg", JSC::Function, NoIntrinsic, { (intptr_t)static_cast<NativeFunction>(jsTestObjConstructorFunctionStaticMethodWithCallbackArg), (intptr_t) (1) } },
@@ -752,7 +747,6 @@
     { "stringAttrTreatingNullAsEmptyString", CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjStringAttrTreatingNullAsEmptyString), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjStringAttrTreatingNullAsEmptyString) } },
     { "XMLObjAttr", CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjXMLObjAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjXMLObjAttr) } },
     { "create", CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjCreate), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjCreate) } },
-    { "readOnlySymbolAttr", ReadOnly | CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReadOnlySymbolAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(0) } },
     { "reflectedStringAttr", CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedStringAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedStringAttr) } },
     { "reflectedIntegralAttr", CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedIntegralAttr) } },
     { "reflectedUnsignedIntegralAttr", CustomAccessor, NoIntrinsic, { (intptr_t)static_cast<PropertySlot::GetValueFunc>(jsTestObjReflectedUnsignedIntegralAttr), (intptr_t) static_cast<PutPropertySlot::PutValueFunc>(setJSTestObjReflectedUnsignedIntegralAttr) } },
@@ -1410,30 +1404,6 @@
 }
 
 
-EncodedJSValue jsTestObjReadOnlySymbolAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
-{
-    UNUSED_PARAM(state);
-    UNUSED_PARAM(thisValue);
-    JSValue decodedThisValue = JSValue::decode(thisValue);
-    auto* castedThis = jsDynamicCast<JSTestObj*>(decodedThisValue);
-    if (UNLIKELY(!castedThis)) {
-        return throwGetterTypeError(*state, "TestObj", "readOnlySymbolAttr");
-    }
-    auto& impl = castedThis->wrapped();
-    JSValue result = Symbol::create(state->vm(), *(impl.readOnlySymbolAttr()).uid());
-    return JSValue::encode(result);
-}
-
-
-EncodedJSValue jsTestObjConstructorStaticReadOnlySymbolAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
-{
-    UNUSED_PARAM(state);
-    UNUSED_PARAM(thisValue);
-    JSValue result = Symbol::create(state->vm(), *(TestObj::staticReadOnlySymbolAttr()).uid());
-    return JSValue::encode(result);
-}
-
-
 EncodedJSValue jsTestObjReflectedStringAttr(ExecState* state, EncodedJSValue thisValue, PropertyName)
 {
     UNUSED_PARAM(state);

Modified: trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp	2016-05-01 04:17:54 UTC (rev 200299)
@@ -27,7 +27,6 @@
 #include "JSDOMBinding.h"
 #include "JSDOMConstructor.h"
 #include "JSMessagePort.h"
-#include "MessagePort.h"
 #include "SerializedScriptValue.h"
 #include <runtime/FunctionPrototype.h>
 #include <runtime/JSArray.h>

Modified: trunk/Source/WebCore/bindings/scripts/test/TestObj.idl (200298 => 200299)


--- trunk/Source/WebCore/bindings/scripts/test/TestObj.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/bindings/scripts/test/TestObj.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -71,10 +71,6 @@
     attribute TestObj                  XMLObjAttr;
     attribute boolean                  create;
 
-    // Readonly Symbol typed attributes.
-    readonly attribute Symbol readOnlySymbolAttr;
-    static readonly attribute Symbol staticReadOnlySymbolAttr;
-
     // Reflected DOM attributes
     [Reflect] attribute DOMString reflectedStringAttr;
     [Reflect] attribute long reflectedIntegralAttr;

Modified: trunk/Source/WebCore/html/canvas/EXTBlendMinMax.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/EXTBlendMinMax.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/EXTBlendMinMax.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,10 +24,10 @@
 */
 
 [
+    Conditional=WEBGL,
+    GenerateIsReachable=ImplWebGLRenderingContext,
     NoInterfaceObject,
-    Conditional=WEBGL,
-    GenerateIsReachable=ImplWebGLRenderingContext
 ] interface EXTBlendMinMax {
-    const unsigned int MIN_EXT = 0x8007;
-    const unsigned int MAX_EXT = 0x8008;
+    const unsigned long MIN_EXT = 0x8007;
+    const unsigned long MAX_EXT = 0x8008;
 };

Modified: trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,11 +24,10 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface EXTTextureFilterAnisotropic {
-    const unsigned int TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
-    const unsigned int MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
+    const unsigned long TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
+    const unsigned long MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
 };

Modified: trunk/Source/WebCore/html/canvas/EXTsRGB.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/EXTsRGB.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/EXTsRGB.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,12 +24,12 @@
 */
 
 [
+    Conditional=WEBGL,
+    GenerateIsReachable=ImplWebGLRenderingContext,
     NoInterfaceObject,
-    Conditional=WEBGL,
-    GenerateIsReachable=ImplWebGLRenderingContext
 ] interface EXTsRGB {
-    const unsigned int SRGB_EXT                                     = 0x8C40;
-    const unsigned int SRGB_ALPHA_EXT                               = 0x8C42;
-    const unsigned int SRGB8_ALPHA8_EXT                             = 0x8C43;
-    const unsigned int FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT    = 0x8210;
+    const unsigned long SRGB_EXT = 0x8C40;
+    const unsigned long SRGB_ALPHA_EXT = 0x8C42;
+    const unsigned long SRGB8_ALPHA8_EXT = 0x8C43;
+    const unsigned long FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT = 0x8210;
 };

Modified: trunk/Source/WebCore/html/canvas/OESStandardDerivatives.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/OESStandardDerivatives.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/OESStandardDerivatives.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,10 +24,10 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface OESStandardDerivatives {
-    const unsigned int FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
+    const unsigned long FRAGMENT_SHADER_DERIVATIVE_HINT_OES = 0x8B8B;
 };

Modified: trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/OESVertexArrayObject.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -29,8 +29,8 @@
     GenerateIsReachable=ImplWebGLRenderingContext,
     NoInterfaceObject,
 ] interface OESVertexArrayObject {
-    const unsigned int VERTEX_ARRAY_BINDING_OES = 0x85B5;
-    
+    const unsigned long VERTEX_ARRAY_BINDING_OES = 0x85B5;
+
     [StrictTypeChecking] WebGLVertexArrayObjectOES createVertexArrayOES();
     [StrictTypeChecking] void deleteVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);
     [StrictTypeChecking] boolean isVertexArrayOES(optional WebGLVertexArrayObjectOES? arrayObject = null);

Modified: trunk/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/WebGLCompressedTextureATC.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,13 +24,12 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface WebGLCompressedTextureATC {
-    /* Compressed Texture Formats */
-    const unsigned int COMPRESSED_RGB_ATC_WEBGL                     = 0x8C92;
-    const unsigned int COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL     = 0x8C93;
-    const unsigned int COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
+    const unsigned long COMPRESSED_RGB_ATC_WEBGL = 0x8C92;
+    const unsigned long COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL = 0x8C93;
+    const unsigned long COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL = 0x87EE;
 };

Modified: trunk/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,14 +24,13 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface WebGLCompressedTexturePVRTC {
-    /* Compressed Texture Formats */
-    const unsigned int COMPRESSED_RGB_PVRTC_4BPPV1_IMG  = 0x8C00;
-    const unsigned int COMPRESSED_RGB_PVRTC_2BPPV1_IMG  = 0x8C01;
-    const unsigned int COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
-    const unsigned int COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
+    const unsigned long COMPRESSED_RGB_PVRTC_4BPPV1_IMG = 0x8C00;
+    const unsigned long COMPRESSED_RGB_PVRTC_2BPPV1_IMG = 0x8C01;
+    const unsigned long COMPRESSED_RGBA_PVRTC_4BPPV1_IMG = 0x8C02;
+    const unsigned long COMPRESSED_RGBA_PVRTC_2BPPV1_IMG = 0x8C03;
 };

Modified: trunk/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,14 +24,13 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface WebGLCompressedTextureS3TC {
-    /* Compressed Texture Formats */
-    const unsigned int COMPRESSED_RGB_S3TC_DXT1_EXT        = 0x83F0;
-    const unsigned int COMPRESSED_RGBA_S3TC_DXT1_EXT       = 0x83F1;
-    const unsigned int COMPRESSED_RGBA_S3TC_DXT3_EXT       = 0x83F2;
-    const unsigned int COMPRESSED_RGBA_S3TC_DXT5_EXT       = 0x83F3;
+    const unsigned long COMPRESSED_RGB_S3TC_DXT1_EXT = 0x83F0;
+    const unsigned long COMPRESSED_RGBA_S3TC_DXT1_EXT = 0x83F1;
+    const unsigned long COMPRESSED_RGBA_S3TC_DXT3_EXT = 0x83F2;
+    const unsigned long COMPRESSED_RGBA_S3TC_DXT5_EXT = 0x83F3;
 };

Modified: trunk/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/WebGLDebugRendererInfo.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,11 +24,11 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface WebGLDebugRendererInfo {
-    const unsigned int UNMASKED_VENDOR_WEBGL = 0x9245;
-    const unsigned int UNMASKED_RENDERER_WEBGL = 0x9246;
+    const unsigned long UNMASKED_VENDOR_WEBGL = 0x9245;
+    const unsigned long UNMASKED_RENDERER_WEBGL = 0x9246;
 };

Modified: trunk/Source/WebCore/html/canvas/WebGLDepthTexture.idl (200298 => 200299)


--- trunk/Source/WebCore/html/canvas/WebGLDepthTexture.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Source/WebCore/html/canvas/WebGLDepthTexture.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -24,10 +24,10 @@
  */
 
 [
-    NoInterfaceObject,
     Conditional=WEBGL,
+    DoNotCheckConstants,
     GenerateIsReachable=ImplWebGLRenderingContext,
-    DoNotCheckConstants
+    NoInterfaceObject,
 ] interface WebGLDepthTexture {
-    const unsigned int UNSIGNED_INT_24_8_WEBGL = 0x84FA;
+    const unsigned long UNSIGNED_INT_24_8_WEBGL = 0x84FA;
 };

Modified: trunk/Tools/ChangeLog (200298 => 200299)


--- trunk/Tools/ChangeLog	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Tools/ChangeLog	2016-05-01 04:17:54 UTC (rev 200299)
@@ -1,5 +1,17 @@
 2016-04-30  Darin Adler  <[email protected]>
 
+        Streamline and remove unused bindings generation code
+        https://bugs.webkit.org/show_bug.cgi?id=157237
+
+        Reviewed by Chris Dumez.
+
+        * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl:
+        * WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
+        * WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
+        Replace non-standard "int" with standard "long", which means the same thing.
+
+2016-04-30  Darin Adler  <[email protected]>
+
         Next batch of conversions to use C++ enum class instead of strings for enumerations
         https://bugs.webkit.org/show_bug.cgi?id=157232
 

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl (200298 => 200299)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityController.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -30,7 +30,7 @@
     readonly attribute DOMString platformName;
     readonly attribute AccessibilityUIElement rootElement;
     readonly attribute AccessibilityUIElement focusedElement;
-    AccessibilityUIElement elementAtPoint(int x, int y);
+    AccessibilityUIElement elementAtPoint(long x, long y);
     AccessibilityUIElement accessibleElementById(DOMString id);
     
     boolean addNotificationListener(object functionCallback);

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl (200298 => 200299)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -31,7 +31,7 @@
     readonly attribute DOMString documentURI;
 
     // Element access.
-    AccessibilityUIElement elementAtPoint(int x, int y);
+    AccessibilityUIElement elementAtPoint(long x, long y);
     AccessibilityUIElement childAtIndex(unsigned long index);
     unsigned long indexOfChild(AccessibilityUIElement child);
     AccessibilityUIElement linkedUIElementAtIndex(unsigned long index);
@@ -54,7 +54,7 @@
     readonly attribute DOMString url;
     readonly attribute DOMString speak;
     readonly attribute DOMString orientation;
-    readonly attribute int insertionPointLineNumber;
+    readonly attribute long insertionPointLineNumber;
     readonly attribute DOMString selectedTextRange;
 
     DOMString stringAttributeValue(DOMString attr);
@@ -70,9 +70,9 @@
     boolean isDecrementActionSupported();
 
     readonly attribute DOMString stringValue;
-    readonly attribute int intValue;
-    readonly attribute int minValue;
-    readonly attribute int maxValue;
+    readonly attribute long intValue;
+    readonly attribute long minValue;
+    readonly attribute long maxValue;
     
     readonly attribute boolean isEnabled;
     readonly attribute boolean isRequired;
@@ -91,22 +91,22 @@
     readonly attribute boolean isIgnored;
     readonly attribute boolean isOffScreen;
     readonly attribute boolean isValid;
-    readonly attribute int hierarchicalLevel;
+    readonly attribute long hierarchicalLevel;
     readonly attribute boolean ariaIsGrabbed;
     readonly attribute DOMString ariaDropEffects;
     readonly attribute DOMString classList;
 
-    readonly attribute int x;
-    readonly attribute int y;
-    readonly attribute int width;
-    readonly attribute int height;
-    readonly attribute int clickPointX;
-    readonly attribute int clickPointY;
+    readonly attribute long x;
+    readonly attribute long y;
+    readonly attribute long width;
+    readonly attribute long height;
+    readonly attribute long clickPointX;
+    readonly attribute long clickPointY;
 
-    readonly attribute int childrenCount;
-    readonly attribute int selectedChildrenCount;
-    readonly attribute int rowCount;
-    readonly attribute int columnCount;
+    readonly attribute long childrenCount;
+    readonly attribute long selectedChildrenCount;
+    readonly attribute long rowCount;
+    readonly attribute long columnCount;
 
     // Actions.
     void increment();
@@ -121,10 +121,10 @@
     DOMString attributesOfDocumentLinks();
 
     // Text info.
-    DOMString characterAtOffset(int offset);
-    DOMString wordAtOffset(int offset);
-    DOMString lineAtOffset(int offset);
-    DOMString sentenceAtOffset(int offset);
+    DOMString characterAtOffset(long offset);
+    DOMString wordAtOffset(long offset);
+    DOMString lineAtOffset(long offset);
+    DOMString sentenceAtOffset(long offset);
     
     // Table info.
     DOMString attributesOfColumnHeaders();
@@ -138,11 +138,11 @@
     AccessibilityUIElement disclosedByRow();
     AccessibilityUIElement disclosedRowAtIndex(unsigned long index);
     AccessibilityUIElement rowAtIndex(unsigned long index);
-    int indexInTable();
+    long indexInTable();
     DOMString rowIndexRange();
     DOMString columnIndexRange();
-    int rowCount();
-    int columnCount();
+    long rowCount();
+    long columnCount();
     object columnHeaders();
     object rowHeaders();
 
@@ -152,14 +152,14 @@
 
     // Paramaterized attributes.
     DOMString parameterizedAttributeNames();
-    int lineForIndex(int index);
-    DOMString rangeForLine(int index);
-    DOMString rangeForPosition(int x, int y);
+    long lineForIndex(long index);
+    DOMString rangeForLine(long index);
+    DOMString rangeForPosition(long x, long y);
     DOMString boundsForRange(unsigned long location, unsigned long length);
     DOMString stringForRange(unsigned long location, unsigned long length);
     DOMString attributedStringForRange(unsigned long location, unsigned long length);
     boolean attributedStringRangeIsMisspelled(unsigned long location, unsigned long length);
-    [PassContext] unsigned int uiElementCountForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly, boolean immediateDescendantsOnly);
+    [PassContext] unsigned long uiElementCountForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly, boolean immediateDescendantsOnly);
     [PassContext] AccessibilityUIElement uiElementForSearchPredicate(AccessibilityUIElement startElement, boolean isDirectionNext, object searchKey, DOMString searchText, boolean visibleOnly, boolean immediateDescendantsOnly);
     [PassContext] DOMString selectTextWithCriteria(DOMString ambiguityResolution, object searchStrings, DOMString replacementString, DOMString activity);
     boolean setSelectedTextRange(unsigned long location, unsigned long length);
@@ -169,8 +169,8 @@
     readonly attribute AccessibilityUIElement verticalScrollbar;
 
     void scrollToMakeVisible();
-    void scrollToGlobalPoint(int x, int y);
-    void scrollToMakeVisibleWithSubFocus(int x, int y, int width, int height);
+    void scrollToGlobalPoint(long x, long y);
+    void scrollToMakeVisibleWithSubFocus(long x, long y, long width, long height);
 
     void takeFocus();
     boolean scrollPageDown();
@@ -186,18 +186,18 @@
     void resetSelectedTextMarkerRange();
     AccessibilityTextMarker startTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange range);
     AccessibilityTextMarker endTextMarkerForTextMarkerRange(AccessibilityTextMarkerRange range);
-    AccessibilityTextMarker endTextMarkerForBounds(int x, int y, int width, int height);
-    AccessibilityTextMarker startTextMarkerForBounds(int x, int y, int width, int height);
-    AccessibilityTextMarker textMarkerForPoint(int x, int y);
+    AccessibilityTextMarker endTextMarkerForBounds(long x, long y, long width, long height);
+    AccessibilityTextMarker startTextMarkerForBounds(long x, long y, long width, long height);
+    AccessibilityTextMarker textMarkerForPoint(long x, long y);
     AccessibilityTextMarker previousTextMarker(AccessibilityTextMarker marker);
     AccessibilityTextMarker nextTextMarker(AccessibilityTextMarker marker);
     AccessibilityUIElement accessibilityElementForTextMarker(AccessibilityTextMarker marker);
     DOMString stringForTextMarkerRange(AccessibilityTextMarkerRange range);
-    int textMarkerRangeLength(AccessibilityTextMarkerRange range);
+    long textMarkerRangeLength(AccessibilityTextMarkerRange range);
     boolean attributedStringForTextMarkerRangeContainsAttribute(DOMString attr, AccessibilityTextMarkerRange range);
-    int indexForTextMarker(AccessibilityTextMarker marker);
+    long indexForTextMarker(AccessibilityTextMarker marker);
     boolean isTextMarkerValid(AccessibilityTextMarker marker);
-    AccessibilityTextMarker textMarkerForIndex(int textIndex);
+    AccessibilityTextMarker textMarkerForIndex(long textIndex);
     readonly attribute AccessibilityTextMarker startTextMarker;
     readonly attribute AccessibilityTextMarker endTextMarker;
     boolean setSelectedVisibleTextRange(AccessibilityTextMarkerRange range);
@@ -222,8 +222,8 @@
     // iOS specific accessibility methods.
     readonly attribute DOMString identifier;
     readonly attribute DOMString traits;
-    readonly attribute int elementTextPosition;
-    readonly attribute int elementTextLength;
+    readonly attribute long elementTextPosition;
+    readonly attribute long elementTextLength;
     readonly attribute DOMString stringForSelection;
     object elementsForRange(unsigned long location, unsigned long length);
     void increaseTextSelection();

Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl (200298 => 200299)


--- trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl	2016-04-30 22:06:21 UTC (rev 200298)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl	2016-05-01 04:17:54 UTC (rev 200299)
@@ -74,7 +74,7 @@
     void setTabKeyCyclesThroughElements(boolean enabled);
     void setSerializeHTTPLoads();
     void dispatchPendingLoadRequests();
-    void setCacheModel(int model);
+    void setCacheModel(long model);
     void setAsynchronousSpellCheckingEnabled(boolean value);
     void setPrinting();
     void setShouldDecideNavigationPolicyAfterDelay(boolean value);
@@ -95,7 +95,7 @@
     void display();
 
     // Printing
-    boolean isPageBoxVisible(int pageIndex);
+    boolean isPageBoxVisible(long pageIndex);
 
     [PassContext] void setValueForUser(object element, DOMString value);
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to