Imported Upstream version 1.0.0
[platform/upstream/js.git] / js / src / jit-test / tests / jaeger / testForOps.js
1 // |jit-test| mjitalways
2 // vim: set ts=4 sw=4 tw=99 et:
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     assertJit();
17     eval('');
18     var r = { };
19     for (x in obj)
20         r[x] = obj[x];
21     return r;
22 }
23
24 function forGlobalName(obj) {
25     assertJit();
26     var r = { };
27     for (x in obj)
28         r[x] = obj[x];
29     return r;
30 }
31
32 function forProp(obj) {
33     assertJit();
34     var r = { };
35     var c = { };
36     for (c.x in obj)
37         r[c.x] = obj[c.x];
38     return r;
39 }
40
41 function forElem(obj, x) {
42     assertJit();
43     var r = { };
44     var c = { };
45     for (c[x] in obj)
46         r[c[x]] = obj[c[x]];
47     return r;
48 }
49
50 function forLocal(obj) {
51     assertJit();
52     var r = { };
53     for (var x in obj)
54         r[x] = obj[x];
55     return r;
56 }
57
58 function forArg(obj, x) {
59     assertJit();
60     var r = { };
61     for (x in obj)
62         r[x] = obj[x];
63     return r;
64 }
65
66 var obj = { a: 1, b: "bee", c: "crab", d: 12 };
67 assertObjectsEqual(obj, forName(obj));
68 assertObjectsEqual(obj, forGlobalName(obj));
69 assertObjectsEqual(obj, forProp(obj));
70 assertObjectsEqual(obj, forElem(obj, "v"));
71 assertObjectsEqual(obj, forLocal(obj));
72 assertObjectsEqual(obj, forArg(obj));
73