| Index: third_party/WebKit/LayoutTests/inspector-protocol/runtime/runtime-get-properties-on-proxy.js
|
| diff --git a/third_party/WebKit/LayoutTests/inspector-protocol/runtime/runtime-get-properties-on-proxy.js b/third_party/WebKit/LayoutTests/inspector-protocol/runtime/runtime-get-properties-on-proxy.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e91fd1292f6279213da6035d1d47fe247f316cb4
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/inspector-protocol/runtime/runtime-get-properties-on-proxy.js
|
| @@ -0,0 +1,84 @@
|
| +(async function(testRunner) {
|
| + let {page, session, dp} = await testRunner.startBlank(`Check that while Runtime.getProperties call on proxy object no user defined trap will be executed.`);
|
| +
|
| + function testFunction() {
|
| + window.counter = 0;
|
| + var handler = {
|
| + get: function(target, name) {
|
| + window.counter++;
|
| + return Reflect.get.apply(this, arguments);
|
| + },
|
| + set: function(target, name) {
|
| + window.counter++;
|
| + return Reflect.set.apply(this, arguments);
|
| + },
|
| + getPrototypeOf: function(target) {
|
| + window.counter++;
|
| + return Reflect.getPrototypeOf.apply(this, arguments);
|
| + },
|
| + setPrototypeOf: function(target) {
|
| + window.counter++;
|
| + return Reflect.setPrototypeOf.apply(this, arguments);
|
| + },
|
| + isExtensible: function(target) {
|
| + window.counter++;
|
| + return Reflect.isExtensible.apply(this, arguments);
|
| + },
|
| + isExtensible: function(target) {
|
| + window.counter++;
|
| + return Reflect.isExtensible.apply(this, arguments);
|
| + },
|
| + isExtensible: function(target) {
|
| + window.counter++;
|
| + return Reflect.isExtensible.apply(this, arguments);
|
| + },
|
| + preventExtensions: function() {
|
| + window.counter++;
|
| + return Reflect.preventExtensions.apply(this, arguments);
|
| + },
|
| + getOwnPropertyDescriptor: function() {
|
| + window.counter++;
|
| + return Reflect.getOwnPropertyDescriptor.apply(this, arguments);
|
| + },
|
| + defineProperty: function() {
|
| + window.counter++;
|
| + return Reflect.defineProperty.apply(this, arguments);
|
| + },
|
| + has: function() {
|
| + window.counter++;
|
| + return Reflect.has.apply(this, arguments);
|
| + },
|
| + get: function() {
|
| + window.counter++;
|
| + return Reflect.get.apply(this, arguments);
|
| + },
|
| + set: function() {
|
| + window.counter++;
|
| + return Reflect.set.apply(this, arguments);
|
| + },
|
| + deleteProperty: function() {
|
| + window.counter++;
|
| + return Reflect.deleteProperty.apply(this, arguments);
|
| + },
|
| + ownKeys: function() {
|
| + window.counter++;
|
| + return Reflect.ownKeys.apply(this, arguments);
|
| + },
|
| + apply: function() {
|
| + window.counter++;
|
| + return Reflect.apply.apply(this, arguments);
|
| + },
|
| + construct: function() {
|
| + window.counter++;
|
| + return Reflect.construct.apply(this, arguments);
|
| + }
|
| + };
|
| + return new Proxy({ a : 1}, handler);
|
| + }
|
| +
|
| + var response = await dp.Runtime.evaluate({expression: '(' + testFunction.toString() + ')()'});
|
| + await dp.Runtime.getProperties({ objectId: response.result.result.objectId, generatePreview: true });
|
| + response = await dp.Runtime.evaluate({ expression: 'window.counter' });
|
| + testRunner.logObject(response.result);
|
| + testRunner.completeTest();
|
| +})
|
|
|