or-vs-if-vs-throw

Benchmark created on


Setup

function a() {
      return true;
    }
    
    function b() {
      return true;
    }
    
    function c() {
      return false;
    }
    
    function ct() {
      throw false;
    }
    
    function _or() {
      return a() && b() && a() && b() && a() && b() && c();
    }
    
    function _if() {
      if (!a()) return false;
      if (!b()) return false;
      if (!a()) return false;
      if (!b()) return false;
      if (!a()) return false;
      if (!b()) return false;
      if (!c()) return false;
      return true;
    }
    
    function _throw() {
      a();
      b();
      a();
      b();
      a();
      b();
      ct();
    }
    
    function _throw_wrap(fn) {
      try {
        return fn();
      } catch(e) {
        if (e === false) return false;
        throw e;
      }
    }

Test runner

Ready to run.

Testing in
TestOps/sec
or
_or();
ready
if
_if();
ready
throw
_throw_wrap(_throw);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.