| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. |
| 3 * Copyright (C) 2009 Joseph Pecoraro | 3 * Copyright (C) 2009 Joseph Pecoraro |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 557 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 } | 568 } |
| 569 } | 569 } |
| 570 } else { | 570 } else { |
| 571 property.parentObject = value; | 571 property.parentObject = value; |
| 572 treeNode.appendChild(new WebInspector.ObjectPropertyTreeElement(prop
erty)); | 572 treeNode.appendChild(new WebInspector.ObjectPropertyTreeElement(prop
erty)); |
| 573 } | 573 } |
| 574 } | 574 } |
| 575 if (internalProperties) { | 575 if (internalProperties) { |
| 576 for (var i = 0; i < internalProperties.length; i++) { | 576 for (var i = 0; i < internalProperties.length; i++) { |
| 577 internalProperties[i].parentObject = value; | 577 internalProperties[i].parentObject = value; |
| 578 treeNode.appendChild(new WebInspector.ObjectPropertyTreeElement(inte
rnalProperties[i])); | 578 var treeElement = new WebInspector.ObjectPropertyTreeElement(interna
lProperties[i]); |
| 579 if (internalProperties[i].name === "[[Entries]]") { |
| 580 treeElement.setExpandable(true); |
| 581 treeElement.expand(); |
| 582 } |
| 583 treeNode.appendChild(treeElement); |
| 579 } | 584 } |
| 580 } | 585 } |
| 581 if (value && value.type === "function") { | 586 if (value && value.type === "function") { |
| 582 // Whether function has TargetFunction internal property. | 587 // Whether function has TargetFunction internal property. |
| 583 // This is a simple way to tell that the function is actually a bound fu
nction (we are not told). | 588 // This is a simple way to tell that the function is actually a bound fu
nction (we are not told). |
| 584 // Bound function never has inner scope and doesn't need corresponding U
I node. | 589 // Bound function never has inner scope and doesn't need corresponding U
I node. |
| 585 var hasTargetFunction = false; | 590 var hasTargetFunction = false; |
| 586 | 591 |
| 587 if (internalProperties) { | 592 if (internalProperties) { |
| 588 for (var i = 0; i < internalProperties.length; i++) { | 593 for (var i = 0; i < internalProperties.length; i++) { |
| 589 if (internalProperties[i].name === "[[TargetFunction]]") { | 594 if (internalProperties[i].name === "[[TargetFunction]]") { |
| 590 hasTargetFunction = true; | 595 hasTargetFunction = true; |
| 591 break; | 596 break; |
| 592 } | 597 } |
| 593 } | 598 } |
| 594 } | 599 } |
| 595 if (!hasTargetFunction) | 600 if (!hasTargetFunction) |
| 596 treeNode.appendChild(new WebInspector.FunctionScopeMainTreeElement(v
alue)); | 601 treeNode.appendChild(new WebInspector.FunctionScopeMainTreeElement(v
alue)); |
| 597 } | 602 } |
| 598 if (value && value.type === "object" && (value.subtype === "map" || value.su
btype === "set" || value.subtype === "iterator")) | |
| 599 treeNode.appendChild(new WebInspector.CollectionEntriesMainTreeElement(v
alue)); | |
| 600 | |
| 601 WebInspector.ObjectPropertyTreeElement._appendEmptyPlaceholderIfNeeded(treeN
ode, emptyPlaceholder); | 603 WebInspector.ObjectPropertyTreeElement._appendEmptyPlaceholderIfNeeded(treeN
ode, emptyPlaceholder); |
| 602 } | 604 } |
| 603 | 605 |
| 604 /** | 606 /** |
| 605 * @param {!TreeElement} treeNode | 607 * @param {!TreeElement} treeNode |
| 606 * @param {?string=} emptyPlaceholder | 608 * @param {?string=} emptyPlaceholder |
| 607 */ | 609 */ |
| 608 WebInspector.ObjectPropertyTreeElement._appendEmptyPlaceholderIfNeeded = functio
n(treeNode, emptyPlaceholder) | 610 WebInspector.ObjectPropertyTreeElement._appendEmptyPlaceholderIfNeeded = functio
n(treeNode, emptyPlaceholder) |
| 609 { | 611 { |
| 610 if (treeNode.childCount()) | 612 if (treeNode.childCount()) |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 | 725 |
| 724 this._remoteObject.functionDetails(didGetDetails.bind(this)); | 726 this._remoteObject.functionDetails(didGetDetails.bind(this)); |
| 725 }, | 727 }, |
| 726 | 728 |
| 727 __proto__: TreeElement.prototype | 729 __proto__: TreeElement.prototype |
| 728 } | 730 } |
| 729 | 731 |
| 730 /** | 732 /** |
| 731 * @constructor | 733 * @constructor |
| 732 * @extends {TreeElement} | 734 * @extends {TreeElement} |
| 733 * @param {!WebInspector.RemoteObject} remoteObject | |
| 734 */ | |
| 735 WebInspector.CollectionEntriesMainTreeElement = function(remoteObject) | |
| 736 { | |
| 737 TreeElement.call(this, "<entries>", true); | |
| 738 this.toggleOnClick = true; | |
| 739 this.selectable = false; | |
| 740 this._remoteObject = remoteObject; | |
| 741 this.expand(); | |
| 742 } | |
| 743 | |
| 744 WebInspector.CollectionEntriesMainTreeElement.prototype = { | |
| 745 onpopulate: function() | |
| 746 { | |
| 747 /** | |
| 748 * @param {?Array.<!DebuggerAgent.CollectionEntry>} entries | |
| 749 * @this {WebInspector.CollectionEntriesMainTreeElement} | |
| 750 */ | |
| 751 function didGetCollectionEntries(entries) | |
| 752 { | |
| 753 if (!entries) | |
| 754 return; | |
| 755 this.removeChildren(); | |
| 756 | |
| 757 var entriesLocalObject = []; | |
| 758 var runtimeModel = this._remoteObject.target().runtimeModel; | |
| 759 for (var i = 0; i < entries.length; ++i) { | |
| 760 var entry = entries[i]; | |
| 761 if (entry.key) { | |
| 762 entriesLocalObject.push(new WebInspector.MapEntryLocalJSONOb
ject({ | |
| 763 key: runtimeModel.createRemoteObject(entry.key), | |
| 764 value: runtimeModel.createRemoteObject(entry.value) | |
| 765 })); | |
| 766 } else { | |
| 767 entriesLocalObject.push(runtimeModel.createRemoteObject(entr
y.value)); | |
| 768 } | |
| 769 } | |
| 770 WebInspector.ObjectPropertyTreeElement._populate(this, WebInspector.
RemoteObject.fromLocalObject(entriesLocalObject), true, WebInspector.UIString("N
o Entries")); | |
| 771 this.title = "<entries>[" + entriesLocalObject.length + "]"; | |
| 772 } | |
| 773 | |
| 774 this._remoteObject.collectionEntries(didGetCollectionEntries.bind(this))
; | |
| 775 }, | |
| 776 | |
| 777 __proto__: TreeElement.prototype | |
| 778 } | |
| 779 | |
| 780 /** | |
| 781 * @constructor | |
| 782 * @extends {TreeElement} | |
| 783 * @param {string} title | 735 * @param {string} title |
| 784 * @param {!WebInspector.RemoteObject} remoteObject | 736 * @param {!WebInspector.RemoteObject} remoteObject |
| 785 */ | 737 */ |
| 786 WebInspector.ScopeTreeElement = function(title, remoteObject) | 738 WebInspector.ScopeTreeElement = function(title, remoteObject) |
| 787 { | 739 { |
| 788 TreeElement.call(this, title, true); | 740 TreeElement.call(this, title, true); |
| 789 this.toggleOnClick = true; | 741 this.toggleOnClick = true; |
| 790 this.selectable = false; | 742 this.selectable = false; |
| 791 this._remoteObject = remoteObject; | 743 this._remoteObject = remoteObject; |
| 792 } | 744 } |
| (...skipping 618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1411 | 1363 |
| 1412 result = currentName + (result ? "." + result : ""); | 1364 result = currentName + (result ? "." + result : ""); |
| 1413 current = current.parent; | 1365 current = current.parent; |
| 1414 } | 1366 } |
| 1415 var treeOutlineId = treeElement.treeOutline[WebInspector.ObjectPropertie
sSectionExpandController._treeOutlineId]; | 1367 var treeOutlineId = treeElement.treeOutline[WebInspector.ObjectPropertie
sSectionExpandController._treeOutlineId]; |
| 1416 result = treeOutlineId + (result ? ":" + result : ""); | 1368 result = treeOutlineId + (result ? ":" + result : ""); |
| 1417 treeElement[WebInspector.ObjectPropertiesSectionExpandController._cached
PathSymbol] = result; | 1369 treeElement[WebInspector.ObjectPropertiesSectionExpandController._cached
PathSymbol] = result; |
| 1418 return result; | 1370 return result; |
| 1419 } | 1371 } |
| 1420 } | 1372 } |
| OLD | NEW |