9ddbdab195
- added most part of inspector tests that depends only on JavaScript domains. BUG=chromium:635948 R=dgozman@chromium.org,alph@chromium.org Review-Url: https://codereview.chromium.org/2369753004 Cr-Commit-Position: refs/heads/master@{#39897}
102 lines
3.2 KiB
JavaScript
102 lines
3.2 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.
|
|
|
|
print("Check that while Runtime.getProperties call on proxy object no user defined trap will be executed.");
|
|
|
|
InspectorTest.evaluateInPage(`
|
|
var self = this;
|
|
function testFunction()
|
|
{
|
|
self.counter = 0;
|
|
var handler = {
|
|
get: function(target, name){
|
|
self.counter++;
|
|
return Reflect.get.apply(this, arguments);
|
|
},
|
|
set: function(target, name){
|
|
self.counter++;
|
|
return Reflect.set.apply(this, arguments);
|
|
},
|
|
getPrototypeOf: function(target) {
|
|
self.counter++;
|
|
return Reflect.getPrototypeOf.apply(this, arguments);
|
|
},
|
|
setPrototypeOf: function(target) {
|
|
self.counter++;
|
|
return Reflect.setPrototypeOf.apply(this, arguments);
|
|
},
|
|
isExtensible: function(target) {
|
|
self.counter++;
|
|
return Reflect.isExtensible.apply(this, arguments);
|
|
},
|
|
isExtensible: function(target) {
|
|
self.counter++;
|
|
return Reflect.isExtensible.apply(this, arguments);
|
|
},
|
|
isExtensible: function(target) {
|
|
self.counter++;
|
|
return Reflect.isExtensible.apply(this, arguments);
|
|
},
|
|
preventExtensions: function() {
|
|
self.counter++;
|
|
return Reflect.preventExtensions.apply(this, arguments);
|
|
},
|
|
getOwnPropertyDescriptor: function() {
|
|
self.counter++;
|
|
return Reflect.getOwnPropertyDescriptor.apply(this, arguments);
|
|
},
|
|
defineProperty: function() {
|
|
self.counter++;
|
|
return Reflect.defineProperty.apply(this, arguments);
|
|
},
|
|
has: function() {
|
|
self.counter++;
|
|
return Reflect.has.apply(this, arguments);
|
|
},
|
|
get: function() {
|
|
self.counter++;
|
|
return Reflect.get.apply(this, arguments);
|
|
},
|
|
set: function() {
|
|
self.counter++;
|
|
return Reflect.set.apply(this, arguments);
|
|
},
|
|
deleteProperty: function() {
|
|
self.counter++;
|
|
return Reflect.deleteProperty.apply(this, arguments);
|
|
},
|
|
ownKeys: function() {
|
|
self.counter++;
|
|
return Reflect.ownKeys.apply(this, arguments);
|
|
},
|
|
apply: function() {
|
|
self.counter++;
|
|
return Reflect.apply.apply(this, arguments);
|
|
},
|
|
construct: function() {
|
|
self.counter++;
|
|
return Reflect.construct.apply(this, arguments);
|
|
}
|
|
};
|
|
return new Proxy({ a : 1}, handler);
|
|
}`);
|
|
|
|
InspectorTest.sendCommandOrDie("Runtime.evaluate", { expression: "testFunction()"}, requestProperties);
|
|
|
|
function requestProperties(result)
|
|
{
|
|
InspectorTest.sendCommandOrDie("Runtime.getProperties", { objectId: result.result.objectId, generatePreview: true }, checkCounter);
|
|
}
|
|
|
|
function checkCounter(result)
|
|
{
|
|
InspectorTest.sendCommandOrDie("Runtime.evaluate", { expression: "self.counter" }, dumpCounter);
|
|
}
|
|
|
|
function dumpCounter(result)
|
|
{
|
|
InspectorTest.logObject(result);
|
|
InspectorTest.completeTest();
|
|
}
|