| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Neither the name of Google Inc. nor the names of its | 10 * * Neither the name of Google Inc. nor the names of its |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 | 133 |
| 134 static void assertPostcondition(const Node* node) | 134 static void assertPostcondition(const Node* node) |
| 135 { | 135 { |
| 136 #if ENABLE(ASSERT) | 136 #if ENABLE(ASSERT) |
| 137 if (node) | 137 if (node) |
| 138 assertPrecondition(*node); | 138 assertPrecondition(*node); |
| 139 #endif | 139 #endif |
| 140 } | 140 } |
| 141 | 141 |
| 142 static Node* resolveDistributionStartingAt(const Node*, TraversalDirection); | 142 static Node* resolveDistributionStartingAt(const Node*, TraversalDirection); |
| 143 static Node* v1ResolveDistributionStartingAt(const Node&, TraversalDirection
); | |
| 144 static Node* v0ResolveDistributionStartingAt(const Node&, TraversalDirection
); | 143 static Node* v0ResolveDistributionStartingAt(const Node&, TraversalDirection
); |
| 145 | 144 |
| 146 static Node* traverseNext(const Node&); | 145 static Node* traverseNext(const Node&); |
| 147 static Node* traverseNext(const Node&, const Node* stayWithin); | 146 static Node* traverseNext(const Node&, const Node* stayWithin); |
| 148 static Node* traverseNextSkippingChildren(const Node&, const Node* stayWithi
n); | 147 static Node* traverseNextSkippingChildren(const Node&, const Node* stayWithi
n); |
| 149 static Node* traversePrevious(const Node&); | 148 static Node* traversePrevious(const Node&); |
| 150 | 149 |
| 151 static Node* traverseFirstChild(const Node&); | 150 static Node* traverseFirstChild(const Node&); |
| 152 static Node* traverseLastChild(const Node&); | 151 static Node* traverseLastChild(const Node&); |
| 153 static Node* traverseChild(const Node&, TraversalDirection); | 152 static Node* traverseChild(const Node&, TraversalDirection); |
| 154 | 153 |
| 155 static ContainerNode* traverseParent(const Node&, ParentTraversalDetails* =
0); | 154 static ContainerNode* traverseParent(const Node&, ParentTraversalDetails* =
0); |
| 156 // TODO(hayato): Make ParentTraversalDetails be aware of slot elements too. | 155 // TODO(hayato): Make ParentTraversalDetails be aware of slot elements too. |
| 157 static ContainerNode* v1TraverseParent(const Node&); | 156 static ContainerNode* traverseParentForV0(const Node&, ParentTraversalDetai
ls* = 0); |
| 158 static ContainerNode* v0TraverseParent(const Node&, ParentTraversalDetails*
= 0); | 157 static ContainerNode* traverseParentOrHost(const Node&); |
| 159 | 158 |
| 160 static Node* traverseNextSibling(const Node&); | 159 static Node* traverseNextSibling(const Node&); |
| 161 static Node* traversePreviousSibling(const Node&); | 160 static Node* traversePreviousSibling(const Node&); |
| 162 | 161 |
| 163 static Node* traverseSiblings(const Node&, TraversalDirection); | 162 static Node* traverseSiblings(const Node&, TraversalDirection); |
| 164 static Node* v1TraverseSiblings(const Node&, TraversalDirection); | 163 static Node* traverseSiblingsForV1HostChild(const Node&, TraversalDirection)
; |
| 165 static Node* v0TraverseSiblings(const Node&, TraversalDirection); | 164 static Node* traverseSiblingsForV0Distribution(const Node&, TraversalDirecti
on); |
| 166 | 165 |
| 167 static Node* traverseSiblingsOrShadowInsertionPointSiblings(const Node&, Tra
versalDirection); | |
| 168 | |
| 169 static ContainerNode* traverseParentOrHost(const Node&); | |
| 170 static Node* traverseNextAncestorSibling(const Node&); | 166 static Node* traverseNextAncestorSibling(const Node&); |
| 171 static Node* traversePreviousAncestorSibling(const Node&); | 167 static Node* traversePreviousAncestorSibling(const Node&); |
| 172 }; | 168 }; |
| 173 | 169 |
| 174 inline ContainerNode* ComposedTreeTraversal::parent(const Node& node, ParentTrav
ersalDetails* details) | 170 inline ContainerNode* ComposedTreeTraversal::parent(const Node& node, ParentTrav
ersalDetails* details) |
| 175 { | 171 { |
| 176 assertPrecondition(node); | 172 assertPrecondition(node); |
| 177 ContainerNode* result = traverseParent(node, details); | 173 ContainerNode* result = traverseParent(node, details); |
| 178 assertPostcondition(result); | 174 assertPostcondition(result); |
| 179 return result; | 175 return result; |
| (...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 } | 305 } |
| 310 | 306 |
| 311 inline Node* ComposedTreeTraversal::traverseLastChild(const Node& node) | 307 inline Node* ComposedTreeTraversal::traverseLastChild(const Node& node) |
| 312 { | 308 { |
| 313 return traverseChild(node, TraversalDirectionBackward); | 309 return traverseChild(node, TraversalDirectionBackward); |
| 314 } | 310 } |
| 315 | 311 |
| 316 } // namespace | 312 } // namespace |
| 317 | 313 |
| 318 #endif | 314 #endif |
| OLD | NEW |