tor-browser

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

bug892787-2.js (771B)


      1 // Constructing calls should throw if !callee->isInterpretedConstructor().
      2 // This tests the polymorphic call path.
      3 
      4 for (var i=0; i<20; i++)
      5    Function.prototype();
      6 
      7 var funs = [
      8    function() { return 1; },
      9    function() { return 2; },
     10    function() { return 3; },
     11    function() { return 4; },
     12    function() { return 5; },
     13    function() { return 6; },
     14    function() { return 7; },
     15    function() { return 8; },
     16    function() { return 9; },
     17    function() { return 10; },
     18    Function.prototype
     19 ];
     20 
     21 function f(callee) {
     22    new callee;
     23 }
     24 function g() {
     25    var c = 0;
     26    for (var i=0; i<50; i++) {
     27 try {
     28     f(funs[i % funs.length]);
     29 } catch (e) {
     30     assertEq(e.message.includes("not a constructor"), true);
     31     c++;
     32 }
     33    }
     34    assertEq(c, 4);
     35 }
     36 g();