|
Make sure the rootNode of a LiveNodeListBase is always a ContainerNode
Make sure the rootNode of a LiveNodeListBase is always a ContainerNode. This
simplifies the logic inside LiveNodeListBase. It also gets rid of ContainerNode
checks in HTMLCollection / LiveNodeList's traverseForwardToOffset() which are
hot in Dromaeo's dom-traverse.html. This improves the following test's score by
~3%:
- Bindings/node-list-access.html
The only exception was when Node.childNodes is called on a non-ContainerNode.
We now handle this special case separately by introducing an EmptyNodeList
class which inherits from NodeList instead of LiveNodeListBase.
This CL also moves the getElementsBy*() methods from Node to ContainerNode
as they only make sense for ContainerNodes. They are actually exposed to JS
on Element, not Node.
This patch is based on WebKit r158536 by < antti@apple.com>.
R=eseidel, esprehn, abarth
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=165598
Total comments: 6
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+192 lines, -169 lines) |
Patch |
|
M |
Source/core/core.gypi
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/ChildNodeList.h
|
View
|
1
2
3
4
|
2 chunks |
+5 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/ChildNodeList.cpp
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
Source/core/dom/ClassNodeList.h
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/ClassNodeList.cpp
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
Source/core/dom/ContainerNode.h
|
View
|
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/ContainerNode.cpp
|
View
|
1
2
3
4
|
6 chunks |
+49 lines, -2 lines |
0 comments
|
Download
|
|
A + |
Source/core/dom/EmptyNodeList.h
|
View
|
1
2
3
4
|
2 chunks |
+22 lines, -16 lines |
0 comments
|
Download
|
|
A + |
Source/core/dom/EmptyNodeList.cpp
|
View
|
1
2
3
|
2 chunks |
+9 lines, -7 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/LiveNodeList.h
|
View
|
1
2
3
4
|
6 chunks |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/LiveNodeList.cpp
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -9 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/NameNodeList.h
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/NameNodeList.cpp
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
Source/core/dom/Node.h
|
View
|
1
2
3
4
|
1 chunk |
+0 lines, -6 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/Node.cpp
|
View
|
|
5 chunks |
+3 lines, -46 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/NodeList.h
|
View
|
1
2
3
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/NodeList.cpp
|
View
|
1
2
3
|
2 chunks |
+3 lines, -0 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/NodeRareData.h
|
View
|
1
2
3
|
7 chunks |
+27 lines, -10 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/TagNodeList.h
|
View
|
1
2
3
4
|
4 chunks |
+5 lines, -5 lines |
0 comments
|
Download
|
|
M |
Source/core/dom/TagNodeList.cpp
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLAllCollection.h
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLAllCollection.cpp
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLCollection.h
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLCollection.cpp
|
View
|
1
2
3
4
|
8 chunks |
+11 lines, -23 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLFormControlsCollection.h
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLFormControlsCollection.cpp
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLNameCollection.h
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLNameCollection.cpp
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLOptionsCollection.h
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLOptionsCollection.cpp
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLTableRowsCollection.h
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/HTMLTableRowsCollection.cpp
|
View
|
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/LabelsNodeList.h
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/LabelsNodeList.cpp
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
Source/core/html/RadioNodeList.h
|
View
|
1
2
3
4
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
Source/core/html/RadioNodeList.cpp
|
View
|
1
2
3
4
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
Source/web/WebNode.cpp
|
View
|
1
2
3
|
2 chunks |
+4 lines, -1 line |
0 comments
|
Download
|
Total messages: 14 (0 generated)
|