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