proxy-emulates-undefined.js (1068B)
1 function testMixed() { 2 var global = newGlobal({newCompartment: true}); 3 var wrapperEmulatesUndefined = global.evaluate("createIsHTMLDDA()"); 4 var wrapperPlain = global.evaluate("({})"); 5 6 var arr = [ 7 createIsHTMLDDA(), 8 wrapperEmulatesUndefined, 9 wrapperPlain, 10 this, 11 new Proxy({}, {}) 12 ]; 13 14 var res = 0; 15 for (var i = 0; i < 100; i++) { 16 var val = arr[i % arr.length]; 17 if (val) { 18 res++; 19 } 20 if (val == null) { 21 res++; 22 } 23 if (val != undefined) { 24 res++; 25 } 26 } 27 assertEq(res, 160); 28 } 29 testMixed(); 30 31 function testNonWrapperProxy() { 32 var proxies = [new Proxy({}, {}), new Proxy({}, {})]; 33 var res = 0; 34 for (var i = 0; i < 100; i++) { 35 var val = proxies[i % proxies.length]; 36 if (val) { 37 res++; 38 } 39 if (val == null) { 40 throw "failure"; 41 } 42 if (val != undefined) { 43 res++; 44 } 45 } 46 assertEq(res, 200); 47 } 48 testNonWrapperProxy();