Re-land of Use parenthesis in descriptions for array/map/set lengths/sizes
Descriptions for (typed)arrays will use parenthesis instead of square brackets "Array(10)" instead of "Array[10]". This CL also adds size hints to descriptions of maps and sets. Related CL for DevTools: https://codereview.chromium.org/2524913002/ BUG=405845 Committed: https://crrev.com/92c77a57390e6a9ef726535b255a24359751992d Review-Url: https://codereview.chromium.org/2521853003 Cr-Original-Commit-Position: refs/heads/master@{#41237} Cr-Commit-Position: refs/heads/master@{#41442}
This commit is contained in:
parent
717d59394d
commit
2c1fb7a821
@ -618,7 +618,13 @@ InjectedScript.prototype = {
|
|||||||
var className = InjectedScriptHost.internalConstructorName(obj);
|
var className = InjectedScriptHost.internalConstructorName(obj);
|
||||||
if (subtype === "array" || subtype === "typedarray") {
|
if (subtype === "array" || subtype === "typedarray") {
|
||||||
if (typeof obj.length === "number")
|
if (typeof obj.length === "number")
|
||||||
className += "[" + obj.length + "]";
|
return className + "(" + obj.length + ")";
|
||||||
|
return className;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (subtype === "map" || subtype === "set") {
|
||||||
|
if (typeof obj.size === "number")
|
||||||
|
return className + "(" + obj.size + ")";
|
||||||
return className;
|
return className;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ expression: (new Map([[1,2]])).entries()
|
|||||||
[
|
[
|
||||||
[0] : {
|
[0] : {
|
||||||
value : {
|
value : {
|
||||||
description : Array[2]
|
description : Array(2)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
[0] : {
|
[0] : {
|
||||||
@ -204,20 +204,20 @@ expression: (new Set([[1,2]])).entries()
|
|||||||
[
|
[
|
||||||
[0] : {
|
[0] : {
|
||||||
value : {
|
value : {
|
||||||
description : Array[2]
|
description : Array(2)
|
||||||
overflow : false
|
overflow : false
|
||||||
properties : [
|
properties : [
|
||||||
[0] : {
|
[0] : {
|
||||||
name : 0
|
name : 0
|
||||||
subtype : array
|
subtype : array
|
||||||
type : object
|
type : object
|
||||||
value : Array[2]
|
value : Array(2)
|
||||||
}
|
}
|
||||||
[1] : {
|
[1] : {
|
||||||
name : 1
|
name : 1
|
||||||
subtype : array
|
subtype : array
|
||||||
type : object
|
type : object
|
||||||
value : Array[2]
|
value : Array(2)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
subtype : array
|
subtype : array
|
||||||
@ -251,3 +251,4 @@ expression: ({})
|
|||||||
|
|
||||||
Running test: overridenArrayGetter
|
Running test: overridenArrayGetter
|
||||||
expression: Promise.resolve(42)
|
expression: Promise.resolve(42)
|
||||||
|
|
||||||
|
@ -0,0 +1,17 @@
|
|||||||
|
Test that descriptions for arrays, maps, and sets include the correct length or size.
|
||||||
|
Set(0)
|
||||||
|
Set(2)
|
||||||
|
Map(0)
|
||||||
|
Map(2)
|
||||||
|
Array(0)
|
||||||
|
Array(2)
|
||||||
|
Uint8Array(0)
|
||||||
|
Uint8Array(2)
|
||||||
|
Set(0)
|
||||||
|
Set(2)
|
||||||
|
Map(0)
|
||||||
|
Map(2)
|
||||||
|
Array(0)
|
||||||
|
Array(2)
|
||||||
|
Uint8Array(0)
|
||||||
|
Uint8Array(2)
|
23
test/inspector/runtime/length-or-size-description.js
Normal file
23
test/inspector/runtime/length-or-size-description.js
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Copyright 2016 the V8 project authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
|
// found in the LICENSE file.
|
||||||
|
|
||||||
|
print("Test that descriptions for arrays, maps, and sets include the correct length or size.")
|
||||||
|
|
||||||
|
Promise.all([
|
||||||
|
testExpression("new Set()"),
|
||||||
|
testExpression("new Set([1,2])"),
|
||||||
|
testExpression("new Map()"),
|
||||||
|
testExpression("new Map([[1,2],[3,4]])"),
|
||||||
|
testExpression("new Array()"),
|
||||||
|
testExpression("new Array(2)"),
|
||||||
|
testExpression("new Uint8Array()"),
|
||||||
|
testExpression("new Uint8Array(2)")
|
||||||
|
]).then(() => InspectorTest.completeTest());
|
||||||
|
|
||||||
|
function testExpression(expression) {
|
||||||
|
return Protocol.Runtime.evaluate({ expression: expression })
|
||||||
|
.then(result => InspectorTest.logMessage(result.result.result.description))
|
||||||
|
.then(() => Protocol.Runtime.evaluate({ expression: "[" + expression + "]", generatePreview: true }))
|
||||||
|
.then(result => InspectorTest.logMessage(result.result.result.preview.properties[0].value))
|
||||||
|
}
|
@ -1,9 +1,9 @@
|
|||||||
Test that Runtime.getProperties doesn't truncate set and map entries in internalProperties.
|
Test that Runtime.getProperties doesn't truncate set and map entries in internalProperties.
|
||||||
Entries for "createSet(10)"
|
Entries for "createSet(10)"
|
||||||
Array[10]
|
Array(10)
|
||||||
Entries for "createSet(1000)"
|
Entries for "createSet(1000)"
|
||||||
Array[1000]
|
Array(1000)
|
||||||
Entries for "createMap(10)"
|
Entries for "createMap(10)"
|
||||||
Array[10]
|
Array(10)
|
||||||
Entries for "createMap(1000)"
|
Entries for "createMap(1000)"
|
||||||
Array[1000]
|
Array(1000)
|
||||||
|
Loading…
Reference in New Issue
Block a user