2016-10-02 21:22:49 +00:00
// 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.
2017-05-19 00:35:45 +00:00
let { session , contextGroup , Protocol } = InspectorTest . start ( "Check that while Runtime.getProperties call on proxy object no user defined trap will be executed." ) ;
2016-10-02 21:22:49 +00:00
2017-05-19 00:35:45 +00:00
contextGroup . addScript ( `
2016-10-02 21:22:49 +00:00
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 ) ;
} ` );
2016-10-03 23:32:52 +00:00
Protocol . Runtime . evaluate ( { expression : "testFunction()" } ) . then ( requestProperties ) ;
2016-10-02 21:22:49 +00:00
function requestProperties ( result )
{
2016-10-03 23:32:52 +00:00
Protocol . Runtime . getProperties ( { objectId : result . result . objectId , generatePreview : true } ) . then ( checkCounter ) ;
2016-10-02 21:22:49 +00:00
}
function checkCounter ( result )
{
2016-10-03 23:32:52 +00:00
Protocol . Runtime . evaluate ( { expression : "self.counter" } ) . then ( dumpCounter ) ;
2016-10-02 21:22:49 +00:00
}
function dumpCounter ( result )
{
2016-10-03 23:32:52 +00:00
InspectorTest . logMessage ( result ) ;
2016-10-02 21:22:49 +00:00
InspectorTest . completeTest ( ) ;
}