2011-06-16 Julien Chaffraix <jchaffraix@webkit.org>
authorjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Jun 2011 16:50:19 +0000 (16:50 +0000)
committerjchaffraix@webkit.org <jchaffraix@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 16 Jun 2011 16:50:19 +0000 (16:50 +0000)
commit84762d14f8f321778b129ef4c77139ca56c37aa4
treec724bde5bc8c91f58025050d60fe0a851e93de82
parente3e4f965b07ca2d3bc293b3153f1df487374bcd4
2011-06-16  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Darin Adler.

        HTMLTable should cache its 'rows' collection results
        https://bugs.webkit.org/show_bug.cgi?id=62800

        * perf/table-rows-length-caching-expected.txt: Added.
        * perf/table-rows-length-caching.html: Added.
        This test checks that the call to table.rows is CONSTANT once it has
        been populated once (and the DOM is not mutated).
2011-06-16  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Darin Adler.

        HTMLTable should cache its 'rows' collection results
        https://bugs.webkit.org/show_bug.cgi?id=62800

        Test: perf/table-rows-length-caching.html

        Currently all our HTMLCollection's are recreated on call. This means that
        we don't cache the information about the collection between calls to, for
        example, table.rows.

        This change adds a CollectionCache to HTMLTableElement. It is similar to what
        is done for HTMLFormElement.

        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::collectionCache): This method does
        lazy initialization of the table's collectionCache.
        * html/HTMLTableElement.h: Added a new member and the previous
        method.

        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection): Pass
        the HTMLTableElement's CollectionCache so that we reuse the cached
        results.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@89035 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/perf/table-rows-length-caching-expected.txt [new file with mode: 0644]
LayoutTests/perf/table-rows-length-caching.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/html/HTMLTableElement.cpp
Source/WebCore/html/HTMLTableElement.h
Source/WebCore/html/HTMLTableRowsCollection.cpp