Breaks out ObjectPropertiesSection from PropertiesSidebarPane
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 May 2008 22:28:20 +0000 (22:28 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 May 2008 22:28:20 +0000 (22:28 +0000)
so it can be used by the Scripts panel's Scope Chain pane.

Rubber-stamped by Adam Roben.

* page/inspector/ObjectPropertiesSection.js: Added.
* page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection
to ObjectPropertiesSection.js.
* WebCore.vcproj/WebCore.vcproj: Add the new file.
* page/inspector/WebKit.qrc: Ditto.
* page/inspector/inspector.html: Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@33399 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/WebCore.vcproj/WebCore.vcproj
WebCore/page/inspector/ObjectPropertiesSection.js [new file with mode: 0644]
WebCore/page/inspector/PropertiesSidebarPane.js
WebCore/page/inspector/WebKit.qrc
WebCore/page/inspector/inspector.html

index acf03fa..04c658f 100644 (file)
@@ -1,5 +1,19 @@
 2008-05-13  Timothy Hatcher  <timothy@apple.com>
 
+        Breaks out ObjectPropertiesSection from PropertiesSidebarPane
+        so it can be used by the Scripts panel's Scope Chain pane.
+
+        Rubber-stamped by Adam Roben.
+
+        * page/inspector/ObjectPropertiesSection.js: Added.
+        * page/inspector/PropertiesSidebarPane.js: Moved ObjectPropertiesSection
+        to ObjectPropertiesSection.js.
+        * WebCore.vcproj/WebCore.vcproj: Add the new file.
+        * page/inspector/WebKit.qrc: Ditto.
+        * page/inspector/inspector.html: Ditto.
+
+2008-05-13  Timothy Hatcher  <timothy@apple.com>
+
         Add a helper function to the Inspector's Array prototype
         that will remove any identical values/objects from the array.
 
index f4c6251..5a4876f 100644 (file)
                                        >\r
                                </File>\r
                                <File\r
+                                       RelativePath="..\page\inspector\ObjectPropertiesSection.js"\r
+                                       >\r
+                               </File>\r
+                               <File\r
                                        RelativePath="..\page\inspector\PropertiesSidebarPane.js"\r
                                        >\r
                                </File>\r
diff --git a/WebCore/page/inspector/ObjectPropertiesSection.js b/WebCore/page/inspector/ObjectPropertiesSection.js
new file mode 100644 (file)
index 0000000..c466779
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+WebInspector.ObjectPropertiesSection = function(object, title, subtitle)
+{
+    if (!title) {
+        title = Object.describe(object);
+        if (title.match(/Prototype$/)) {
+            title = title.replace(/Prototype$/, "");
+            if (!subtitle)
+                subtitle = WebInspector.UIString("Prototype");
+        }
+    }
+
+    this.object = object;
+
+    WebInspector.PropertiesSection.call(this, title, subtitle);
+}
+
+WebInspector.ObjectPropertiesSection.prototype = {
+    onpopulate: function()
+    {
+        var properties = Object.sortedProperties(this.object);
+        for (var i = 0; i < properties.length; ++i) {
+            var propertyName = properties[i];
+            if (("hasOwnProperty" in this.object && !this.object.hasOwnProperty(propertyName)) || propertyName === "__treeElementIdentifier")
+                continue;
+            this.propertiesTreeOutline.appendChild(new WebInspector.ObjectPropertyTreeElement(this.object, propertyName));
+        }
+    }
+}
+
+WebInspector.ObjectPropertiesSection.prototype.__proto__ = WebInspector.PropertiesSection.prototype;
+
+WebInspector.ObjectPropertyTreeElement = function(parentObject, propertyName)
+{
+    this.parentObject = parentObject;
+    this.propertyName = propertyName;
+
+    var childObject = this.safePropertyValue(parentObject, propertyName);
+    var isGetter = ("__lookupGetter__" in parentObject && parentObject.__lookupGetter__(propertyName));
+
+    var title = "<span class=\"name\">" + propertyName.escapeHTML() + "</span>: ";
+    if (!isGetter)
+        title += "<span class=\"value\">" + Object.describe(childObject, true).escapeHTML() + "</span>";
+    else
+        // FIXME: this should show something like "getter" once we can change localization (bug 16734).
+        title += "<span class=\"value dimmed\">&mdash;</span>";
+
+    var hasSubProperties = false;
+    var type = typeof childObject;
+    if (childObject && (type === "object" || type === "function")) {
+        for (subPropertyName in childObject) {
+            if (subPropertyName === "__treeElementIdentifier")
+                continue;
+            hasSubProperties = true;
+            break;
+        }
+    }
+
+    TreeElement.call(this, title, null, hasSubProperties);
+}
+
+WebInspector.ObjectPropertyTreeElement.prototype = {
+    safePropertyValue: function(object, propertyName)
+    {
+        if ("__lookupGetter__" in object && object.__lookupGetter__(propertyName))
+            return;
+        return object[propertyName];
+    },
+
+    onpopulate: function()
+    {
+        if (this.children.length)
+            return;
+
+        var childObject = this.safePropertyValue(this.parentObject, this.propertyName);
+        var properties = Object.sortedProperties(childObject);
+        for (var i = 0; i < properties.length; ++i) {
+            var propertyName = properties[i];
+            if (propertyName === "__treeElementIdentifier")
+                continue;
+            this.appendChild(new WebInspector.ObjectPropertyTreeElement(childObject, propertyName));
+        }
+    }
+}
+
+WebInspector.ObjectPropertyTreeElement.prototype.__proto__ = TreeElement.prototype;
index 0266d53..70db805 100644 (file)
@@ -52,88 +52,3 @@ WebInspector.PropertiesSidebarPane.prototype = {
 }
 
 WebInspector.PropertiesSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;
-
-WebInspector.ObjectPropertiesSection = function(object)
-{
-    var title = Object.describe(object);
-    var subtitle;
-    if (title.match(/Prototype$/)) {
-        title = title.replace(/Prototype$/, "");
-        subtitle = WebInspector.UIString("Prototype");
-    }
-
-    this.object = object;
-
-    WebInspector.PropertiesSection.call(this, title, subtitle);
-}
-
-WebInspector.ObjectPropertiesSection.prototype = {
-    onpopulate: function()
-    {
-        var properties = Object.sortedProperties(this.object);
-        for (var i = 0; i < properties.length; ++i) {
-            var propertyName = properties[i];
-            if (!this.object.hasOwnProperty(propertyName) || propertyName === "__treeElementIdentifier")
-                continue;
-            this.propertiesTreeOutline.appendChild(new WebInspector.ObjectPropertyTreeElement(this.object, propertyName));
-        }
-    }
-}
-
-WebInspector.ObjectPropertiesSection.prototype.__proto__ = WebInspector.PropertiesSection.prototype;
-
-WebInspector.ObjectPropertyTreeElement = function(parentObject, propertyName)
-{
-    this.parentObject = parentObject;
-    this.propertyName = propertyName;
-
-    var childObject = this.safePropertyValue(parentObject, propertyName);
-    var isGetter = parentObject.__lookupGetter__(propertyName);
-
-    var title = "<span class=\"name\">" + propertyName.escapeHTML() + "</span>: ";
-    if (!isGetter)
-        title += "<span class=\"value\">" + Object.describe(childObject, true).escapeHTML() + "</span>";
-    else
-        // FIXME: this should show something like "getter" once we can change localization (bug 16734).
-        title += "<span class=\"value dimmed\">&mdash;</span>";
-
-    var hasSubProperties = false;
-    var type = typeof childObject;
-    if (childObject && (type === "object" || type === "function")) {
-        for (subPropertyName in childObject) {
-            if (subPropertyName === "__treeElementIdentifier")
-                continue;
-            hasSubProperties = true;
-            break;
-        }
-    }
-
-    TreeElement.call(this, title, null, hasSubProperties);
-}
-
-WebInspector.ObjectPropertyTreeElement.prototype = {
-    safePropertyValue: function(object, propertyName)
-    {
-        var getter = object.__lookupGetter__(propertyName);
-        if (getter)
-            return;
-        return object[propertyName];
-    },
-
-    onpopulate: function()
-    {
-        if (this.children.length)
-            return;
-
-        var childObject = this.safePropertyValue(this.parentObject, this.propertyName);
-        var properties = Object.sortedProperties(childObject);
-        for (var i = 0; i < properties.length; ++i) {
-            var propertyName = properties[i];
-            if (propertyName === "__treeElementIdentifier")
-                continue;
-            this.appendChild(new WebInspector.ObjectPropertyTreeElement(childObject, propertyName));
-        }
-    }
-}
-
-WebInspector.ObjectPropertyTreeElement.prototype.__proto__ = TreeElement.prototype;
index 5a5a3e1..d57d6e0 100644 (file)
@@ -15,6 +15,7 @@
     <file>inspector.js</file>
     <file>MetricsSidebarPane.js</file>
     <file>Object.js</file>
+    <file>ObjectPropertiesSection.js</file>
     <file>Panel.js</file>
     <file>PropertiesSection.js</file>
     <file>PropertiesSidebarPane.js</file>
index 5483e34..e7f068b 100644 (file)
@@ -43,6 +43,7 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     <script type="text/javascript" src="SidebarPane.js"></script>
     <script type="text/javascript" src="SidebarTreeElement.js"></script>
     <script type="text/javascript" src="PropertiesSection.js"></script>
+    <script type="text/javascript" src="ObjectPropertiesSection.js"></script>
     <script type="text/javascript" src="BreakpointsSidebarPane.js"></script>
     <script type="text/javascript" src="CallStackSidebarPane.js"></script>
     <script type="text/javascript" src="MetricsSidebarPane.js"></script>