Thu, 15 Jan 2015 21:03:48 +0100
Integrate friendly tips from Tor colleagues to make (or not) 4.5 alpha 3;
This includes removal of overloaded (but unused) methods, and addition of
a overlooked call to DataStruct::SetData(nsISupports, uint32_t, bool.)
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);