[Webkit-unassigned] [Bug 123895] Move array position caching out from HTMLCollection

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Nov 6 09:34:53 PST 2013


https://bugs.webkit.org/show_bug.cgi?id=123895


Darin Adler <darin at apple.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #216180|review?                     |review+
               Flag|                            |




--- Comment #2 from Darin Adler <darin at apple.com>  2013-11-06 09:33:40 PST ---
(From update of attachment 216180)
View in context: https://bugs.webkit.org/attachment.cgi?id=216180&action=review

> Source/WebCore/html/HTMLCollection.cpp:134
> +HTMLCollection::HTMLCollection(ContainerNode& ownerNode, CollectionType type, ElementTraversalType traversalType)

I think that the enum is great for the argument.

> Source/WebCore/html/HTMLCollection.cpp:144
> +    , m_elementTraversalType(traversalType)

But for the local, I might suggest we use a boolean named m_requiresCustomForwardTraversal or something like that.

In other words, I liked the readability of the old pattern where the data member was a boolean.

> Source/WebCore/html/HTMLCollection.h:76
> +    Element* traverseFirstElement(ContainerNode* root) const;

Nothing new, but I am not a big fan of the name “traverse first element”. The meaning of traverse here is unclear.

> Source/WebCore/html/HTMLCollection.h:143
> +    virtual Element* virtualElementAfter(Element*) const { ASSERT_NOT_REACHED(); return nullptr; }

So we can’t use pure virtual because we only need this for classes that are CustomForwardOnlyTraversal. Ugly.

> Source/WebCore/html/HTMLFormControlsCollection.cpp:77
> +    unsigned i = 0;
> +    for (; i < elementVector.size(); ++i) {
> +        auto& associatedElement = *elementVector[i];
> +        if (associatedElement.isEnumeratable() && &associatedElement.asHTMLElement() == &element)
> +            break;
> +    }
> +    return i;

I would put the return inside the loop, and use a normal for loop without an “outside the loop” i variable. I think that would also make it slightly clearer what the function returns when nothing is found. But maybe this is more elegant.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list