tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

regress-434837-01.js (1926B)


      1 /* -*- indent-tabs-mode: nil; js-indent-level: 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/. */
      5 
      6 //-----------------------------------------------------------------------------
      7 var BUGNUMBER = 434837;
      8 var summary = '|this| in accessors in prototype chain of array';
      9 var actual = '';
     10 var expect = '';
     11 
     12 
     13 //-----------------------------------------------------------------------------
     14 test();
     15 //-----------------------------------------------------------------------------
     16 
     17 function test()
     18 {
     19  printBugNumber(BUGNUMBER);
     20  printStatus (summary);
     21 
     22  try
     23  {
     24    expect = true;
     25    actual = null;
     26    x = [ "one", "two" ];
     27    Array.prototype.__defineGetter__('test1', function() { actual = (this === x); });
     28    x.test1;
     29  }
     30  catch(ex)
     31  {
     32    actual = ex + '';
     33  }
     34  reportCompare(expect, actual, summary + ': x.test1');
     35 
     36  try
     37  {
     38    expect = false;
     39    actual = null;
     40    Array.prototype.__defineGetter__('test2', function() { actual = (this === Array.prototype) });
     41    x.test2;
     42  }
     43  catch(ex)
     44  {
     45    actual = ex + '';
     46  }
     47  reportCompare(expect, actual, summary + ': x.test2');
     48 
     49  Array.prototype.__defineGetter__('test3', function() { actual = (this === x) });
     50  Array.prototype.__defineSetter__('test3', function() { actual = (this === x) });
     51 
     52  try
     53  {
     54    expect = true;
     55    actual = null;
     56    x.test3;
     57  }
     58  catch(ex)
     59  {
     60    actual = ex + '';
     61  }
     62  reportCompare(expect, actual, summary + ': x.test3 (1)');
     63 
     64  try
     65  {
     66    expect = true;
     67    actual = null;
     68    x.test3 = 5;
     69  }
     70  catch(ex)
     71  {
     72    actual = ex + '';
     73  }
     74  reportCompare(expect, actual, summary + ': x.test3 = 5');
     75 
     76  try
     77  {
     78    expect = true;
     79    actual = null;
     80    x.test3;
     81  }
     82  catch(ex)
     83  {
     84    actual = ex + '';
     85  }
     86  reportCompare(expect, actual, summary + ': x.test3 (2)');
     87 }