| Index: test/inspector/runtime/set-or-map-entries.js
|
| diff --git a/test/inspector/runtime/set-or-map-entries.js b/test/inspector/runtime/set-or-map-entries.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ccefb794d6cd00a0f081daa09b7eb1f7a1e1f6d4
|
| --- /dev/null
|
| +++ b/test/inspector/runtime/set-or-map-entries.js
|
| @@ -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);
|
| +}
|
|
|