tor-browser

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

call-generic-throw.js (643B)


      1 // Verify that we throw when calling/constructing functions that must be
      2 // constructed/called.
      3 
      4 function foo(f) {
      5  f();
      6 }
      7 
      8 function new_foo(f) {
      9  new f();
     10 }
     11 
     12 with ({}) {}
     13 
     14 function f1() {}
     15 function f2() {}
     16 
     17 // Ion-compile the generic trampoline.
     18 for (var i = 0; i < 1000; i++) {
     19  foo(f1);
     20  foo(f2);
     21  new_foo(f1);
     22  new_foo(f2);
     23 }
     24 
     25 class A {}
     26 class B extends A {}
     27 var caught_constructor = false;
     28 try {
     29  foo(B);
     30 } catch {
     31  caught_constructor = true;
     32 }
     33 assertEq(caught_constructor, true);
     34 
     35 var caught_non_constructor = false;
     36 try {
     37  new_foo(() => {});
     38 } catch {
     39  caught_non_constructor = true;
     40 }
     41 assertEq(caught_non_constructor, true);