tor-browser

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

nondefinable-function-same-script.js (884B)


      1 // |reftest| skip-if(!xulRuntime.shell)
      2 
      3 function assertEvaluateAndIndirectEvalThrows(str) {
      4  assertThrowsInstanceOf(() => evaluate(str), TypeError);
      5  assertThrowsInstanceOf(() => (1,eval)(str), TypeError);
      6 }
      7 
      8 // Regular vars
      9 assertEvaluateAndIndirectEvalThrows(`var NaN; function NaN() {}`);
     10 
     11 // for-of vars
     12 assertEvaluateAndIndirectEvalThrows(`for (var NaN of []); function NaN() {}`);
     13 
     14 // Annex B.3.3 synthesized vars
     15 assertEvaluateAndIndirectEvalThrows(`{ function NaN() {} } function NaN() {}`);
     16 
     17 // Non-data properties
     18 Object.defineProperty(this, 'foo', { set: function() {} });
     19 assertEvaluateAndIndirectEvalThrows(`var foo; function foo() {}`);
     20 assertEvaluateAndIndirectEvalThrows(`for (var foo of []); function foo() {}`);
     21 assertEvaluateAndIndirectEvalThrows(`{ function foo() {} } function foo() {}`);
     22 
     23 if (typeof reportCompare === "function")
     24  reportCompare(true, true);