Index: Source/devtools/front_end/sdk/DOMModel.js |
diff --git a/Source/devtools/front_end/sdk/DOMModel.js b/Source/devtools/front_end/sdk/DOMModel.js |
index d6de3a453eef6d2c75a44f09cdd7e160cd741eea..374f748743711322c2429b8f4118e907b819d216 100644 |
--- a/Source/devtools/front_end/sdk/DOMModel.js |
+++ b/Source/devtools/front_end/sdk/DOMModel.js |
@@ -229,11 +229,11 @@ WebInspector.DOMNode.prototype = { |
*/ |
hasPseudoElements: function() |
{ |
- return Object.keys(this._pseudoElements).length !== 0; |
+ return this._pseudoElements.size > 0; |
}, |
/** |
- * @return {!Object.<string, !WebInspector.DOMNode>} |
+ * @return {!Map<string, !WebInspector.DOMNode>} |
*/ |
pseudoElements: function() |
{ |
@@ -241,6 +241,26 @@ WebInspector.DOMNode.prototype = { |
}, |
/** |
+ * @return {?WebInspector.DOMNode} |
+ */ |
+ beforePseudoElement: function() |
+ { |
+ if (!this._pseudoElements) |
+ return null; |
+ return this._pseudoElements.get(WebInspector.DOMNode.PseudoElementNames.Before); |
+ }, |
+ |
+ /** |
+ * @return {?WebInspector.DOMNode} |
+ */ |
+ afterPseudoElement: function() |
+ { |
+ if (!this._pseudoElements) |
+ return null; |
+ return this._pseudoElements.get(WebInspector.DOMNode.PseudoElementNames.After); |
+ }, |
+ |
+ /** |
* @return {boolean} |
*/ |
isInShadowTree: function() |
@@ -603,7 +623,7 @@ WebInspector.DOMNode.prototype = { |
_removeChild: function(node) |
{ |
if (node.pseudoType()) { |
- delete this._pseudoElements[node.pseudoType()]; |
+ this._pseudoElements.delete(node.pseudoType()); |
} else { |
var shadowRootIndex = this._shadowRoots.indexOf(node); |
if (shadowRootIndex !== -1) |
@@ -639,14 +659,14 @@ WebInspector.DOMNode.prototype = { |
*/ |
_setPseudoElements: function(payloads) |
{ |
- this._pseudoElements = {}; |
+ this._pseudoElements = new Map(); |
if (!payloads) |
return; |
for (var i = 0; i < payloads.length; ++i) { |
var node = new WebInspector.DOMNode(this._domModel, this.ownerDocument, this._isInShadowTree, payloads[i]); |
node.parentNode = this; |
- this._pseudoElements[node.pseudoType()] = node; |
+ this._pseudoElements.set(node.pseudoType(), node); |
} |
}, |
@@ -1320,8 +1340,8 @@ WebInspector.DOMModel.prototype = { |
var node = new WebInspector.DOMNode(this, parent.ownerDocument, false, pseudoElement); |
node.parentNode = parent; |
this._idToDOMNode[node.id] = node; |
- console.assert(!parent._pseudoElements[node.pseudoType()]); |
- parent._pseudoElements[node.pseudoType()] = node; |
+ console.assert(!parent._pseudoElements.get(node.pseudoType())); |
+ parent._pseudoElements.set(node.pseudoType(), node); |
this.dispatchEventToListeners(WebInspector.DOMModel.Events.NodeInserted, node); |
}, |
@@ -1353,8 +1373,8 @@ WebInspector.DOMModel.prototype = { |
for (var i = 0; i < node._shadowRoots.length; ++i) |
this._unbind(node._shadowRoots[i]); |
var pseudoElements = node.pseudoElements(); |
- for (var id in pseudoElements) |
- this._unbind(pseudoElements[id]); |
+ for (var pseudoType of pseudoElements.keys()) |
+ this._unbind(pseudoElements.get(pseudoType)); |
if (node._templateContent) |
this._unbind(node._templateContent); |
}, |