Chromium Code Reviews| Index: third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js |
| diff --git a/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js b/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js |
| index 0e0c4f8d28065b05a5f348091ce7784c29cfe994..728d2d4714798b01f3913ebb7cfd871f677cda89 100644 |
| --- a/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js |
| +++ b/third_party/WebKit/Source/platform/v8_inspector/InjectedScriptSource.js |
| @@ -635,10 +635,29 @@ InjectedScript.prototype = { |
| } |
| } |
| + if (subtype === "internal#entry") { |
| + if ("key" in obj) |
| + return "{" + this._describeEverything(obj.key) + " => " + this._describeEverything(obj.value) + "}"; |
| + return this._describeEverything(obj.value); |
| + } |
| + |
| return className; |
| }, |
| /** |
| + * @param {*} obj |
| + * @return {string} |
| + */ |
| + _describeEverything: function(value) |
|
dgozman
2016/06/28 18:58:08
_describeIncludingPrimitives
kozy
2016/06/28 20:55:46
Done.
|
| + { |
| + if (typeof value === "string") |
| + return "\"" + value.replace(/\n/g, "\u21B5") + "\""; |
| + if (value === null) |
| + return "" + value; |
| + return this.isPrimitiveValue(value) ? toStringDescription(value) : this._describe(value); |
| + }, |
| + |
| + /** |
| * @param {boolean} enabled |
| */ |
| setCustomObjectFormatterEnabled: function(enabled) |
| @@ -827,7 +846,12 @@ InjectedScript.RemoteObject.prototype = { |
| // Add internal properties to preview. |
| var rawInternalProperties = InjectedScriptHost.getInternalProperties(object) || []; |
| var internalProperties = []; |
| + var entries = null; |
| for (var i = 0; i < rawInternalProperties.length; i += 2) { |
| + if (rawInternalProperties[i] === "[[Entries]]") { |
| + entries = /** @type {!Array<*>} */(rawInternalProperties[i + 1]); |
| + continue; |
| + } |
| push(internalProperties, { |
| name: rawInternalProperties[i], |
| value: rawInternalProperties[i + 1], |
| @@ -839,7 +863,7 @@ InjectedScript.RemoteObject.prototype = { |
| this._appendPropertyDescriptors(preview, internalProperties, propertiesThreshold, secondLevelKeys, isTable); |
| if (this.subtype === "map" || this.subtype === "set" || this.subtype === "iterator") |
| - this._appendEntriesPreview(object, preview, skipEntriesPreview); |
| + this._appendEntriesPreview(entries, preview, skipEntriesPreview); |
| } catch (e) {} |
| @@ -947,13 +971,12 @@ InjectedScript.RemoteObject.prototype = { |
| }, |
| /** |
| - * @param {!Object} object |
| + * @param {?Array<*>} entries |
| * @param {!RuntimeAgent.ObjectPreview} preview |
| * @param {boolean=} skipEntriesPreview |
| */ |
| - _appendEntriesPreview: function(object, preview, skipEntriesPreview) |
| + _appendEntriesPreview: function(entries, preview, skipEntriesPreview) |
| { |
| - var entries = InjectedScriptHost.collectionEntries(object); |
| if (!entries) |
| return; |
| if (skipEntriesPreview) { |