Title: [190342] trunk/Source/WebInspectorUI
Revision
190342
Author
commit-qu...@webkit.org
Date
2015-09-29 22:58:38 -0700 (Tue, 29 Sep 2015)

Log Message

Web Inspector: Console completion suggestions should include properties on Object (hasOwnProperty, toString, etc)
https://bugs.webkit.org/show_bug.cgi?id=149649

Patch by Joseph Pecoraro <pecor...@apple.com> on 2015-09-29
Reviewed by Darin Adler.

* UserInterface/Base/Utilities.js:
(value):
Since keySets in this instance are often used as hash maps with the
`in` operator, create a blank object that won't have Object.prototype
functions that would be seen by `in`.

* UserInterface/Controllers/_javascript_RuntimeCompletionProvider.js:
(WebInspector._javascript_RuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
Sort __defineGetter__ and __lookupGetter__ and friends last, since they
are rarely used properties.

Modified Paths

Diff

Modified: trunk/Source/WebInspectorUI/ChangeLog (190341 => 190342)


--- trunk/Source/WebInspectorUI/ChangeLog	2015-09-30 05:57:41 UTC (rev 190341)
+++ trunk/Source/WebInspectorUI/ChangeLog	2015-09-30 05:58:38 UTC (rev 190342)
@@ -1,5 +1,23 @@
 2015-09-29  Joseph Pecoraro  <pecor...@apple.com>
 
+        Web Inspector: Console completion suggestions should include properties on Object (hasOwnProperty, toString, etc)
+        https://bugs.webkit.org/show_bug.cgi?id=149649
+
+        Reviewed by Darin Adler.
+
+        * UserInterface/Base/Utilities.js:
+        (value):
+        Since keySets in this instance are often used as hash maps with the
+        `in` operator, create a blank object that won't have Object.prototype
+        functions that would be seen by `in`.
+
+        * UserInterface/Controllers/_javascript_RuntimeCompletionProvider.js:
+        (WebInspector._javascript_RuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
+        Sort __defineGetter__ and __lookupGetter__ and friends last, since they
+        are rarely used properties.
+
+2015-09-29  Joseph Pecoraro  <pecor...@apple.com>
+
         Web Inspector: Missing completions for Symbol objects, console.error warning
         https://bugs.webkit.org/show_bug.cgi?id=149641
 

Modified: trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js (190341 => 190342)


--- trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js	2015-09-30 05:57:41 UTC (rev 190341)
+++ trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js	2015-09-30 05:58:38 UTC (rev 190342)
@@ -445,7 +445,7 @@
 {
     value: function()
     {
-        var keys = {};
+        let keys = Object.create(null);
         for (var i = 0; i < this.length; ++i)
             keys[this[i]] = true;
         return keys;

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_RuntimeCompletionProvider.js (190341 => 190342)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_RuntimeCompletionProvider.js	2015-09-30 05:57:41 UTC (rev 190341)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/_javascript_RuntimeCompletionProvider.js	2015-09-30 05:58:38 UTC (rev 190342)
@@ -263,10 +263,18 @@
             function compare(a, b)
             {
                 // Try to sort in numerical order first.
-                var numericCompareResult = a - b;
+                let numericCompareResult = a - b;
                 if (!isNaN(numericCompareResult))
                     return numericCompareResult;
 
+                // Sort __defineGetter__, __lookupGetter__, and friends last.
+                let aRareProperty = a.startsWith("__") && a.endsWith("__");
+                let bRareProperty = b.startsWith("__") && b.endsWith("__");
+                if (aRareProperty && !bRareProperty)
+                    return 1;
+                if (!aRareProperty && bRareProperty)
+                    return -1;
+
                 // Not numbers, sort as strings.
                 return a.localeCompare(b);
             }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to