Script Preparation code:
x
 
function* createGenerator() {
  var i;
  for (i = 0; i < 100; i++) {
    yield i;
  }
}
function createClosure() {
  var i = 0;
  return {
    next() {
      var result;
      if (i < 100) {
        result = {
          value: i,
          done: false
        };
      } else {
        result = {
          value: undefined,
          done: true
        };
      }
      i++;
      return result;
    }
  };
}
Tests:
  • ES6 generator

     
    var gen = createGenerator(),
        result;
    while (!(result = gen.next()).done) {
      window.result = result.value;
    }
  • Closure polyfill

     
    var gen = createClosure(),
        result;
    while (!(result = gen.next()).done) {
      window.result = result.value;
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    ES6 generator
    Closure polyfill

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 12 days ago)
Mozilla/5.0 (X11; Linux x86_64; rv:137.0) Gecko/20100101 Firefox/137.0
Firefox 137 on Linux
View result in a separate tab
Test name Executions per second
ES6 generator 7858.9 Ops/sec
Closure polyfill 11631.2 Ops/sec