dom/imptests/html/js/builtins/Math.maxmin.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:41a2988684e1
1 function testMathMaxMin(aFun) {
2 var test_error = { name: "test" };
3 test(function() {
4 assert_throws(test_error, function() {
5 Math[aFun](NaN, {
6 valueOf: function() {
7 throw test_error;
8 }
9 });
10 });
11 }, "ToNumber should be called on all arguments: NaN.");
12 test(function() {
13 assert_throws(test_error, function() {
14 Math[aFun](-Infinity, {
15 valueOf: function() {
16 throw test_error;
17 }
18 });
19 });
20 }, "ToNumber should be called on all arguments: -Infinity.");
21 test(function() {
22 assert_throws(test_error, function() {
23 Math[aFun](Infinity, {
24 valueOf: function() {
25 throw test_error;
26 }
27 });
28 });
29 }, "ToNumber should be called on all arguments: Infinity.");
30 test(function() {
31 assert_throws(test_error, function() {
32 Math[aFun]({
33 valueOf: function() {
34 throw test_error;
35 }
36 },
37 {
38 valueOf: function() {
39 throw 7;
40 }
41 });
42 });
43 }, "ToNumber should be called left to right.");
44 test(function() {
45 assert_equals(Math[aFun]("1"), 1);
46 }, "Should return a number.");
47 test(function() {
48 var expected = {
49 "max": 0,
50 "min": -0
51 }
52 assert_equals(Math[aFun](0, -0), expected[aFun]);
53 assert_equals(Math[aFun](-0, 0), expected[aFun]);
54 assert_equals(Math[aFun](0, 0), 0);
55 assert_equals(Math[aFun](-0, -0), -0);
56 }, "Should handle negative zero correctly.");
57 }

mercurial