mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-06-13 11:46:08 -05:00
Use global Iterator.prototype for down-level generators (#59514)
This commit is contained in:
@@ -83,4 +83,26 @@ describe("unittests:: evaluation:: asyncGeneratorEvaluation", () => {
|
||||
{ done: true, value: 2 },
|
||||
]);
|
||||
});
|
||||
it("Supports global `AsyncIterator.prototype` if present", () => {
|
||||
class AsyncIterator {}
|
||||
const { gen } = evaluator.evaluateTypeScript(
|
||||
`
|
||||
export async function * gen() {}
|
||||
`,
|
||||
{ target: ts.ScriptTarget.ES5 },
|
||||
{ AsyncIterator },
|
||||
);
|
||||
const g = gen();
|
||||
assert.instanceOf(g, AsyncIterator);
|
||||
});
|
||||
it("Ignores global `AsyncIterator.prototype` if missing", () => {
|
||||
const { gen } = evaluator.evaluateTypeScript(
|
||||
`
|
||||
export async function * gen() {}
|
||||
`,
|
||||
{ target: ts.ScriptTarget.ES5 },
|
||||
{ AsyncIterator: undefined },
|
||||
);
|
||||
gen();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -39,4 +39,26 @@ describe("unittests:: evaluation:: generatorEvaluation", () => {
|
||||
assert.deepEqual(g.next(), { value: undefined, done: true });
|
||||
assert.deepEqual(output, []);
|
||||
});
|
||||
it("Supports global `Iterator.prototype` if present", () => {
|
||||
class Iterator {}
|
||||
const { gen } = evaluator.evaluateTypeScript(
|
||||
`
|
||||
export function * gen() {}
|
||||
`,
|
||||
{ target: ts.ScriptTarget.ES5 },
|
||||
{ Iterator },
|
||||
);
|
||||
const g = gen();
|
||||
assert.instanceOf(g, Iterator);
|
||||
});
|
||||
it("Ignores global `Iterator.prototype` if missing", () => {
|
||||
const { gen } = evaluator.evaluateTypeScript(
|
||||
`
|
||||
export function * gen() {}
|
||||
`,
|
||||
{ target: ts.ScriptTarget.ES5 },
|
||||
{ Iterator: undefined },
|
||||
);
|
||||
gen();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user