@@ -14,9 +14,9 @@ var proxy = new Proxy({}, {
1414for ( var key in proxy ) ;
1515
1616// check ownKeys
17- var proxy = new Proxy ( { x :1 } , {
17+ var proxy = new Proxy ( { "5" :1 } , {
1818 ownKeys : function ( ) {
19- return [ 'a' , 'b' ] ;
19+ return [ 'a' , { y : 2 } , 5 , 'b' , Symbol . iterator ] ;
2020 }
2121} ) ;
2222var keys = ""
@@ -26,7 +26,7 @@ passed &= keys==="";
2626// check property descriptor
2727var proxy = new Proxy ( { b :1 , a :2 } , {
2828 ownKeys : function ( ) {
29- return [ 'a' , 'b' ] ;
29+ return [ 'a' , { y : 2 } , 5 , 'b' , Symbol . iterator ] ;
3030 }
3131} ) ;
3232var keys = ""
@@ -35,6 +35,7 @@ passed &= keys==="ab";
3535
3636// check property descriptor trap
3737var already_non_enmerable = false ;
38+ var getPrototypeOfCalled = false ;
3839var proxy = new Proxy ( { } , {
3940 ownKeys : function ( ) {
4041 return [ 'a' , 'b' , 'a' ] ; // make first a non-enumerable, and second a enumerable, second a won't show up in for-in
@@ -52,11 +53,16 @@ var proxy = new Proxy({}, {
5253 value : 42 ,
5354 writable : true
5455 } ;
56+ } ,
57+ getPrototypeOf : function ( ) {
58+ getPrototypeOfCalled = true ;
59+ return null ;
5560 }
5661} ) ;
5762var keys = ""
5863for ( var key in proxy ) { keys += key ; }
5964passed &= keys === "b" ;
65+ passed &= getPrototypeOfCalled ;
6066
6167if ( passed ) {
6268 WScript . Echo ( "PASS" ) ;
0 commit comments