length-or-size-description.js 1.55 KB
Newer Older
1 2 3 4
// 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.

5 6 7
// Flags: --harmony-sharedarraybuffer

let {session, contextGroup, Protocol} = InspectorTest.start("Test that descriptions for arrays, maps, and sets include the correct length or size.");
8

9
contextGroup.setupInjectedScriptEnvironment();
10

11 12 13 14 15 16 17 18
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()"),
19
  testExpression("new Uint8Array(2)"),
20 21 22 23 24 25
  testExpression("new ArrayBuffer()"),
  testExpression("new ArrayBuffer(2)"),
  testExpression("new SharedArrayBuffer()"),
  testExpression("new SharedArrayBuffer(2)"),
  testExpression("new DataView(new ArrayBuffer())"),
  testExpression("new DataView(new ArrayBuffer(5))"),
26 27 28
  // WeakMap and WeakSet should not have size in description.
  testExpression("new WeakMap([[{}, 42]])"),
  testExpression("new WeakSet([{}])")
29 30 31 32 33 34 35 36
]).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))
}