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.
michael@0 | 1 | // For and if clauses can nest without limit in comprehensions. This is |
michael@0 | 2 | // unlike JS 1.8 comprehensions, which can only have one trailing "if" |
michael@0 | 3 | // clause. |
michael@0 | 4 | |
michael@0 | 5 | function* range(start, end) { |
michael@0 | 6 | for (var n = start; n < end; n++) |
michael@0 | 7 | yield n; |
michael@0 | 8 | } |
michael@0 | 9 | |
michael@0 | 10 | function primesBetween6And25() { |
michael@0 | 11 | return [for (n of range(6, 25)) if (n % 2) if (n % 3) if (n % 5) n]; |
michael@0 | 12 | } |
michael@0 | 13 | assertDeepEq(primesBetween6And25(), [7,11,13,17,19,23]); |
michael@0 | 14 | |
michael@0 | 15 | function countUpToEvens(limit) { |
michael@0 | 16 | return [for (n of range(0, limit)) if (!(n % 2)) for (m of range(0, n)) m] |
michael@0 | 17 | } |
michael@0 | 18 | assertDeepEq(countUpToEvens(7), [0,1,0,1,2,3,0,1,2,3,4,5]); |
michael@0 | 19 | |
michael@0 | 20 | reportCompare(null, null, "test"); |