]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/stress/double-rep-with-undefined.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / double-rep-with-undefined.js
CommitLineData
ed1e77d3
A
1// Using full number + undefined for math.
2function addArgsNumberAndUndefined(a, b) {
3 return a + b;
4}
5noInline(addArgsNumberAndUndefined);
6
7for (var i = 0; i < 1e4; ++i) {
8 var value = addArgsNumberAndUndefined(i, 1);
9 if (value !== (i + 1))
10 throw "addArgsNumberAndUndefined(i, 1) failed with i = " + i + " returned value = " + value;
11
12 var value = addArgsNumberAndUndefined(0.5, i);
13 if (value !== (i + 0.5))
14 throw "addArgsNumberAndUndefined(0.5, i) failed with i = " + i + " returned value = " + value;
15
16 var value = addArgsNumberAndUndefined(undefined, i);
17 if (value === value)
18 throw "addArgsNumberAndUndefined(undefined, i) failed with i = " + i + " returned value = " + value;
19
20 var value = addArgsNumberAndUndefined(i, undefined);
21 if (value === value)
22 throw "addArgsNumberAndUndefined(i, undefined) failed with i = " + i + " returned value = " + value;
23
24 var value = addArgsNumberAndUndefined(i);
25 if (value === value)
26 throw "addArgsNumberAndUndefined(i) failed with i = " + i + " returned value = " + value;
27
28 var value = addArgsNumberAndUndefined(undefined, undefined);
29 if (value === value)
30 throw "addArgsNumberAndUndefined(undefined, undefined) failed with i = " + i + " returned value = " + value;
31
32 var value = addArgsNumberAndUndefined();
33 if (value === value)
34 throw "addArgsNumberAndUndefined() failed with i = " + i + " returned value = " + value;
35}
36
37
38// Using int32 + undefined for math.
39function addArgsInt32AndUndefined(a, b) {
40 return a + b;
41}
42noInline(addArgsInt32AndUndefined);
43
44for (var i = 0; i < 1e4; ++i) {
45 var value = addArgsInt32AndUndefined(i, 1);
46 if (value !== (i + 1))
47 throw "addArgsInt32AndUndefined(i, 1) failed with i = " + i + " returned value = " + value;
48
49 var value = addArgsInt32AndUndefined(undefined, i);
50 if (value === value)
51 throw "addArgsInt32AndUndefined(undefined, i) failed with i = " + i + " returned value = " + value;
52
53 var value = addArgsInt32AndUndefined(i, undefined);
54 if (value === value)
55 throw "addArgsInt32AndUndefined(i, undefined) failed with i = " + i + " returned value = " + value;
56
57 var value = addArgsInt32AndUndefined(i);
58 if (value === value)
59 throw "addArgsInt32AndUndefined(i) failed with i = " + i + " returned value = " + value;
60
61 var value = addArgsInt32AndUndefined(undefined, undefined);
62 if (value === value)
63 throw "addArgsInt32AndUndefined(undefined, undefined) failed with i = " + i + " returned value = " + value;
64
65 var value = addArgsInt32AndUndefined();
66 if (value === value)
67 throw "addArgsInt32AndUndefined() failed with i = " + i + " returned value = " + value;
68}
69
70function testFallbackWithDouble() {
71 var value = addArgsNumberAndUndefined(Math.PI, Math.PI);
72 if (value !== 2 * Math.PI)
73 throw "addArgsNumberAndUndefined(Math.PI, Math.PI) failed with i = " + i + " returned value = " + value;
74}
75testFallbackWithDouble();
76
77
78// Using full number + undefined for math.
79function addArgsDoubleAndUndefined(a, b) {
80 return a + b;
81}
82noInline(addArgsDoubleAndUndefined);
83
84for (var i = 0; i < 1e4; ++i) {
85 var value = addArgsDoubleAndUndefined(0.5, i);
86 if (value !== (i + 0.5))
87 throw "addArgsDoubleAndUndefined(0.5, i) failed with i = " + i + " returned value = " + value;
88
89 var value = addArgsDoubleAndUndefined(undefined, 0.1);
90 if (value === value)
91 throw "addArgsDoubleAndUndefined(undefined, i) failed with i = " + i + " returned value = " + value;
92
93 var value = addArgsDoubleAndUndefined(0.6, undefined);
94 if (value === value)
95 throw "addArgsDoubleAndUndefined(i, undefined) failed with i = " + i + " returned value = " + value;
96
97 var value = addArgsDoubleAndUndefined(42.8);
98 if (value === value)
99 throw "addArgsDoubleAndUndefined(i) failed with i = " + i + " returned value = " + value;
100}
101
102function testFallbackWithObject() {
103 var value = addArgsDoubleAndUndefined(Math.PI, { valueOf: function() { return 5; }});
104 if (value !== 5 + Math.PI)
105 throw "addArgsDoubleAndUndefined(Math.PI, { valueOf: function() { return 5; }}) failed with i = " + i + " returned value = " + value;
106}
107testFallbackWithObject();
108
109
110// Using full number + undefined for math.
111function addArgsOnlyUndefined(a, b) {
112 return a + b;
113}
114noInline(addArgsOnlyUndefined);
115
116for (var i = 0; i < 1e4; ++i) {
117 var value = addArgsOnlyUndefined(undefined, undefined);
118 if (value === value)
119 throw "addArgsOnlyUndefined(undefined, undefined) failed with i = " + i + " returned value = " + value;
120
121 var value = addArgsOnlyUndefined();
122 if (value === value)
123 throw "addArgsOnlyUndefined() failed with i = " + i + " returned value = " + value;
124}
125
126function testFallbackWithString() {
127 var value = addArgsOnlyUndefined("foo", "bar");
128 if (value !== "foobar")
129 throw "addArgsOnlyUndefined(\"foo\", \"bar\") failed with i = " + i + " returned value = " + value;
130}
131testFallbackWithString();