js/src/tests/js1_5/Scope/scope-004.js

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

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 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 5
michael@0 6 /*
michael@0 7 * Date: 2001-07-16
michael@0 8 *
michael@0 9 * SUMMARY: Testing visiblity of variables from within a with block.
michael@0 10 * See http://bugzilla.mozilla.org/show_bug.cgi?id=90325
michael@0 11 */
michael@0 12 //-----------------------------------------------------------------------------
michael@0 13 var UBound = 0;
michael@0 14 var BUGNUMBER = 90325;
michael@0 15 var summary = 'Testing visiblity of variables from within a with block';
michael@0 16 var status = '';
michael@0 17 var statusitems = [];
michael@0 18 var actual = '';
michael@0 19 var actualvalues = [];
michael@0 20 var expect= '';
michael@0 21 var expectedvalues = [];
michael@0 22
michael@0 23 // (compare local definitions which follow) -
michael@0 24 var A = 'global A';
michael@0 25 var B = 'global B';
michael@0 26 var C = 'global C';
michael@0 27 var D = 'global D';
michael@0 28
michael@0 29 // an object with 'C' and 'D' properties -
michael@0 30 var objTEST = new Object();
michael@0 31 objTEST.C = C;
michael@0 32 objTEST.D = D;
michael@0 33
michael@0 34
michael@0 35 status = 'Section 1 of test';
michael@0 36 with (new Object())
michael@0 37 {
michael@0 38 actual = A;
michael@0 39 expect = 'global A';
michael@0 40 }
michael@0 41 addThis();
michael@0 42
michael@0 43
michael@0 44 status = 'Section 2 of test';
michael@0 45 with (Function)
michael@0 46 {
michael@0 47 actual = B;
michael@0 48 expect = 'global B';
michael@0 49 }
michael@0 50 addThis();
michael@0 51
michael@0 52
michael@0 53 status = 'Section 3 of test';
michael@0 54 with (this)
michael@0 55 {
michael@0 56 actual = C;
michael@0 57 expect = 'global C';
michael@0 58 }
michael@0 59 addThis();
michael@0 60
michael@0 61
michael@0 62 status = 'Section 4 of test';
michael@0 63 localA();
michael@0 64 addThis();
michael@0 65
michael@0 66 status = 'Section 5 of test';
michael@0 67 localB();
michael@0 68 addThis();
michael@0 69
michael@0 70 status = 'Section 6 of test';
michael@0 71 localC();
michael@0 72 addThis();
michael@0 73
michael@0 74 status = 'Section 7 of test';
michael@0 75 localC(new Object());
michael@0 76 addThis();
michael@0 77
michael@0 78 status = 'Section 8 of test';
michael@0 79 localC.apply(new Object());
michael@0 80 addThis();
michael@0 81
michael@0 82 status = 'Section 9 of test';
michael@0 83 localC.apply(new Object(), [objTEST]);
michael@0 84 addThis();
michael@0 85
michael@0 86 status = 'Section 10 of test';
michael@0 87 localC.apply(objTEST, [objTEST]);
michael@0 88 addThis();
michael@0 89
michael@0 90 status = 'Section 11 of test';
michael@0 91 localD(new Object());
michael@0 92 addThis();
michael@0 93
michael@0 94 status = 'Section 12 of test';
michael@0 95 localD.apply(new Object(), [objTEST]);
michael@0 96 addThis();
michael@0 97
michael@0 98 status = 'Section 13 of test';
michael@0 99 localD.apply(objTEST, [objTEST]);
michael@0 100 addThis();
michael@0 101
michael@0 102
michael@0 103
michael@0 104 //-------------------------------------------------------------------------------------------------
michael@0 105 test();
michael@0 106 //-------------------------------------------------------------------------------------------------
michael@0 107
michael@0 108
michael@0 109
michael@0 110 // contains a with(new Object()) block -
michael@0 111 function localA()
michael@0 112 {
michael@0 113 var A = 'local A';
michael@0 114
michael@0 115 with(new Object())
michael@0 116 {
michael@0 117 actual = A;
michael@0 118 expect = 'local A';
michael@0 119 }
michael@0 120 }
michael@0 121
michael@0 122
michael@0 123 // contains a with(Number) block -
michael@0 124 function localB()
michael@0 125 {
michael@0 126 var B = 'local B';
michael@0 127
michael@0 128 with(Number)
michael@0 129 {
michael@0 130 actual = B;
michael@0 131 expect = 'local B';
michael@0 132 }
michael@0 133 }
michael@0 134
michael@0 135
michael@0 136 // contains a with(this) block -
michael@0 137 function localC(obj)
michael@0 138 {
michael@0 139 var C = 'local C';
michael@0 140
michael@0 141 with(this)
michael@0 142 {
michael@0 143 actual = C;
michael@0 144 }
michael@0 145
michael@0 146 if ('C' in this)
michael@0 147 expect = this.C;
michael@0 148 else
michael@0 149 expect = 'local C';
michael@0 150 }
michael@0 151
michael@0 152
michael@0 153 // contains a with(obj) block -
michael@0 154 function localD(obj)
michael@0 155 {
michael@0 156 var D = 'local D';
michael@0 157
michael@0 158 with(obj)
michael@0 159 {
michael@0 160 actual = D;
michael@0 161 }
michael@0 162
michael@0 163 if ('D' in obj)
michael@0 164 expect = obj.D;
michael@0 165 else
michael@0 166 expect = 'local D';
michael@0 167 }
michael@0 168
michael@0 169
michael@0 170 function addThis()
michael@0 171 {
michael@0 172 statusitems[UBound] = status;
michael@0 173 actualvalues[UBound] = actual;
michael@0 174 expectedvalues[UBound] = expect;
michael@0 175 UBound++;
michael@0 176 }
michael@0 177
michael@0 178
michael@0 179 function test()
michael@0 180 {
michael@0 181 enterFunc ('test');
michael@0 182 printBugNumber(BUGNUMBER);
michael@0 183 printStatus (summary);
michael@0 184
michael@0 185 for (var i = 0; i < UBound; i++)
michael@0 186 {
michael@0 187 reportCompare(expectedvalues[i], actualvalues[i], statusitems[i]);
michael@0 188 }
michael@0 189
michael@0 190 exitFunc ('test');
michael@0 191 }

mercurial