JSFiddle - React, Tailwind, and code Playground

HTML

<pre id="logger"></pre>

JavaScript

function log(...text) {
  logger.textContent += text.join(" ") + "\n";
}

var it = [1, 2, 3][Symbol.iterator]();
var iterable = {
  [Symbol.iterator]() {
    Number.prototype.next = function() {
      log("! Number.prototype.next() called, but should have thrown");
      return it.next();
    };
    return 1;
  }
};

try {
  for (var x of iterable) {
    log("Returned", x);
  }
} catch (e) {
  log("Threw", String(e), "as expected");
}