diff options
author | Steve Block <steveblock@google.com> | 2009-10-08 17:19:54 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2009-10-20 00:41:58 +0100 |
commit | 231d4e3152a9c27a73b6ac7badbe6be673aa3ddf (patch) | |
tree | a6c7e2d6cd7bfa7011cc39abbb436142d7a4a7c8 /WebCore/inspector/front-end/ScopeChainSidebarPane.js | |
parent | e196732677050bd463301566a68a643b6d14b907 (diff) | |
download | external_webkit-231d4e3152a9c27a73b6ac7badbe6be673aa3ddf.zip external_webkit-231d4e3152a9c27a73b6ac7badbe6be673aa3ddf.tar.gz external_webkit-231d4e3152a9c27a73b6ac7badbe6be673aa3ddf.tar.bz2 |
Merge webkit.org at R49305 : Automatic merge by git.
Change-Id: I8968561bc1bfd72b8923b7118d3728579c6dbcc7
Diffstat (limited to 'WebCore/inspector/front-end/ScopeChainSidebarPane.js')
-rw-r--r-- | WebCore/inspector/front-end/ScopeChainSidebarPane.js | 48 |
1 files changed, 20 insertions, 28 deletions
diff --git a/WebCore/inspector/front-end/ScopeChainSidebarPane.js b/WebCore/inspector/front-end/ScopeChainSidebarPane.js index a293fa0..fdfcd38 100644 --- a/WebCore/inspector/front-end/ScopeChainSidebarPane.js +++ b/WebCore/inspector/front-end/ScopeChainSidebarPane.js @@ -26,6 +26,7 @@ WebInspector.ScopeChainSidebarPane = function() { WebInspector.SidebarPane.call(this, WebInspector.UIString("Scope Variables")); + this._expandedProperties = []; } WebInspector.ScopeChainSidebarPane.prototype = { @@ -44,52 +45,43 @@ WebInspector.ScopeChainSidebarPane.prototype = { return; } - if (!callFrame._expandedProperties) { - // FIXME: fix this when https://bugs.webkit.org/show_bug.cgi?id=19410 is fixed. - // The callFrame is a JSInspectedObjectWrapper, so we are not allowed to assign - // an object created in the Inspector's context to that object. So create an - // Object from the inspectedWindow. - var inspectedWindow = InspectorController.inspectedWindow(); - callFrame._expandedProperties = new inspectedWindow.Object; - } - var foundLocalScope = false; var scopeChain = callFrame.scopeChain; for (var i = 0; i < scopeChain.length; ++i) { - var scopeObject = scopeChain[i]; + var scopeObjectProxy = scopeChain[i]; var title = null; - var subtitle = Object.describe(scopeObject, true); + var subtitle = scopeObjectProxy.description; var emptyPlaceholder = null; - var localScope = false; var extraProperties = null; - if (Object.prototype.toString.call(scopeObject) === "[object JSActivation]") { - if (!foundLocalScope) { - extraProperties = { "this": callFrame.thisObject }; - title = WebInspector.UIString("Local"); - } else - title = WebInspector.UIString("Closure"); + if (scopeObjectProxy.isLocal) { + foundLocalScope = true; + title = WebInspector.UIString("Local"); + emptyPlaceholder = WebInspector.UIString("No Variables"); + subtitle = null; + if (scopeObjectProxy.thisObject) + extraProperties = [ new WebInspector.ObjectPropertyProxy("this", scopeObjectProxy.thisObject) ]; + } else if (scopeObjectProxy.isClosure) { + title = WebInspector.UIString("Closure"); emptyPlaceholder = WebInspector.UIString("No Variables"); subtitle = null; - foundLocalScope = true; - localScope = true; } else if (i === (scopeChain.length - 1)) title = WebInspector.UIString("Global"); - else if (foundLocalScope && scopeObject instanceof InspectorController.inspectedWindow().Element) + else if (scopeObjectProxy.isElement) title = WebInspector.UIString("Event Target"); - else if (foundLocalScope && scopeObject instanceof InspectorController.inspectedWindow().Document) + else if (scopeObjectProxy.isDocument) title = WebInspector.UIString("Event Document"); - else if (!foundLocalScope && !localScope) + else if (scopeObjectProxy.isWithBlock) title = WebInspector.UIString("With Block"); if (!title || title === subtitle) subtitle = null; - var section = new WebInspector.ObjectPropertiesSection(new WebInspector.ObjectProxy(scopeObject), title, subtitle, emptyPlaceholder, true, extraProperties, WebInspector.ScopeVariableTreeElement); + var section = new WebInspector.ObjectPropertiesSection(scopeObjectProxy, title, subtitle, emptyPlaceholder, true, extraProperties, WebInspector.ScopeVariableTreeElement); section.editInSelectedCallFrameWhenPaused = true; section.pane = this; - if (!foundLocalScope || localScope) + if (!foundLocalScope || scopeObjectProxy.isLocal) section.expanded = true; this.sections.push(section); @@ -109,18 +101,18 @@ WebInspector.ScopeVariableTreeElement.prototype = { onattach: function() { WebInspector.ObjectPropertyTreeElement.prototype.onattach.call(this); - if (this.hasChildren && this.propertyIdentifier in this.treeOutline.section.pane.callFrame._expandedProperties) + if (this.hasChildren && this.propertyIdentifier in this.treeOutline.section.pane._expandedProperties) this.expand(); }, onexpand: function() { - this.treeOutline.section.pane.callFrame._expandedProperties[this.propertyIdentifier] = true; + this.treeOutline.section.pane._expandedProperties[this.propertyIdentifier] = true; }, oncollapse: function() { - delete this.treeOutline.section.pane.callFrame._expandedProperties[this.propertyIdentifier]; + delete this.treeOutline.section.pane._expandedProperties[this.propertyIdentifier]; }, get propertyIdentifier() |