42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
|
// Copyright 2017 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.
|
||
|
|
||
|
var global = this;
|
||
|
;(function () {
|
||
|
var calledDelete = false;
|
||
|
var calledGet = false;
|
||
|
var calledHas = false;
|
||
|
var calledSet = false;
|
||
|
var target = {};
|
||
|
var assertEquals = global.assertEquals;
|
||
|
var proxy = new Proxy(target, {
|
||
|
has(target, property) {
|
||
|
calledHas = true;
|
||
|
return Reflect.has(target, property);
|
||
|
},
|
||
|
get(target, property, receiver) {
|
||
|
calledGet = true;
|
||
|
return Reflect.get(target, property, receiver);
|
||
|
},
|
||
|
set(targer, property, value, receiver) {
|
||
|
calledSet = true;
|
||
|
return Reflect.set(target, property, value, receiver);
|
||
|
},
|
||
|
delete(target, property, receiver) {
|
||
|
calledDelete = true;
|
||
|
return Reflect.delete(target, property, receiver);
|
||
|
}
|
||
|
});
|
||
|
Object.setPrototypeOf(global, proxy);
|
||
|
getGlobal;
|
||
|
assertTrue(calledGet);
|
||
|
makeGlobal = 2;
|
||
|
assertTrue(calledSet);
|
||
|
"findGlobal" in global;
|
||
|
assertTrue(calledHas);
|
||
|
var deletedOwn = delete makeGlobal;
|
||
|
assertTrue(deletedOwn);
|
||
|
assertEquals(void 0, makeGlobal);
|
||
|
})();
|