Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 /*
2 * Call the trap with the handler as the this value, the target as the first
3 * argument, the name of the property as the second argument, and the descriptor
4 * as the third argument.
5 */
6 var target = {};
7 var called = false;
8 var handler = {
9 defineProperty: function (target1, name, desc1) {
10 assertEq(this, handler);
11 assertEq(target1, target);
12 assertEq(name, 'foo');
13 assertEq(desc1 == desc, false);
14 assertEq(desc1.value, 'bar');
15 assertEq(desc1.writable, true);
16 assertEq(desc1.enumerable, false);
17 assertEq(desc1.configurable, true);
18 called = true;
19 }
20 }
21 var desc = {
22 value: 'bar',
23 writable: true,
24 enumerable: false,
25 configurable: true
26 };
28 var p = new Proxy(target, handler);
29 Object.defineProperty(p, 'foo', desc);
30 assertEq(called, true);
31 assertEq(Object.isExtensible(target), true);
32 assertEq(Object.isExtensible(p), true);
33 Object.preventExtensions(target);
34 assertEq(Object.isExtensible(target), false);
35 assertEq(Object.isExtensible(p), false);