Chromium Code Reviews| Index: test/inspector-protocol/runtime/set-or-map-entries.js |
| diff --git a/test/inspector-protocol/runtime/set-or-map-entries.js b/test/inspector-protocol/runtime/set-or-map-entries.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..12992203212c8c4039c33531b2f733d6380eeeb8 |
| --- /dev/null |
| +++ b/test/inspector-protocol/runtime/set-or-map-entries.js |
| @@ -0,0 +1,53 @@ |
| +// 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()) |
| + .catch((e) => { InspectorTest.log(e); 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)) |
| + .catch((e) => { InspectorTest.log(e); InspectorTest.completeTest() }) |
|
dgozman
2016/09/28 20:28:19
Remove catch!
kozy
2016/09/30 02:04:32
Done.
|
| +} |
| + |
| +function dumpEntriesDescription(expression, message) |
| +{ |
| + InspectorTest.log(`Entries for "${expression}"`); |
| + var properties = message.result.internalProperties; |
| + if (properties) |
| + properties = properties.filter((property) => property.name === "[[Entries]]"); |
| + if (!properties || properties.length === 0) |
| + InspectorTest.log("[[Entries]] not found"); |
| + else |
| + InspectorTest.log(properties[0].value.description); |
| +} |