Script Preparation code:
x
 
function* createGenerator() {
  var i;
  for (i = 0; i < 0; i++) {
    yield i;
  }
}
function createClosure() {
  var i = 0;
  return {
    next() {
      var result;
      if (i < 0) {
        result = {
          value: i,
          done: false
        };
        i++;
      } else {
        result = {
          value: undefined,
          done: true
        };
      }
      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: one year ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Chrome 122 on Linux
View result in a separate tab
Test name Executions per second
ES6 generator 14119745.0 Ops/sec
Closure polyfill 7197239.0 Ops/sec