tor-browser

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

testStringLengthNoTinyId.js (1474B)


      1 // Second testPropagatedFunArgs test -- this is a crash-test.
      2 (function () {
      3  var escapee;
      4 
      5  function testPropagatedFunArgs()
      6  {
      7    const magic = 42;
      8 
      9    var win = this;
     10    var res = [], q = [];
     11    function addEventListener(name, func, flag) {
     12      q.push(func);
     13    }
     14 
     15    var pageInfo = "pageInfo", obs;
     16    addEventListener("load", handleLoad, true);
     17 
     18    var observer = {
     19      observe: function(win, topic, data) {
     20        // obs.removeObserver(observer, "page-info-dialog-loaded");
     21        handlePageInfo();
     22      }
     23    };
     24 
     25    function handleLoad() {
     26      //pageInfo = { toString: function() { return "pageInfo"; } };
     27      obs = { addObserver: function (obs, topic, data) { obs.observe(win, topic, data); } };
     28      obs.addObserver(observer, "page-info-dialog-loaded", false);
     29    }
     30 
     31    function handlePageInfo() {
     32      res.push(pageInfo);
     33      function $(aId) {
     34        function notSafe() {
     35          return magic;
     36        }
     37        notSafe();
     38        res.push(pageInfo);
     39      };
     40      var feedTab = $("feedTab");
     41    }
     42 
     43    escapee = q[0];
     44    return res.join(',');
     45  }
     46 
     47  testPropagatedFunArgs();
     48 
     49  escapee();
     50 })();
     51 
     52 function testStringLengthNoTinyId()
     53 {
     54  var x = "unset";
     55  var t = new String("");
     56  for (var i = 0; i < 5; i++)
     57    x = t["-1"];
     58 
     59  var r = "t['-1'] is " + x;
     60  t["-1"] = "foo";
     61  r += " when unset, '" + t["-1"] + "' when set";
     62  return r;
     63 }
     64 assertEq(testStringLengthNoTinyId(), "t['-1'] is undefined when unset, 'foo' when set");