1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/jaeger/testForOps.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,67 @@ 1.4 +// |jit-test| 1.5 +// vim: set ts=8 sts=4 et sw=4 tw=99: 1.6 + 1.7 +function assertObjectsEqual(obj1, obj2) { 1.8 + assertEq(obj1.a, obj2.a); 1.9 + assertEq(obj1.b, obj2.b); 1.10 + assertEq(obj1.c, obj2.c); 1.11 + assertEq(obj1.d, obj2.d); 1.12 + assertEq(obj2.a, 1); 1.13 + assertEq(obj2.b, "bee"); 1.14 + assertEq(obj2.c, "crab"); 1.15 + assertEq(obj2.d, 12); 1.16 +} 1.17 + 1.18 +function forName(obj) { 1.19 + eval(''); 1.20 + var r = { }; 1.21 + for (x in obj) 1.22 + r[x] = obj[x]; 1.23 + return r; 1.24 +} 1.25 + 1.26 +function forGlobalName(obj) { 1.27 + var r = { }; 1.28 + for (x in obj) 1.29 + r[x] = obj[x]; 1.30 + return r; 1.31 +} 1.32 + 1.33 +function forProp(obj) { 1.34 + var r = { }; 1.35 + var c = { }; 1.36 + for (c.x in obj) 1.37 + r[c.x] = obj[c.x]; 1.38 + return r; 1.39 +} 1.40 + 1.41 +function forElem(obj, x) { 1.42 + var r = { }; 1.43 + var c = { }; 1.44 + for (c[x] in obj) 1.45 + r[c[x]] = obj[c[x]]; 1.46 + return r; 1.47 +} 1.48 + 1.49 +function forLocal(obj) { 1.50 + var r = { }; 1.51 + for (var x in obj) 1.52 + r[x] = obj[x]; 1.53 + return r; 1.54 +} 1.55 + 1.56 +function forArg(obj, x) { 1.57 + var r = { }; 1.58 + for (x in obj) 1.59 + r[x] = obj[x]; 1.60 + return r; 1.61 +} 1.62 + 1.63 +var obj = { a: 1, b: "bee", c: "crab", d: 12 }; 1.64 +assertObjectsEqual(obj, forName(obj)); 1.65 +assertObjectsEqual(obj, forGlobalName(obj)); 1.66 +assertObjectsEqual(obj, forProp(obj)); 1.67 +assertObjectsEqual(obj, forElem(obj, "v")); 1.68 +assertObjectsEqual(obj, forLocal(obj)); 1.69 +assertObjectsEqual(obj, forArg(obj)); 1.70 +