Changeset 190342 in webkit


Ignore:
Timestamp:
Sep 29, 2015 10:58:38 PM (9 years ago)
Author:
commit-queue@webkit.org
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 <Joseph Pecoraro> 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/JavaScriptRuntimeCompletionProvider.js:

(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
Sort defineGetter and lookupGetter and friends last, since they
are rarely used properties.

Location:
trunk/Source/WebInspectorUI
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebInspectorUI/ChangeLog

    r190341 r190342  
     12015-09-29  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: Console completion suggestions should include properties on Object (hasOwnProperty, toString, etc)
     4        https://bugs.webkit.org/show_bug.cgi?id=149649
     5
     6        Reviewed by Darin Adler.
     7
     8        * UserInterface/Base/Utilities.js:
     9        (value):
     10        Since keySets in this instance are often used as hash maps with the
     11        `in` operator, create a blank object that won't have Object.prototype
     12        functions that would be seen by `in`.
     13
     14        * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
     15        (WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
     16        Sort __defineGetter__ and __lookupGetter__ and friends last, since they
     17        are rarely used properties.
     18
    1192015-09-29  Joseph Pecoraro  <pecoraro@apple.com>
    220
  • trunk/Source/WebInspectorUI/UserInterface/Base/Utilities.js

    r188946 r190342  
    446446    value: function()
    447447    {
    448         var keys = {};
     448        let keys = Object.create(null);
    449449        for (var i = 0; i < this.length; ++i)
    450450            keys[this[i]] = true;
  • trunk/Source/WebInspectorUI/UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js

    r190341 r190342  
    264264            {
    265265                // Try to sort in numerical order first.
    266                 var numericCompareResult = a - b;
     266                let numericCompareResult = a - b;
    267267                if (!isNaN(numericCompareResult))
    268268                    return numericCompareResult;
     269
     270                // Sort __defineGetter__, __lookupGetter__, and friends last.
     271                let aRareProperty = a.startsWith("__") && a.endsWith("__");
     272                let bRareProperty = b.startsWith("__") && b.endsWith("__");
     273                if (aRareProperty && !bRareProperty)
     274                    return 1;
     275                if (!aRareProperty && bRareProperty)
     276                    return -1;
    269277
    270278                // Not numbers, sort as strings.
Note: See TracChangeset for help on using the changeset viewer.