HTML*ListElement wrappers have custom getOwnPropertySlot()s for no good reason.
authorakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jun 2014 20:18:09 +0000 (20:18 +0000)
committerakling@apple.com <akling@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Jun 2014 20:18:09 +0000 (20:18 +0000)
<https://webkit.org/b/133653>

The JavaScript bindings generator was a bit overzealous in forcing every
interface with "List" in the name to have its attributes on the instance.
This caused some elements (HTMLUListElement, etc.) to automatically opt out
of eager prototype attribute reification.

Reviewed by Mark Hahnenberg.

* bindings/scripts/CodeGeneratorJS.pm:
(InterfaceRequiresAttributesOnInstance):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169709 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/bindings/scripts/CodeGeneratorJS.pm

index 2df8fcb..73f6c32 100644 (file)
@@ -1,3 +1,18 @@
+2014-06-09  Andreas Kling  <akling@apple.com>
+
+        HTML*ListElement wrappers have custom getOwnPropertySlot()s for no good reason.
+        <https://webkit.org/b/133653>
+
+        The JavaScript bindings generator was a bit overzealous in forcing every
+        interface with "List" in the name to have its attributes on the instance.
+        This caused some elements (HTMLUListElement, etc.) to automatically opt out
+        of eager prototype attribute reification.
+
+        Reviewed by Mark Hahnenberg.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (InterfaceRequiresAttributesOnInstance):
+
 2014-06-09  Jer Noble  <jer.noble@apple.com>
 
         ASSERT(!m_inRemovedLastRefFunction) in Element::addShadowRoot while destroying a document
index 58535e2..bd09e7b 100644 (file)
@@ -642,7 +642,7 @@ sub InterfaceRequiresAttributesOnInstance
     return 1 if InterfaceRequiresAttributesOnInstanceForCompatibility($interface);
 
     #FIXME: We currently clobber performance for a number of the list types
-    return 1 if $interfaceName =~ "List";
+    return 1 if $interfaceName =~ "List" && !($interfaceName =~ "Element");
 
     return 0;
 }