testForOps.js (1301B)
1 // |jit-test| 2 // vim: set ts=8 sts=4 et sw=4 tw=99: 3 4 function assertObjectsEqual(obj1, obj2) { 5 assertEq(obj1.a, obj2.a); 6 assertEq(obj1.b, obj2.b); 7 assertEq(obj1.c, obj2.c); 8 assertEq(obj1.d, obj2.d); 9 assertEq(obj2.a, 1); 10 assertEq(obj2.b, "bee"); 11 assertEq(obj2.c, "crab"); 12 assertEq(obj2.d, 12); 13 } 14 15 function forName(obj) { 16 eval(''); 17 var r = { }; 18 for (x in obj) 19 r[x] = obj[x]; 20 return r; 21 } 22 23 function forGlobalName(obj) { 24 var r = { }; 25 for (x in obj) 26 r[x] = obj[x]; 27 return r; 28 } 29 30 function forProp(obj) { 31 var r = { }; 32 var c = { }; 33 for (c.x in obj) 34 r[c.x] = obj[c.x]; 35 return r; 36 } 37 38 function forElem(obj, x) { 39 var r = { }; 40 var c = { }; 41 for (c[x] in obj) 42 r[c[x]] = obj[c[x]]; 43 return r; 44 } 45 46 function forLocal(obj) { 47 var r = { }; 48 for (var x in obj) 49 r[x] = obj[x]; 50 return r; 51 } 52 53 function forArg(obj, x) { 54 var r = { }; 55 for (x in obj) 56 r[x] = obj[x]; 57 return r; 58 } 59 60 var obj = { a: 1, b: "bee", c: "crab", d: 12 }; 61 assertObjectsEqual(obj, forName(obj)); 62 assertObjectsEqual(obj, forGlobalName(obj)); 63 assertObjectsEqual(obj, forProp(obj)); 64 assertObjectsEqual(obj, forElem(obj, "v")); 65 assertObjectsEqual(obj, forLocal(obj)); 66 assertObjectsEqual(obj, forArg(obj));