Sat, 03 Jan 2015 20:18:00 +0100
Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.
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 }