// yield form within a catch block function* tryCatchYieldGenerator() { var x = 3; try { throw 5; } catch (e) { yield e * x; } } function accumulate(iterator) { var result = ''; for (var value of iterator) { result = result + String(value); } return result; } // ---------------------------------------------------------------------------- assert.equal('15', accumulate(tryCatchYieldGenerator()));