Skip to content

Commit 227b5d6

Browse files
authored
Use global 'Iterator.prototype' for downlevel generators (#267)
1 parent 4f2902c commit 227b5d6

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

tslib.es6.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1212
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1313
PERFORMANCE OF THIS SOFTWARE.
1414
***************************************************************************** */
15-
/* global Reflect, Promise, SuppressedError, Symbol */
15+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
1616

1717
var extendStatics = function(d, b) {
1818
extendStatics = Object.setPrototypeOf ||
@@ -123,8 +123,8 @@ export function __awaiter(thisArg, _arguments, P, generator) {
123123
}
124124

125125
export function __generator(thisArg, body) {
126-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
127-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
126+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
127+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
128128
function verb(n) { return function (v) { return step([n, v]); }; }
129129
function step(op) {
130130
if (f) throw new TypeError("Generator is already executing.");
@@ -228,7 +228,7 @@ export function __await(v) {
228228
export function __asyncGenerator(thisArg, _arguments, generator) {
229229
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
230230
var g = generator.apply(thisArg, _arguments || []), i, q = [];
231-
return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
231+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
232232
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
233233
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
234234
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

tslib.es6.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1212
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1313
PERFORMANCE OF THIS SOFTWARE.
1414
***************************************************************************** */
15-
/* global Reflect, Promise, SuppressedError, Symbol */
15+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
1616

1717
var extendStatics = function(d, b) {
1818
extendStatics = Object.setPrototypeOf ||
@@ -123,8 +123,8 @@ export function __awaiter(thisArg, _arguments, P, generator) {
123123
}
124124

125125
export function __generator(thisArg, body) {
126-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
127-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
126+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
127+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
128128
function verb(n) { return function (v) { return step([n, v]); }; }
129129
function step(op) {
130130
if (f) throw new TypeError("Generator is already executing.");
@@ -228,7 +228,7 @@ export function __await(v) {
228228
export function __asyncGenerator(thisArg, _arguments, generator) {
229229
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
230230
var g = generator.apply(thisArg, _arguments || []), i, q = [];
231-
return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
231+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
232232
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
233233
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
234234
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

tslib.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1212
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1313
PERFORMANCE OF THIS SOFTWARE.
1414
***************************************************************************** */
15-
/* global global, define, Symbol, Reflect, Promise, SuppressedError */
15+
/* global global, define, Symbol, Reflect, Promise, SuppressedError, Iterator */
1616
var __extends;
1717
var __assign;
1818
var __rest;
@@ -171,8 +171,8 @@ var __disposeResources;
171171
};
172172

173173
__generator = function (thisArg, body) {
174-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
175-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
174+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
175+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
176176
function verb(n) { return function (v) { return step([n, v]); }; }
177177
function step(op) {
178178
if (f) throw new TypeError("Generator is already executing.");
@@ -276,7 +276,7 @@ var __disposeResources;
276276
__asyncGenerator = function (thisArg, _arguments, generator) {
277277
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
278278
var g = generator.apply(thisArg, _arguments || []), i, q = [];
279-
return i = {}, verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
279+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
280280
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
281281
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
282282
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }

0 commit comments

Comments
 (0)