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 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 /**
8 Filename: RegExp_multiline_as_array.js
9 Description: 'Tests RegExps $* property (same tests as RegExp_multiline.js but using $*)'
11 Author: Nick Lerissa
12 Date: March 13, 1998
13 */
15 var SECTION = 'As described in Netscape doc "Whats new in JavaScript 1.2"';
16 var VERSION = 'no version';
17 startTest();
18 var TITLE = 'RegExp: $*';
20 writeHeaderToLog('Executing script: RegExp_multiline_as_array.js');
21 writeHeaderToLog( SECTION + " "+ TITLE);
24 // First we do a series of tests with RegExp['$*'] set to false (default value)
25 // Following this we do the same tests with RegExp['$*'] set true(**).
26 // RegExp['$*']
27 new TestCase ( SECTION, "RegExp['$*']",
28 false, RegExp['$*']);
30 // (['$*'] == false) '123\n456'.match(/^4../)
31 new TestCase ( SECTION, "(['$*'] == false) '123\\n456'.match(/^4../)",
32 null, '123\n456'.match(/^4../));
34 // (['$*'] == false) 'a11\na22\na23\na24'.match(/^a../g)
35 new TestCase ( SECTION, "(['$*'] == false) 'a11\\na22\\na23\\na24'.match(/^a../g)",
36 String(['a11']), String('a11\na22\na23\na24'.match(/^a../g)));
38 // (['$*'] == false) 'a11\na22'.match(/^.+^./)
39 new TestCase ( SECTION, "(['$*'] == false) 'a11\na22'.match(/^.+^./)",
40 null, 'a11\na22'.match(/^.+^./));
42 // (['$*'] == false) '123\n456'.match(/.3$/)
43 new TestCase ( SECTION, "(['$*'] == false) '123\\n456'.match(/.3$/)",
44 null, '123\n456'.match(/.3$/));
46 // (['$*'] == false) 'a11\na22\na23\na24'.match(/a..$/g)
47 new TestCase ( SECTION, "(['$*'] == false) 'a11\\na22\\na23\\na24'.match(/a..$/g)",
48 String(['a24']), String('a11\na22\na23\na24'.match(/a..$/g)));
50 // (['$*'] == false) 'abc\ndef'.match(/c$...$/)
51 new TestCase ( SECTION, "(['$*'] == false) 'abc\ndef'.match(/c$...$/)",
52 null, 'abc\ndef'.match(/c$...$/));
54 // (['$*'] == false) 'a11\na22\na23\na24'.match(new RegExp('a..$','g'))
55 new TestCase ( SECTION, "(['$*'] == false) 'a11\\na22\\na23\\na24'.match(new RegExp('a..$','g'))",
56 String(['a24']), String('a11\na22\na23\na24'.match(new RegExp('a..$','g'))));
58 // (['$*'] == false) 'abc\ndef'.match(new RegExp('c$...$'))
59 new TestCase ( SECTION, "(['$*'] == false) 'abc\ndef'.match(new RegExp('c$...$'))",
60 null, 'abc\ndef'.match(new RegExp('c$...$')));
62 // **Now we do the tests with RegExp['$*'] set to true
63 // RegExp['$*'] = true; RegExp['$*']
64 RegExp['$*'] = true;
65 new TestCase ( SECTION, "RegExp['$*'] = true; RegExp['$*']",
66 true, RegExp['$*']);
68 // (['$*'] == true) '123\n456'.match(/^4../)
69 new TestCase ( SECTION, "(['$*'] == true) '123\\n456'.match(/^4../)",
70 String(['456']), String('123\n456'.match(/^4../)));
72 // (['$*'] == true) 'a11\na22\na23\na24'.match(/^a../g)
73 new TestCase ( SECTION, "(['$*'] == true) 'a11\\na22\\na23\\na24'.match(/^a../g)",
74 String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(/^a../g)));
76 // (['$*'] == true) 'a11\na22'.match(/^.+^./)
77 //new TestCase ( SECTION, "(['$*'] == true) 'a11\na22'.match(/^.+^./)",
78 // String(['a11\na']), String('a11\na22'.match(/^.+^./)));
80 // (['$*'] == true) '123\n456'.match(/.3$/)
81 new TestCase ( SECTION, "(['$*'] == true) '123\\n456'.match(/.3$/)",
82 String(['23']), String('123\n456'.match(/.3$/)));
84 // (['$*'] == true) 'a11\na22\na23\na24'.match(/a..$/g)
85 new TestCase ( SECTION, "(['$*'] == true) 'a11\\na22\\na23\\na24'.match(/a..$/g)",
86 String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(/a..$/g)));
88 // (['$*'] == true) 'a11\na22\na23\na24'.match(new RegExp('a..$','g'))
89 new TestCase ( SECTION, "(['$*'] == true) 'a11\\na22\\na23\\na24'.match(new RegExp('a..$','g'))",
90 String(['a11','a22','a23','a24']), String('a11\na22\na23\na24'.match(new RegExp('a..$','g'))));
92 // (['$*'] == true) 'abc\ndef'.match(/c$....$/)
93 //new TestCase ( SECTION, "(['$*'] == true) 'abc\ndef'.match(/c$.+$/)",
94 // 'c\ndef', String('abc\ndef'.match(/c$.+$/)));
96 RegExp['$*'] = false;
98 test();