v8/test/inspector/runtime/evaluate-with-generate-preview.js
Benedikt Meurer 0f56f71b10 [inspector] Remove unused formatAccessorsAsProperties().
Following up on https://crrev.com/c/3067319 (V8 call site) and
https://crrev.com/c/3080920 (Blink override), we can now safely remove
the formatAccessorsAsProperties() predicate in the inspector API. V8 now
consistently applies the logic to all "inherited", native accessor
properties (which means both Blink IDL attributes and V8 builtins).

Bug: chromium:1076820, chromium:1199247
Change-Id: I156ee43eb87ffd7b1ba69900fe11283f37241dda
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3080568
Auto-Submit: Benedikt Meurer <bmeurer@chromium.org>
Reviewed-by: Kim-Anh Tran <kimanh@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#76187}
2021-08-10 06:48:59 +00:00

141 lines
4.0 KiB
JavaScript

// 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.
let {session, contextGroup, Protocol} = InspectorTest.start("Tests that Runtime.evaluate will generate correct previews.");
contextGroup.addScript(
`
var f1 = function(){};
Object.prototype[0] = 'default-first';
var obj = {p1: {a:1}, p2: {b:'foo'}, p3: f1};
Object.defineProperties(obj, {
p4: {
get() { return 2 }
},
p5: {
set(x) { return x }
},
p6: {
get() { return 2 },
set(x) { return x }
}
});
Array.prototype[0] = 'default-first';
var arr = [,, 1, [2], f1];
Object.defineProperties(arr, {
5: {
get() { return 2 }
},
6: {
set(x) { return x }
},
7: {
get() { return 2 },
set(x) { return x }
}
});
arr.nonEntryFunction = f1;
var inheritingObj = {};
var inheritingArr = [];
inheritingObj.prototype = obj;
inheritingArr.prototype = arr;
var shortTypedArray = new Uint8Array(3);
var longTypedArray = new Uint8Array(500001);
var set = new Set([1, 2, 3]);
var bigSet = new Set();
var mixedSet = new Set();
for (var i = 0; i < 10; i++) {
bigSet.add(i);
mixedSet["_prop_" + i] = 1;
mixedSet.add(i);
}
var arrayWithLongValues = ["a".repeat(101), 2n**401n];
`);
contextGroup.setupInjectedScriptEnvironment();
InspectorTest.runTestSuite([
function testObjectPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "obj", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testArrayPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "arr", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testInheritingObjectPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "inheritingObj", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testInheritingArrayPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "inheritingArr", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testShortTypedArrayPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "shortTypedArray", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testLongTypedArrayPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "longTypedArray", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testSetPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "set", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testBigSetPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "bigSet", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testMixedSetPropertiesPreview(next)
{
Protocol.Runtime.evaluate({ "expression": "mixedSet", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testObjWithArrayAsProto(next)
{
Protocol.Runtime.evaluate({ "expression": "Object.create([1,2])", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
},
function testArrayWithLongValues(next)
{
Protocol.Runtime.evaluate({ "expression": "arrayWithLongValues", "generatePreview": true })
.then(result => InspectorTest.logMessage(result.result.result.preview))
.then(next);
}
]);