tor-browser

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

bug-1841771.js (2024B)


      1 var lfLogBuffer = `
      2 let hasFunction ;
      3 for (const name of [, "" ]) 
      4  g55 = newGlobal();
      5 gcparam('maxBytes', gcparam('gcBytes') );
      6 //corefuzz-dcd-endofdata
      7 /*
      8 //corefuzz-dcd-endofdata
      9 /**/
     10 
     11 
     12 
     13 let hasFunction ;
     14 for (const name of [ "", "", "", ""]) {
     15 
     16 
     17 
     18 
     19 
     20    const present = name in this;
     21    if (!present) 
     22        thisname = function() {};
     23 }
     24 //corefuzz-dcd-endofdata
     25 //corefuzz-dcd-selectmode 1089924061
     26 //corefuzz-dcd-endofdata
     27 oomTest(function() {
     28  let m14 = parseModule('a'.replace(/a/, assertEq.toString));
     29 });
     30 `;
     31 lfLogBuffer = lfLogBuffer.split('\n');
     32 let lfPreamble = `
     33  Object.defineProperty(this, "fuzzutils", {
     34    value:{
     35        untemplate: function(s) {
     36          return s.replace(/\\\\/g, '\\\\\\\\').replace(/\`/g, '\\\\\`').replace(/\\\$/g, '\\\\\$'); 
     37        }
     38    }
     39  });
     40 function lfFixRedeclaration(lfSrc, lfExc, lfRewriteSet) {
     41    let varName;
     42    let srcParts = lfSrc.split("\\n");
     43    let regReplace = new RegExp;
     44    for (let lfIdx = 0; lfIdx < srcParts.length; ++lfIdx)
     45      srcParts[lfExc.lineNumber - 1] = srcParts[lfExc.lineNumber - 1].replace(regReplace, varName);
     46    return srcParts.join();
     47 }
     48 `;
     49 evaluate(lfPreamble);
     50 let lfRunTypeId = -1;
     51 let lfCodeBuffer = "";
     52 while (true) {
     53    let line = lfLogBuffer.shift();
     54    if (line == null) break;
     55    else if (line == "//corefuzz-dcd-endofdata") {
     56        loadFile(lfCodeBuffer);
     57        lfCodeBuffer = "";
     58    } else lfCodeBuffer += line + "\n";
     59 }
     60 loadFile(lfCodeBuffer);
     61 function loadFile(lfVarx, lfForceRunType = 0, lfPatchSets = []) {
     62    try {
     63        if (lfVarx.indexOf("//corefuzz-dcd-selectmode ") === 0) {
     64            if (lfGCStress);
     65        } else {
     66                evaluate(lfVarx);
     67        }
     68    } catch (lfVare) {
     69        if (lfVare.toString.indexOf0 >= 0);
     70        else if (lfVare.toString().indexOf("redeclaration of ") >= 0) {
     71            let lfNewSrc = lfFixRedeclaration(lfVarx, lfVare, lfPatchSets);
     72            loadFile(lfNewSrc, lfRunTypeId, lfPatchSets);
     73        }
     74        lfVarx = fuzzutils.untemplate(lfVarx);
     75    }
     76 }