[inspector] test Runtime.getProperties for set and map [[Entries]]
Added a test that Runtime.getProperties doesn't truncate Set and Map properties in [[Entries]] in internalProperties. BUG=chromium:650729 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2376863002 Cr-Commit-Position: refs/heads/master@{#39940}
This commit is contained in:
parent
d99308ef55
commit
60ab52e78e
9
test/inspector/runtime/set-or-map-entries-expected.txt
Normal file
9
test/inspector/runtime/set-or-map-entries-expected.txt
Normal file
@ -0,0 +1,9 @@
|
||||
Test that Runtime.getProperties doesn't truncate set and map entries in internalProperties.
|
||||
Entries for "createSet(10)"
|
||||
Array[10]
|
||||
Entries for "createSet(1000)"
|
||||
Array[1000]
|
||||
Entries for "createMap(10)"
|
||||
Array[10]
|
||||
Entries for "createMap(1000)"
|
||||
Array[1000]
|
52
test/inspector/runtime/set-or-map-entries.js
Normal file
52
test/inspector/runtime/set-or-map-entries.js
Normal file
@ -0,0 +1,52 @@
|
||||
// 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 Runtime.getProperties doesn't truncate set and map entries in internalProperties.")
|
||||
|
||||
InspectorTest.evaluateInPage(`
|
||||
function createSet(size) {
|
||||
var s = new Set();
|
||||
var a = {};
|
||||
a.a = a;
|
||||
for (var i = 0; i < size; ++i) s.add({ wrapper: a});
|
||||
return s;
|
||||
}
|
||||
|
||||
function createMap(size) {
|
||||
var m = new Map();
|
||||
var a = {};
|
||||
a.a = a;
|
||||
for (var i = 0; i < size; ++i) m.set(i, { wrapper: a});
|
||||
return m;
|
||||
}
|
||||
`);
|
||||
|
||||
InspectorTest.sendCommand("Debugger.enable");
|
||||
InspectorTest.sendCommand("Runtime.enable");
|
||||
|
||||
testExpression("createSet(10)")
|
||||
.then(() => testExpression("createSet(1000)"))
|
||||
.then(() => testExpression("createMap(10)"))
|
||||
.then(() => testExpression("createMap(1000)"))
|
||||
.then(() => InspectorTest.completeTest());
|
||||
|
||||
function testExpression(expression)
|
||||
{
|
||||
return InspectorTest.sendCommandPromise("Runtime.evaluate", { "expression": expression})
|
||||
.then(result => InspectorTest.sendCommandPromise("Runtime.getProperties", { ownProperties: true, objectId: result.result.result.objectId }))
|
||||
.then(message => dumpEntriesDescription(expression, message));
|
||||
}
|
||||
|
||||
function dumpEntriesDescription(expression, message)
|
||||
{
|
||||
InspectorTest.log(`Entries for "${expression}"`);
|
||||
var properties = message.result.internalProperties;
|
||||
var property;
|
||||
if (properties)
|
||||
property = properties.find(property => property.name === "[[Entries]]");
|
||||
if (!property)
|
||||
InspectorTest.log("[[Entries]] not found");
|
||||
else
|
||||
InspectorTest.log(property.value.description);
|
||||
}
|
Loading…
Reference in New Issue
Block a user