// Copyright 2018 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. const {session, contextGroup, Protocol} = InspectorTest.start('Tests Runtime.getProperties.'); InspectorTest.runAsyncTestSuite([ async function testObject() { await getProperties('({a: 1})', { ownProperties: true }); await getProperties(`(function(){ let b = {}; Object.defineProperty(b, 'a', { configurable: false, enumerable: false, value: 42, writable: false }); Object.defineProperty(b, 'b', { configurable: false, enumerable: false, value: 42, writable: true }); Object.defineProperty(b, 'c', { configurable: true, enumerable: false, value: 42, writable: false }); Object.defineProperty(b, 'd', { configurable: false, enumerable: true, value: 42, writable: false }); Object.defineProperty(b, 'e', { set: () => 0, get: () => 42 }); Object.defineProperty(b, Symbol(42), { value: 239 }); return b; })()`, { ownProperties: true }); } ]); async function getProperties(expression, options) { try { const { result: { result: { objectId } } } = await Protocol.Runtime.evaluate({ expression }); const result = await Protocol.Runtime.getProperties({ objectId, ownProperties: options.ownProperties }); InspectorTest.logMessage(result); } catch (e) { InspectorTest.log(e.stack); } }