Inline Node::traverseNextNode
authorantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 May 2012 09:28:52 +0000 (09:28 +0000)
committerantti@apple.com <antti@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 11 May 2012 09:28:52 +0000 (09:28 +0000)
commit7ea8e44fb7c611408918b732de5c182f208961b5
tree5f043d43552be61e091aa0f4b3b644a2750f5e7f
parentb1fe102ed302d60014cadbb8992b8116f74cf18f
Inline Node::traverseNextNode
https://bugs.webkit.org/show_bug.cgi?id=85844

Reviewed by Ryosuke Niwa.

Inline traverseNextNode and traverseNextSibling to reduce entry/exit overhead and allow better code generation
for many hot loops.

In this version only the firstChild()/nextSibling() tests are inlined and the ancestor traversal is not.

Performance bots will tell if this was worthwhile.

* dom/ContainerNode.h:
(WebCore::Node::traverseNextNode):
(WebCore):
(WebCore::Node::traverseNextSibling):
* dom/Node.cpp:
(WebCore::Node::traverseNextAncestorSibling):
* dom/Node.h:
(Node):
* bindings/v8/RetainedDOMInfo.cpp:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@116742 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/WebCore.exp.in
Source/WebCore/bindings/v8/RetainedDOMInfo.cpp
Source/WebCore/dom/ContainerNode.h
Source/WebCore/dom/Node.cpp
Source/WebCore/dom/Node.h