Changeset 234780 in webkit


Ignore:
Timestamp:
Aug 10, 2018 7:43:47 PM (6 years ago)
Author:
commit-queue@webkit.org
Message:

Web Inspector: console.log fires getters for deep properties
https://bugs.webkit.org/show_bug.cgi?id=187542
<rdar://problem/42873158>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-08-10
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(RemoteObject.prototype._isPreviewableObject):
Avoid getters/setters when checking for simple properties to preview.
Here we avoid invoking object[property] if it could be a user getter.

LayoutTests:

  • inspector/injected-script/avoid-getter-invocation-expected.txt: Added.
  • inspector/injected-script/avoid-getter-invocation.html: Added.
Location:
trunk
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r234779 r234780  
     12018-08-10  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: console.log fires getters for deep properties
     4        https://bugs.webkit.org/show_bug.cgi?id=187542
     5        <rdar://problem/42873158>
     6
     7        Reviewed by Saam Barati.
     8
     9        * inspector/injected-script/avoid-getter-invocation-expected.txt: Added.
     10        * inspector/injected-script/avoid-getter-invocation.html: Added.
     11
    1122018-08-10  Joseph Pecoraro  <pecoraro@apple.com>
    213
  • trunk/Source/JavaScriptCore/ChangeLog

    r234777 r234780  
     12018-08-10  Joseph Pecoraro  <pecoraro@apple.com>
     2
     3        Web Inspector: console.log fires getters for deep properties
     4        https://bugs.webkit.org/show_bug.cgi?id=187542
     5        <rdar://problem/42873158>
     6
     7        Reviewed by Saam Barati.
     8
     9        * inspector/InjectedScriptSource.js:
     10        (RemoteObject.prototype._isPreviewableObject):
     11        Avoid getters/setters when checking for simple properties to preview.
     12        Here we avoid invoking `object[property]` if it could be a user getter.
     13
    1142018-08-10  Keith Miller  <keith_miller@apple.com>
    215
  • trunk/Source/JavaScriptCore/inspector/InjectedScriptSource.js

    r234563 r234780  
    12871287            return false;
    12881288
    1289         // Objects are simple if they have 3 or less simple properties.
     1289        // Objects are simple if they have 3 or less simple value properties.
    12901290        let ownPropertyNames = Object.getOwnPropertyNames(object);
    12911291        if (ownPropertyNames.length > 3)
     
    12931293        for (let i = 0; i < ownPropertyNames.length; ++i) {
    12941294            let propertyName = ownPropertyNames[i];
     1295            let descriptor = Object.getOwnPropertyDescriptor(object, propertyName);
     1296            if (descriptor && !("value" in descriptor))
     1297                return false;
    12951298            if (!this._isPreviewableObjectInternal(object[propertyName], knownObjects, depth))
    12961299                return false;
Note: See TracChangeset for help on using the changeset viewer.