mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Use global Iterator.prototype for down-level generators (#59514)
This commit is contained in:
1 parent
3cf708e179
commit
67d0fc13ce
91 files changed
+345
-301
No files matched your search
@@ -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