diff --git a/src/lib/es2015.iterable.d.ts b/src/lib/es2015.iterable.d.ts
index e1b9d99762b..4ccdd02b566 100644
--- a/src/lib/es2015.iterable.d.ts
+++ b/src/lib/es2015.iterable.d.ts
@@ -1,24 +1,13 @@
///
interface SymbolConstructor {
- /**
- * A method that returns the default iterator for an object. Called by the semantics of the
+ /**
+ * A method that returns the default iterator for an object. Called by the semantics of the
* for-of statement.
*/
readonly iterator: symbol;
}
-interface IteratorResult {
- done: boolean;
- value: T;
-}
-
-interface Iterator {
- next(value?: any): IteratorResult;
- return?(value?: any): IteratorResult;
- throw?(e?: any): IteratorResult;
-}
-
interface Iterable {
[Symbol.iterator](): Iterator;
}
@@ -31,17 +20,17 @@ interface Array {
/** Iterator */
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, T]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -55,7 +44,7 @@ interface ArrayConstructor {
* @param thisArg Value of 'this' used to invoke the mapfn.
*/
from(iterable: Iterable, mapfn: (v: T, k: number) => U, thisArg?: any): Array;
-
+
/**
* Creates an array from an iterable object.
* @param iterable An iterable object to convert to an array.
@@ -106,15 +95,15 @@ interface Promise { }
interface PromiseConstructor {
/**
- * Creates a Promise that is resolved with an array of results when all of the provided Promises
+ * Creates a Promise that is resolved with an array of results when all of the provided Promises
* resolve, or rejected when any Promise is rejected.
* @param values An array of Promises.
* @returns A new Promise.
*/
all(values: Iterable>): Promise;
-
+
/**
- * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
+ * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
* or rejected.
* @param values An array of Promises.
* @returns A new Promise.
@@ -132,20 +121,20 @@ interface String {
}
/**
- * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested
+ * A typed array of 8-bit integer values. The contents are initialized to 0. If the requested
* number of bytes could not be allocated an exception is raised.
*/
interface Int8Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -164,20 +153,20 @@ interface Int8ArrayConstructor {
}
/**
- * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the
+ * A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the
* requested number of bytes could not be allocated an exception is raised.
*/
interface Uint8Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -196,22 +185,22 @@ interface Uint8ArrayConstructor {
}
/**
- * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.
+ * A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0.
* If the requested number of bytes could not be allocated an exception is raised.
*/
interface Uint8ClampedArray {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -231,22 +220,22 @@ interface Uint8ClampedArrayConstructor {
}
/**
- * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the
+ * A typed array of 16-bit signed integer values. The contents are initialized to 0. If the
* requested number of bytes could not be allocated an exception is raised.
*/
interface Int16Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -265,20 +254,20 @@ interface Int16ArrayConstructor {
}
/**
- * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the
+ * A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the
* requested number of bytes could not be allocated an exception is raised.
*/
interface Uint16Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -297,20 +286,20 @@ interface Uint16ArrayConstructor {
}
/**
- * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the
+ * A typed array of 32-bit signed integer values. The contents are initialized to 0. If the
* requested number of bytes could not be allocated an exception is raised.
*/
interface Int32Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -329,20 +318,20 @@ interface Int32ArrayConstructor {
}
/**
- * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the
+ * A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the
* requested number of bytes could not be allocated an exception is raised.
*/
interface Uint32Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -366,15 +355,15 @@ interface Uint32ArrayConstructor {
*/
interface Float32Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
@@ -393,20 +382,20 @@ interface Float32ArrayConstructor {
}
/**
- * A typed array of 64-bit float values. The contents are initialized to 0. If the requested
+ * A typed array of 64-bit float values. The contents are initialized to 0. If the requested
* number of bytes could not be allocated an exception is raised.
*/
interface Float64Array {
[Symbol.iterator](): IterableIterator;
- /**
+ /**
* Returns an array of key, value pairs for every entry in the array
*/
entries(): IterableIterator<[number, number]>;
- /**
+ /**
* Returns an list of keys in the array
*/
keys(): IterableIterator;
- /**
+ /**
* Returns an list of values in the array
*/
values(): IterableIterator;
diff --git a/tests/baselines/reference/FunctionDeclaration10_es6.js b/tests/baselines/reference/FunctionDeclaration10_es6.js
index 6ac2ec8d194..3248a79d88d 100644
--- a/tests/baselines/reference/FunctionDeclaration10_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration10_es6.js
@@ -3,8 +3,59 @@ function * foo(a = yield => yield) {
}
//// [FunctionDeclaration10_es6.js]
-function* foo(a) {
- if (a === void 0) { a = yield; }
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo(a) {
+ if (a === void 0) { a = _a.sent(); }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/];
+ case 1: return [2 /*return*/];
+ }
+ });
}
yield;
{
diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt
deleted file mode 100644
index 4db3842e91d..00000000000
--- a/tests/baselines/reference/FunctionDeclaration11_es6.errors.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts(1,10): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts (1 errors) ====
- function * yield() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.js b/tests/baselines/reference/FunctionDeclaration11_es6.js
index d56eebd3bb5..9a166c4af74 100644
--- a/tests/baselines/reference/FunctionDeclaration11_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration11_es6.js
@@ -3,5 +3,53 @@ function * yield() {
}
//// [FunctionDeclaration11_es6.js]
-function* yield() {
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function yield() {
+ return __generator(this, function (_a) {
+ return [2 /*return*/];
+ });
}
diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.symbols b/tests/baselines/reference/FunctionDeclaration11_es6.symbols
new file mode 100644
index 00000000000..a51b763e4bf
--- /dev/null
+++ b/tests/baselines/reference/FunctionDeclaration11_es6.symbols
@@ -0,0 +1,4 @@
+=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts ===
+function * yield() {
+>yield : Symbol(yield, Decl(FunctionDeclaration11_es6.ts, 0, 0))
+}
diff --git a/tests/baselines/reference/FunctionDeclaration11_es6.types b/tests/baselines/reference/FunctionDeclaration11_es6.types
new file mode 100644
index 00000000000..d4e28a7922d
--- /dev/null
+++ b/tests/baselines/reference/FunctionDeclaration11_es6.types
@@ -0,0 +1,4 @@
+=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration11_es6.ts ===
+function * yield() {
+>yield : () => Iterator
+}
diff --git a/tests/baselines/reference/FunctionDeclaration12_es6.js b/tests/baselines/reference/FunctionDeclaration12_es6.js
index 87ea08215fe..c86a5a6ebb8 100644
--- a/tests/baselines/reference/FunctionDeclaration12_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration12_es6.js
@@ -2,4 +2,51 @@
var v = function * yield() { }
//// [FunctionDeclaration12_es6.js]
-var v = function* () { }, yield = function () { };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+}); }, yield = function () { };
diff --git a/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt
index fa675446617..1f921475fd3 100644
--- a/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt
+++ b/tests/baselines/reference/FunctionDeclaration13_es6.errors.txt
@@ -1,11 +1,8 @@
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(1,10): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts(3,11): error TS2304: Cannot find name 'yield'.
-==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration13_es6.ts (1 errors) ====
function * foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
// Legal to use 'yield' in a type context.
var v: yield;
~~~~~
diff --git a/tests/baselines/reference/FunctionDeclaration13_es6.js b/tests/baselines/reference/FunctionDeclaration13_es6.js
index b0527ee47ef..8d273c54d62 100644
--- a/tests/baselines/reference/FunctionDeclaration13_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration13_es6.js
@@ -6,7 +6,54 @@ function * foo() {
//// [FunctionDeclaration13_es6.js]
-function* foo() {
- // Legal to use 'yield' in a type context.
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
var v;
+ return __generator(this, function (_a) {
+ return [2 /*return*/];
+ });
}
diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt
deleted file mode 100644
index d3dab521926..00000000000
--- a/tests/baselines/reference/FunctionDeclaration1_es6.errors.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts(1,10): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts (1 errors) ====
- function * foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.js b/tests/baselines/reference/FunctionDeclaration1_es6.js
index 534a4c21cd7..cc9a2811668 100644
--- a/tests/baselines/reference/FunctionDeclaration1_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration1_es6.js
@@ -3,5 +3,53 @@ function * foo() {
}
//// [FunctionDeclaration1_es6.js]
-function* foo() {
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ return __generator(this, function (_a) {
+ return [2 /*return*/];
+ });
}
diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.symbols b/tests/baselines/reference/FunctionDeclaration1_es6.symbols
new file mode 100644
index 00000000000..7683664cb93
--- /dev/null
+++ b/tests/baselines/reference/FunctionDeclaration1_es6.symbols
@@ -0,0 +1,4 @@
+=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts ===
+function * foo() {
+>foo : Symbol(foo, Decl(FunctionDeclaration1_es6.ts, 0, 0))
+}
diff --git a/tests/baselines/reference/FunctionDeclaration1_es6.types b/tests/baselines/reference/FunctionDeclaration1_es6.types
new file mode 100644
index 00000000000..764b821cedf
--- /dev/null
+++ b/tests/baselines/reference/FunctionDeclaration1_es6.types
@@ -0,0 +1,4 @@
+=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration1_es6.ts ===
+function * foo() {
+>foo : () => Iterator
+}
diff --git a/tests/baselines/reference/FunctionDeclaration5_es6.js b/tests/baselines/reference/FunctionDeclaration5_es6.js
index 645ee976ecd..e15abcba317 100644
--- a/tests/baselines/reference/FunctionDeclaration5_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration5_es6.js
@@ -3,7 +3,54 @@ function*foo(yield) {
}
//// [FunctionDeclaration5_es6.js]
-function* foo() { }
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() { return __generator(this, function (_a) {
+ return [2 /*return*/];
+}); }
yield;
{
}
diff --git a/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt
index 60798f7dbd6..04806c7aae9 100644
--- a/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt
+++ b/tests/baselines/reference/FunctionDeclaration6_es6.errors.txt
@@ -1,11 +1,8 @@
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts(1,18): error TS2523: 'yield' expressions cannot be used in a parameter initializer.
-==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration6_es6.ts (1 errors) ====
function*foo(a = yield) {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
~~~~~
!!! error TS2523: 'yield' expressions cannot be used in a parameter initializer.
}
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionDeclaration6_es6.js b/tests/baselines/reference/FunctionDeclaration6_es6.js
index e0b871a9172..52d34bf4db8 100644
--- a/tests/baselines/reference/FunctionDeclaration6_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration6_es6.js
@@ -3,6 +3,57 @@ function*foo(a = yield) {
}
//// [FunctionDeclaration6_es6.js]
-function* foo(a) {
- if (a === void 0) { a = yield; }
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo(a) {
+ if (a === void 0) { a = _a.sent(); }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/];
+ case 1: return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt
index 3c1b950bea5..e0273c3bb44 100644
--- a/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt
+++ b/tests/baselines/reference/FunctionDeclaration7_es6.errors.txt
@@ -1,16 +1,10 @@
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(3,11): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts(3,20): error TS2523: 'yield' expressions cannot be used in a parameter initializer.
-==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts (3 errors) ====
+==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration7_es6.ts (1 errors) ====
function*bar() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
// 'yield' here is an identifier, and not a yield expression.
function*foo(a = yield) {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
~~~~~
!!! error TS2523: 'yield' expressions cannot be used in a parameter initializer.
}
diff --git a/tests/baselines/reference/FunctionDeclaration7_es6.js b/tests/baselines/reference/FunctionDeclaration7_es6.js
index 49b43e2a2db..340219c40a4 100644
--- a/tests/baselines/reference/FunctionDeclaration7_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration7_es6.js
@@ -6,9 +6,63 @@ function*bar() {
}
//// [FunctionDeclaration7_es6.js]
-function* bar() {
- // 'yield' here is an identifier, and not a yield expression.
- function* foo(a) {
- if (a === void 0) { a = yield; }
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
}
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function bar() {
+ // 'yield' here is an identifier, and not a yield expression.
+ function foo(a) {
+ if (a === void 0) { a = _a.sent(); }
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/];
+ case 1: return [2 /*return*/];
+ }
+ });
+ }
+ return __generator(this, function (_a) {
+ return [2 /*return*/];
+ });
}
diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt b/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt
deleted file mode 100644
index a2d2121d7fa..00000000000
--- a/tests/baselines/reference/FunctionDeclaration9_es6.errors.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts(1,10): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts (1 errors) ====
- function * foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- var v = { [yield]: foo }
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.js b/tests/baselines/reference/FunctionDeclaration9_es6.js
index 720e276ccba..2e5c9e4157c 100644
--- a/tests/baselines/reference/FunctionDeclaration9_es6.js
+++ b/tests/baselines/reference/FunctionDeclaration9_es6.js
@@ -4,7 +4,61 @@ function * foo() {
}
//// [FunctionDeclaration9_es6.js]
-function* foo() {
- var v = (_a = {}, _a[yield] = foo, _a);
- var _a;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ var v, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = {};
+ return [4 /*yield*/];
+ case 1:
+ v = (_a[_b.sent()] = foo, _a);
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.symbols b/tests/baselines/reference/FunctionDeclaration9_es6.symbols
new file mode 100644
index 00000000000..0797c51331c
--- /dev/null
+++ b/tests/baselines/reference/FunctionDeclaration9_es6.symbols
@@ -0,0 +1,8 @@
+=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts ===
+function * foo() {
+>foo : Symbol(foo, Decl(FunctionDeclaration9_es6.ts, 0, 0))
+
+ var v = { [yield]: foo }
+>v : Symbol(v, Decl(FunctionDeclaration9_es6.ts, 1, 5))
+>foo : Symbol(foo, Decl(FunctionDeclaration9_es6.ts, 0, 0))
+}
diff --git a/tests/baselines/reference/FunctionDeclaration9_es6.types b/tests/baselines/reference/FunctionDeclaration9_es6.types
new file mode 100644
index 00000000000..268a235d040
--- /dev/null
+++ b/tests/baselines/reference/FunctionDeclaration9_es6.types
@@ -0,0 +1,10 @@
+=== tests/cases/conformance/es6/functionDeclarations/FunctionDeclaration9_es6.ts ===
+function * foo() {
+>foo : () => Iterator
+
+ var v = { [yield]: foo }
+>v : { [x: number]: () => Iterator; }
+>{ [yield]: foo } : { [x: number]: () => Iterator; }
+>yield : any
+>foo : () => Iterator
+}
diff --git a/tests/baselines/reference/FunctionExpression1_es6.errors.txt b/tests/baselines/reference/FunctionExpression1_es6.errors.txt
deleted file mode 100644
index 9c1f798c5ad..00000000000
--- a/tests/baselines/reference/FunctionExpression1_es6.errors.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts(1,18): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts (1 errors) ====
- var v = function * () { }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionExpression1_es6.js b/tests/baselines/reference/FunctionExpression1_es6.js
index 4d2f36843a9..3ae4c3c64f8 100644
--- a/tests/baselines/reference/FunctionExpression1_es6.js
+++ b/tests/baselines/reference/FunctionExpression1_es6.js
@@ -2,4 +2,51 @@
var v = function * () { }
//// [FunctionExpression1_es6.js]
-var v = function* () { };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+}); };
diff --git a/tests/baselines/reference/FunctionExpression1_es6.symbols b/tests/baselines/reference/FunctionExpression1_es6.symbols
new file mode 100644
index 00000000000..4e1ed33ea1c
--- /dev/null
+++ b/tests/baselines/reference/FunctionExpression1_es6.symbols
@@ -0,0 +1,4 @@
+=== tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts ===
+var v = function * () { }
+>v : Symbol(v, Decl(FunctionExpression1_es6.ts, 0, 3))
+
diff --git a/tests/baselines/reference/FunctionExpression1_es6.types b/tests/baselines/reference/FunctionExpression1_es6.types
new file mode 100644
index 00000000000..b52f46ef09b
--- /dev/null
+++ b/tests/baselines/reference/FunctionExpression1_es6.types
@@ -0,0 +1,5 @@
+=== tests/cases/conformance/es6/functionExpressions/FunctionExpression1_es6.ts ===
+var v = function * () { }
+>v : () => Iterator
+>function * () { } : () => Iterator
+
diff --git a/tests/baselines/reference/FunctionExpression2_es6.errors.txt b/tests/baselines/reference/FunctionExpression2_es6.errors.txt
deleted file mode 100644
index 9248962e620..00000000000
--- a/tests/baselines/reference/FunctionExpression2_es6.errors.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts(1,18): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts (1 errors) ====
- var v = function * foo() { }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionExpression2_es6.js b/tests/baselines/reference/FunctionExpression2_es6.js
index bd88efcc7ec..1a84d3cc2e0 100644
--- a/tests/baselines/reference/FunctionExpression2_es6.js
+++ b/tests/baselines/reference/FunctionExpression2_es6.js
@@ -2,4 +2,51 @@
var v = function * foo() { }
//// [FunctionExpression2_es6.js]
-var v = function* foo() { };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = function foo() { return __generator(this, function (_a) {
+ return [2 /*return*/];
+}); };
diff --git a/tests/baselines/reference/FunctionExpression2_es6.symbols b/tests/baselines/reference/FunctionExpression2_es6.symbols
new file mode 100644
index 00000000000..1fc8c3c10d6
--- /dev/null
+++ b/tests/baselines/reference/FunctionExpression2_es6.symbols
@@ -0,0 +1,5 @@
+=== tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts ===
+var v = function * foo() { }
+>v : Symbol(v, Decl(FunctionExpression2_es6.ts, 0, 3))
+>foo : Symbol(foo, Decl(FunctionExpression2_es6.ts, 0, 7))
+
diff --git a/tests/baselines/reference/FunctionExpression2_es6.types b/tests/baselines/reference/FunctionExpression2_es6.types
new file mode 100644
index 00000000000..e20b2240730
--- /dev/null
+++ b/tests/baselines/reference/FunctionExpression2_es6.types
@@ -0,0 +1,6 @@
+=== tests/cases/conformance/es6/functionExpressions/FunctionExpression2_es6.ts ===
+var v = function * foo() { }
+>v : () => Iterator
+>function * foo() { } : () => Iterator
+>foo : () => Iterator
+
diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt b/tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt
deleted file mode 100644
index fd463eed02d..00000000000
--- a/tests/baselines/reference/FunctionPropertyAssignments1_es6.errors.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts(1,11): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts (1 errors) ====
- var v = { *foo() { } }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.js b/tests/baselines/reference/FunctionPropertyAssignments1_es6.js
index 5975745391a..46cb3f95e7c 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments1_es6.js
+++ b/tests/baselines/reference/FunctionPropertyAssignments1_es6.js
@@ -2,4 +2,51 @@
var v = { *foo() { } }
//// [FunctionPropertyAssignments1_es6.js]
-var v = { foo: function* () { } };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = { foo: function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); } };
diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.symbols b/tests/baselines/reference/FunctionPropertyAssignments1_es6.symbols
new file mode 100644
index 00000000000..79aee0f4700
--- /dev/null
+++ b/tests/baselines/reference/FunctionPropertyAssignments1_es6.symbols
@@ -0,0 +1,5 @@
+=== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts ===
+var v = { *foo() { } }
+>v : Symbol(v, Decl(FunctionPropertyAssignments1_es6.ts, 0, 3))
+>foo : Symbol(foo, Decl(FunctionPropertyAssignments1_es6.ts, 0, 9))
+
diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.types b/tests/baselines/reference/FunctionPropertyAssignments1_es6.types
new file mode 100644
index 00000000000..c4b7bd316eb
--- /dev/null
+++ b/tests/baselines/reference/FunctionPropertyAssignments1_es6.types
@@ -0,0 +1,6 @@
+=== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments1_es6.ts ===
+var v = { *foo() { } }
+>v : { foo(): Iterator; }
+>{ *foo() { } } : { foo(): Iterator; }
+>foo : () => Iterator
+
diff --git a/tests/baselines/reference/FunctionPropertyAssignments2_es6.js b/tests/baselines/reference/FunctionPropertyAssignments2_es6.js
index b055960b6a8..bfa38087472 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments2_es6.js
+++ b/tests/baselines/reference/FunctionPropertyAssignments2_es6.js
@@ -2,4 +2,51 @@
var v = { *() { } }
//// [FunctionPropertyAssignments2_es6.js]
-var v = { : function* () { } };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = { : function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); } };
diff --git a/tests/baselines/reference/FunctionPropertyAssignments3_es6.js b/tests/baselines/reference/FunctionPropertyAssignments3_es6.js
index 9642c28529d..81bc77b6d12 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments3_es6.js
+++ b/tests/baselines/reference/FunctionPropertyAssignments3_es6.js
@@ -2,4 +2,51 @@
var v = { *{ } }
//// [FunctionPropertyAssignments3_es6.js]
-var v = { : function* () { } };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = { : function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); } };
diff --git a/tests/baselines/reference/FunctionPropertyAssignments4_es6.js b/tests/baselines/reference/FunctionPropertyAssignments4_es6.js
index a76405e34df..f90bbe0c074 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments4_es6.js
+++ b/tests/baselines/reference/FunctionPropertyAssignments4_es6.js
@@ -2,4 +2,49 @@
var v = { * }
//// [FunctionPropertyAssignments4_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var v = {};
diff --git a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt
index 35185fdb7c6..143b764c08c 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt
+++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.errors.txt
@@ -1,10 +1,7 @@
-tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,11): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts(1,13): error TS2304: Cannot find name 'foo'.
-==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/functionPropertyAssignments/FunctionPropertyAssignments5_es6.ts (1 errors) ====
var v = { *[foo()]() { } }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
~~~
!!! error TS2304: Cannot find name 'foo'.
\ No newline at end of file
diff --git a/tests/baselines/reference/FunctionPropertyAssignments5_es6.js b/tests/baselines/reference/FunctionPropertyAssignments5_es6.js
index ba25922b670..0341887a811 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.js
+++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.js
@@ -2,5 +2,52 @@
var v = { *[foo()]() { } }
//// [FunctionPropertyAssignments5_es6.js]
-var v = (_a = {}, _a[foo()] = function* () { }, _a);
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = (_a = {}, _a[foo()] = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+}); }, _a);
var _a;
diff --git a/tests/baselines/reference/FunctionPropertyAssignments6_es6.js b/tests/baselines/reference/FunctionPropertyAssignments6_es6.js
index edcd227f7b9..da0febd338a 100644
--- a/tests/baselines/reference/FunctionPropertyAssignments6_es6.js
+++ b/tests/baselines/reference/FunctionPropertyAssignments6_es6.js
@@ -2,4 +2,51 @@
var v = { *() { } }
//// [FunctionPropertyAssignments6_es6.js]
-var v = { : function* () { } };
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = { : function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); } };
diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt
deleted file mode 100644
index 25cb4ba4240..00000000000
--- a/tests/baselines/reference/MemberFunctionDeclaration1_es6.errors.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts(2,4): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts (1 errors) ====
- class C {
- *foo() { }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.js b/tests/baselines/reference/MemberFunctionDeclaration1_es6.js
index ec37b3370b0..0fcf45a69ab 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration1_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration1_es6.js
@@ -4,9 +4,56 @@ class C {
}
//// [MemberFunctionDeclaration1_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
- C.prototype.foo = function* () { };
+ C.prototype.foo = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); };
return C;
}());
diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.symbols b/tests/baselines/reference/MemberFunctionDeclaration1_es6.symbols
new file mode 100644
index 00000000000..a1862ea9209
--- /dev/null
+++ b/tests/baselines/reference/MemberFunctionDeclaration1_es6.symbols
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts ===
+class C {
+>C : Symbol(C, Decl(MemberFunctionDeclaration1_es6.ts, 0, 0))
+
+ *foo() { }
+>foo : Symbol(C.foo, Decl(MemberFunctionDeclaration1_es6.ts, 0, 9))
+}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.types b/tests/baselines/reference/MemberFunctionDeclaration1_es6.types
new file mode 100644
index 00000000000..d1799bcb2d8
--- /dev/null
+++ b/tests/baselines/reference/MemberFunctionDeclaration1_es6.types
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration1_es6.ts ===
+class C {
+>C : C
+
+ *foo() { }
+>foo : () => Iterator
+}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt
deleted file mode 100644
index 8277d6f1f67..00000000000
--- a/tests/baselines/reference/MemberFunctionDeclaration2_es6.errors.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts(2,11): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts (1 errors) ====
- class C {
- public * foo() { }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.js b/tests/baselines/reference/MemberFunctionDeclaration2_es6.js
index 54550ef72e7..c187db3d68d 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration2_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration2_es6.js
@@ -4,9 +4,56 @@ class C {
}
//// [MemberFunctionDeclaration2_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
- C.prototype.foo = function* () { };
+ C.prototype.foo = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); };
return C;
}());
diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.symbols b/tests/baselines/reference/MemberFunctionDeclaration2_es6.symbols
new file mode 100644
index 00000000000..ac380db0268
--- /dev/null
+++ b/tests/baselines/reference/MemberFunctionDeclaration2_es6.symbols
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts ===
+class C {
+>C : Symbol(C, Decl(MemberFunctionDeclaration2_es6.ts, 0, 0))
+
+ public * foo() { }
+>foo : Symbol(C.foo, Decl(MemberFunctionDeclaration2_es6.ts, 0, 9))
+}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.types b/tests/baselines/reference/MemberFunctionDeclaration2_es6.types
new file mode 100644
index 00000000000..0e7532e2503
--- /dev/null
+++ b/tests/baselines/reference/MemberFunctionDeclaration2_es6.types
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration2_es6.ts ===
+class C {
+>C : C
+
+ public * foo() { }
+>foo : () => Iterator
+}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt
index 3fd821bafdf..fdfe7425320 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt
+++ b/tests/baselines/reference/MemberFunctionDeclaration3_es6.errors.txt
@@ -1,12 +1,9 @@
-tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,4): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts(2,6): error TS2304: Cannot find name 'foo'.
-==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration3_es6.ts (1 errors) ====
class C {
*[foo]() { }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
~~~
!!! error TS2304: Cannot find name 'foo'.
}
\ No newline at end of file
diff --git a/tests/baselines/reference/MemberFunctionDeclaration3_es6.js b/tests/baselines/reference/MemberFunctionDeclaration3_es6.js
index 07d9a021fcd..8873d649ad4 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration3_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration3_es6.js
@@ -4,9 +4,56 @@ class C {
}
//// [MemberFunctionDeclaration3_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
- C.prototype[foo] = function* () { };
+ C.prototype[foo] = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); };
return C;
}());
diff --git a/tests/baselines/reference/MemberFunctionDeclaration4_es6.js b/tests/baselines/reference/MemberFunctionDeclaration4_es6.js
index f791d4a1156..28ee654eb82 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration4_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration4_es6.js
@@ -4,9 +4,56 @@ class C {
}
//// [MemberFunctionDeclaration4_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
- C.prototype. = function* () { };
+ C.prototype. = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); };
return C;
}());
diff --git a/tests/baselines/reference/MemberFunctionDeclaration5_es6.js b/tests/baselines/reference/MemberFunctionDeclaration5_es6.js
index 2303c5e0f62..107d2cb8d17 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration5_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration5_es6.js
@@ -4,6 +4,51 @@ class C {
}
//// [MemberFunctionDeclaration5_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration6_es6.js b/tests/baselines/reference/MemberFunctionDeclaration6_es6.js
index b2a753d7ce0..fe2dee0c621 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration6_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration6_es6.js
@@ -4,6 +4,51 @@ class C {
}
//// [MemberFunctionDeclaration6_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt b/tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt
deleted file mode 100644
index cd4c49bdd6d..00000000000
--- a/tests/baselines/reference/MemberFunctionDeclaration7_es6.errors.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts(2,4): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts (1 errors) ====
- class C {
- *foo() { }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.js b/tests/baselines/reference/MemberFunctionDeclaration7_es6.js
index 8e19f0db333..3145c04b1a6 100644
--- a/tests/baselines/reference/MemberFunctionDeclaration7_es6.js
+++ b/tests/baselines/reference/MemberFunctionDeclaration7_es6.js
@@ -4,9 +4,56 @@ class C {
}
//// [MemberFunctionDeclaration7_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
- C.prototype.foo = function* () { };
+ C.prototype.foo = function () { return __generator(this, function (_a) {
+ return [2 /*return*/];
+ }); };
return C;
}());
diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.symbols b/tests/baselines/reference/MemberFunctionDeclaration7_es6.symbols
new file mode 100644
index 00000000000..fa07b61e4a6
--- /dev/null
+++ b/tests/baselines/reference/MemberFunctionDeclaration7_es6.symbols
@@ -0,0 +1,8 @@
+=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts ===
+class C {
+>C : Symbol(C, Decl(MemberFunctionDeclaration7_es6.ts, 0, 0))
+
+ *foo() { }
+>foo : Symbol(C.foo, Decl(MemberFunctionDeclaration7_es6.ts, 0, 9))
+>T : Symbol(T, Decl(MemberFunctionDeclaration7_es6.ts, 1, 8))
+}
diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.types b/tests/baselines/reference/MemberFunctionDeclaration7_es6.types
new file mode 100644
index 00000000000..4ecce6a5f27
--- /dev/null
+++ b/tests/baselines/reference/MemberFunctionDeclaration7_es6.types
@@ -0,0 +1,8 @@
+=== tests/cases/conformance/es6/memberFunctionDeclarations/MemberFunctionDeclaration7_es6.ts ===
+class C {
+>C : C
+
+ *foo() { }
+>foo : () => Iterator
+>T : T
+}
diff --git a/tests/baselines/reference/YieldExpression10_es6.errors.txt b/tests/baselines/reference/YieldExpression10_es6.errors.txt
index 7bf534e4188..9e48fefc10a 100644
--- a/tests/baselines/reference/YieldExpression10_es6.errors.txt
+++ b/tests/baselines/reference/YieldExpression10_es6.errors.txt
@@ -1,11 +1,8 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts(1,11): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts(2,11): error TS2304: Cannot find name 'foo'.
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldExpression10_es6.ts (1 errors) ====
var v = { * foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
yield(foo);
~~~
!!! error TS2304: Cannot find name 'foo'.
diff --git a/tests/baselines/reference/YieldExpression10_es6.js b/tests/baselines/reference/YieldExpression10_es6.js
index e1dd44b676b..02cf859017a 100644
--- a/tests/baselines/reference/YieldExpression10_es6.js
+++ b/tests/baselines/reference/YieldExpression10_es6.js
@@ -6,7 +6,59 @@ var v = { * foo() {
//// [YieldExpression10_es6.js]
-var v = { foo: function* () {
- yield (foo);
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = { foo: function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (foo)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
};
diff --git a/tests/baselines/reference/YieldExpression11_es6.errors.txt b/tests/baselines/reference/YieldExpression11_es6.errors.txt
index f5d3458520f..223389e4e39 100644
--- a/tests/baselines/reference/YieldExpression11_es6.errors.txt
+++ b/tests/baselines/reference/YieldExpression11_es6.errors.txt
@@ -1,12 +1,9 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(2,3): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts(3,11): error TS2663: Cannot find name 'foo'. Did you mean the instance member 'this.foo'?
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldExpression11_es6.ts (1 errors) ====
class C {
*foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
yield(foo);
~~~
!!! error TS2663: Cannot find name 'foo'. Did you mean the instance member 'this.foo'?
diff --git a/tests/baselines/reference/YieldExpression11_es6.js b/tests/baselines/reference/YieldExpression11_es6.js
index fb4f83c7197..8e1dad94b1f 100644
--- a/tests/baselines/reference/YieldExpression11_es6.js
+++ b/tests/baselines/reference/YieldExpression11_es6.js
@@ -6,11 +6,63 @@ class C {
}
//// [YieldExpression11_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
var C = (function () {
function C() {
}
- C.prototype.foo = function* () {
- yield (foo);
+ C.prototype.foo = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (foo)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
};
return C;
}());
diff --git a/tests/baselines/reference/YieldExpression13_es6.errors.txt b/tests/baselines/reference/YieldExpression13_es6.errors.txt
deleted file mode 100644
index 99088448886..00000000000
--- a/tests/baselines/reference/YieldExpression13_es6.errors.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts (1 errors) ====
- function* foo() { yield }
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression13_es6.js b/tests/baselines/reference/YieldExpression13_es6.js
index c75e964675a..b24c9b09fd9 100644
--- a/tests/baselines/reference/YieldExpression13_es6.js
+++ b/tests/baselines/reference/YieldExpression13_es6.js
@@ -2,4 +2,56 @@
function* foo() { yield }
//// [YieldExpression13_es6.js]
-function* foo() { yield; }
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() { return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+}); }
diff --git a/tests/baselines/reference/YieldExpression13_es6.symbols b/tests/baselines/reference/YieldExpression13_es6.symbols
new file mode 100644
index 00000000000..f2e1b100c9d
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression13_es6.symbols
@@ -0,0 +1,4 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts ===
+function* foo() { yield }
+>foo : Symbol(foo, Decl(YieldExpression13_es6.ts, 0, 0))
+
diff --git a/tests/baselines/reference/YieldExpression13_es6.types b/tests/baselines/reference/YieldExpression13_es6.types
new file mode 100644
index 00000000000..19de1796b6c
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression13_es6.types
@@ -0,0 +1,5 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression13_es6.ts ===
+function* foo() { yield }
+>foo : () => Iterator
+>yield : any
+
diff --git a/tests/baselines/reference/YieldExpression16_es6.errors.txt b/tests/baselines/reference/YieldExpression16_es6.errors.txt
index 0645f5d818a..94e082f4c27 100644
--- a/tests/baselines/reference/YieldExpression16_es6.errors.txt
+++ b/tests/baselines/reference/YieldExpression16_es6.errors.txt
@@ -1,11 +1,8 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts(3,5): error TS1163: A 'yield' expression is only allowed in a generator body.
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldExpression16_es6.ts (1 errors) ====
function* foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
function bar() {
yield foo;
~~~~~
diff --git a/tests/baselines/reference/YieldExpression16_es6.js b/tests/baselines/reference/YieldExpression16_es6.js
index 0937cfedcb9..d409d8154c9 100644
--- a/tests/baselines/reference/YieldExpression16_es6.js
+++ b/tests/baselines/reference/YieldExpression16_es6.js
@@ -6,8 +6,56 @@ function* foo() {
}
//// [YieldExpression16_es6.js]
-function* foo() {
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
function bar() {
yield foo;
}
+ return __generator(this, function (_a) {
+ return [2 /*return*/];
+ });
}
diff --git a/tests/baselines/reference/YieldExpression19_es6.errors.txt b/tests/baselines/reference/YieldExpression19_es6.errors.txt
deleted file mode 100644
index f07cfc1db78..00000000000
--- a/tests/baselines/reference/YieldExpression19_es6.errors.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts(3,13): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts (2 errors) ====
- function*foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- function bar() {
- function* quux() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- yield(foo);
- }
- }
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression19_es6.js b/tests/baselines/reference/YieldExpression19_es6.js
index 444c7af7be1..276979e9008 100644
--- a/tests/baselines/reference/YieldExpression19_es6.js
+++ b/tests/baselines/reference/YieldExpression19_es6.js
@@ -8,10 +8,65 @@ function*foo() {
}
//// [YieldExpression19_es6.js]
-function* foo() {
- function bar() {
- function* quux() {
- yield (foo);
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ function bar() {
+ function quux() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (foo)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
+ }
+ }
+ return __generator(this, function (_a) {
+ return [2 /*return*/];
+ });
}
diff --git a/tests/baselines/reference/YieldExpression19_es6.symbols b/tests/baselines/reference/YieldExpression19_es6.symbols
new file mode 100644
index 00000000000..609102001c4
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression19_es6.symbols
@@ -0,0 +1,15 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts ===
+function*foo() {
+>foo : Symbol(foo, Decl(YieldExpression19_es6.ts, 0, 0))
+
+ function bar() {
+>bar : Symbol(bar, Decl(YieldExpression19_es6.ts, 0, 16))
+
+ function* quux() {
+>quux : Symbol(quux, Decl(YieldExpression19_es6.ts, 1, 18))
+
+ yield(foo);
+>foo : Symbol(foo, Decl(YieldExpression19_es6.ts, 0, 0))
+ }
+ }
+}
diff --git a/tests/baselines/reference/YieldExpression19_es6.types b/tests/baselines/reference/YieldExpression19_es6.types
new file mode 100644
index 00000000000..6b9b2cdf67a
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression19_es6.types
@@ -0,0 +1,17 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression19_es6.ts ===
+function*foo() {
+>foo : () => Iterator
+
+ function bar() {
+>bar : () => void
+
+ function* quux() {
+>quux : () => Iterator<() => Iterator>
+
+ yield(foo);
+>yield(foo) : any
+>(foo) : () => Iterator
+>foo : () => Iterator
+ }
+ }
+}
diff --git a/tests/baselines/reference/YieldExpression3_es6.errors.txt b/tests/baselines/reference/YieldExpression3_es6.errors.txt
deleted file mode 100644
index 9f07c13184e..00000000000
--- a/tests/baselines/reference/YieldExpression3_es6.errors.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts (1 errors) ====
- function* foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- yield
- yield
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression3_es6.js b/tests/baselines/reference/YieldExpression3_es6.js
index 737b3534886..daaae105783 100644
--- a/tests/baselines/reference/YieldExpression3_es6.js
+++ b/tests/baselines/reference/YieldExpression3_es6.js
@@ -5,7 +5,61 @@ function* foo() {
}
//// [YieldExpression3_es6.js]
-function* foo() {
- yield;
- yield;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/];
+ case 1:
+ _a.sent();
+ return [4 /*yield*/];
+ case 2:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldExpression3_es6.symbols b/tests/baselines/reference/YieldExpression3_es6.symbols
new file mode 100644
index 00000000000..4ab5b42688f
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression3_es6.symbols
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts ===
+function* foo() {
+>foo : Symbol(foo, Decl(YieldExpression3_es6.ts, 0, 0))
+
+ yield
+ yield
+}
diff --git a/tests/baselines/reference/YieldExpression3_es6.types b/tests/baselines/reference/YieldExpression3_es6.types
new file mode 100644
index 00000000000..bc979a5fdbf
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression3_es6.types
@@ -0,0 +1,10 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression3_es6.ts ===
+function* foo() {
+>foo : () => Iterator
+
+ yield
+>yield : any
+
+ yield
+>yield : any
+}
diff --git a/tests/baselines/reference/YieldExpression4_es6.errors.txt b/tests/baselines/reference/YieldExpression4_es6.errors.txt
deleted file mode 100644
index 6c9a5796ee8..00000000000
--- a/tests/baselines/reference/YieldExpression4_es6.errors.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts (1 errors) ====
- function* foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- yield;
- yield;
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression4_es6.js b/tests/baselines/reference/YieldExpression4_es6.js
index c97a7949b2b..c8204288cf4 100644
--- a/tests/baselines/reference/YieldExpression4_es6.js
+++ b/tests/baselines/reference/YieldExpression4_es6.js
@@ -5,7 +5,61 @@ function* foo() {
}
//// [YieldExpression4_es6.js]
-function* foo() {
- yield;
- yield;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/];
+ case 1:
+ _a.sent();
+ return [4 /*yield*/];
+ case 2:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldExpression4_es6.symbols b/tests/baselines/reference/YieldExpression4_es6.symbols
new file mode 100644
index 00000000000..7954fb705e6
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression4_es6.symbols
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts ===
+function* foo() {
+>foo : Symbol(foo, Decl(YieldExpression4_es6.ts, 0, 0))
+
+ yield;
+ yield;
+}
diff --git a/tests/baselines/reference/YieldExpression4_es6.types b/tests/baselines/reference/YieldExpression4_es6.types
new file mode 100644
index 00000000000..d7e97de34bb
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression4_es6.types
@@ -0,0 +1,10 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression4_es6.ts ===
+function* foo() {
+>foo : () => Iterator
+
+ yield;
+>yield : any
+
+ yield;
+>yield : any
+}
diff --git a/tests/baselines/reference/YieldExpression5_es6.js b/tests/baselines/reference/YieldExpression5_es6.js
index 8599cfdb6bb..06c126d0c23 100644
--- a/tests/baselines/reference/YieldExpression5_es6.js
+++ b/tests/baselines/reference/YieldExpression5_es6.js
@@ -4,6 +4,58 @@ function* foo() {
}
//// [YieldExpression5_es6.js]
-function* foo() {
- yield* ;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, ];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldExpression6_es6.errors.txt b/tests/baselines/reference/YieldExpression6_es6.errors.txt
index f2fc90b81b4..1aec594e8d6 100644
--- a/tests/baselines/reference/YieldExpression6_es6.errors.txt
+++ b/tests/baselines/reference/YieldExpression6_es6.errors.txt
@@ -1,12 +1,9 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts(2,9): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
+tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts(2,9): error TS2489: An iterator must have a 'next()' method.
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldExpression6_es6.ts (1 errors) ====
function* foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
yield*foo
~~~
-!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
+!!! error TS2489: An iterator must have a 'next()' method.
}
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression6_es6.js b/tests/baselines/reference/YieldExpression6_es6.js
index c511daec989..66450dc366d 100644
--- a/tests/baselines/reference/YieldExpression6_es6.js
+++ b/tests/baselines/reference/YieldExpression6_es6.js
@@ -4,6 +4,58 @@ function* foo() {
}
//// [YieldExpression6_es6.js]
-function* foo() {
- yield* foo;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, foo];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldExpression7_es6.errors.txt b/tests/baselines/reference/YieldExpression7_es6.errors.txt
deleted file mode 100644
index f929dff0a2a..00000000000
--- a/tests/baselines/reference/YieldExpression7_es6.errors.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts (1 errors) ====
- function* foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- yield foo
- }
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression7_es6.js b/tests/baselines/reference/YieldExpression7_es6.js
index 8055b96ec73..58ef47222e1 100644
--- a/tests/baselines/reference/YieldExpression7_es6.js
+++ b/tests/baselines/reference/YieldExpression7_es6.js
@@ -4,6 +4,58 @@ function* foo() {
}
//// [YieldExpression7_es6.js]
-function* foo() {
- yield foo;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function foo() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, foo];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldExpression7_es6.symbols b/tests/baselines/reference/YieldExpression7_es6.symbols
new file mode 100644
index 00000000000..53737c94be9
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression7_es6.symbols
@@ -0,0 +1,7 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts ===
+function* foo() {
+>foo : Symbol(foo, Decl(YieldExpression7_es6.ts, 0, 0))
+
+ yield foo
+>foo : Symbol(foo, Decl(YieldExpression7_es6.ts, 0, 0))
+}
diff --git a/tests/baselines/reference/YieldExpression7_es6.types b/tests/baselines/reference/YieldExpression7_es6.types
new file mode 100644
index 00000000000..889ca36d7a9
--- /dev/null
+++ b/tests/baselines/reference/YieldExpression7_es6.types
@@ -0,0 +1,8 @@
+=== tests/cases/conformance/es6/yieldExpressions/YieldExpression7_es6.ts ===
+function* foo() {
+>foo : () => Iterator
+
+ yield foo
+>yield foo : any
+>foo : () => Iterator
+}
diff --git a/tests/baselines/reference/YieldExpression8_es6.errors.txt b/tests/baselines/reference/YieldExpression8_es6.errors.txt
index aef1fbc122d..f4dd30b1a19 100644
--- a/tests/baselines/reference/YieldExpression8_es6.errors.txt
+++ b/tests/baselines/reference/YieldExpression8_es6.errors.txt
@@ -1,13 +1,10 @@
tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(1,1): error TS2304: Cannot find name 'yield'.
-tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts(2,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldExpression8_es6.ts (1 errors) ====
yield(foo);
~~~~~
!!! error TS2304: Cannot find name 'yield'.
function* foo() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
yield(foo);
}
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldExpression8_es6.js b/tests/baselines/reference/YieldExpression8_es6.js
index cc92b79c722..65620862704 100644
--- a/tests/baselines/reference/YieldExpression8_es6.js
+++ b/tests/baselines/reference/YieldExpression8_es6.js
@@ -5,7 +5,59 @@ function* foo() {
}
//// [YieldExpression8_es6.js]
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
yield(foo);
-function* foo() {
- yield (foo);
+function foo() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (foo)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldExpression9_es6.errors.txt b/tests/baselines/reference/YieldExpression9_es6.errors.txt
index 2ad925a90a0..1241e615f79 100644
--- a/tests/baselines/reference/YieldExpression9_es6.errors.txt
+++ b/tests/baselines/reference/YieldExpression9_es6.errors.txt
@@ -1,11 +1,8 @@
-tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts(1,17): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts(2,9): error TS2304: Cannot find name 'foo'.
-==== tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldExpression9_es6.ts (1 errors) ====
var v = function*() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
yield(foo);
~~~
!!! error TS2304: Cannot find name 'foo'.
diff --git a/tests/baselines/reference/YieldExpression9_es6.js b/tests/baselines/reference/YieldExpression9_es6.js
index a2ffa0fa01b..db44a5409bd 100644
--- a/tests/baselines/reference/YieldExpression9_es6.js
+++ b/tests/baselines/reference/YieldExpression9_es6.js
@@ -4,6 +4,58 @@ var v = function*() {
}
//// [YieldExpression9_es6.js]
-var v = function* () {
- yield (foo);
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+var v = function () {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, (foo)];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
};
diff --git a/tests/baselines/reference/YieldStarExpression3_es6.js b/tests/baselines/reference/YieldStarExpression3_es6.js
index e64306dc4cf..0691c77a48f 100644
--- a/tests/baselines/reference/YieldStarExpression3_es6.js
+++ b/tests/baselines/reference/YieldStarExpression3_es6.js
@@ -4,6 +4,58 @@ function *g() {
}
//// [YieldStarExpression3_es6.js]
-function* g() {
- yield* ;
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function g() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, ];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/YieldStarExpression4_es6.errors.txt b/tests/baselines/reference/YieldStarExpression4_es6.errors.txt
index c58844a9288..f75f8553bbb 100644
--- a/tests/baselines/reference/YieldStarExpression4_es6.errors.txt
+++ b/tests/baselines/reference/YieldStarExpression4_es6.errors.txt
@@ -1,12 +1,9 @@
-tests/cases/conformance/es6/yieldExpressions/YieldStarExpression4_es6.ts(1,10): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-tests/cases/conformance/es6/yieldExpressions/YieldStarExpression4_es6.ts(2,13): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
+tests/cases/conformance/es6/yieldExpressions/YieldStarExpression4_es6.ts(2,13): error TS2489: An iterator must have a 'next()' method.
-==== tests/cases/conformance/es6/yieldExpressions/YieldStarExpression4_es6.ts (2 errors) ====
+==== tests/cases/conformance/es6/yieldExpressions/YieldStarExpression4_es6.ts (1 errors) ====
function *g() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
yield * [];
~~
-!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
+!!! error TS2489: An iterator must have a 'next()' method.
}
\ No newline at end of file
diff --git a/tests/baselines/reference/YieldStarExpression4_es6.js b/tests/baselines/reference/YieldStarExpression4_es6.js
index 8ec5fa0c933..43d28dfed29 100644
--- a/tests/baselines/reference/YieldStarExpression4_es6.js
+++ b/tests/baselines/reference/YieldStarExpression4_es6.js
@@ -4,6 +4,58 @@ function *g() {
}
//// [YieldStarExpression4_es6.js]
-function* g() {
- yield* [];
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function g() {
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [5 /*yield**/, []];
+ case 1:
+ _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/asyncArrowFunction7_es5.js b/tests/baselines/reference/asyncArrowFunction7_es5.js
index 19e589fa542..f2edb2b6537 100644
--- a/tests/baselines/reference/asyncArrowFunction7_es5.js
+++ b/tests/baselines/reference/asyncArrowFunction7_es5.js
@@ -9,7 +9,7 @@ var bar = async (): Promise => {
//// [asyncArrowFunction7_es5.js]
var _this = this;
var bar = function () { return __awaiter(_this, void 0, void 0, function () {
- _this = this;
+ var _this = this;
var foo;
return __generator(this, function (_a) {
foo = function (a) {
@@ -22,4 +22,4 @@ var bar = function () { return __awaiter(_this, void 0, void 0, function () {
};
return [2 /*return*/];
});
-}); var _this; };
+}); };
diff --git a/tests/baselines/reference/asyncAwaitIsolatedModules_es5.js b/tests/baselines/reference/asyncAwaitIsolatedModules_es5.js
index 95416f3aaa2..14ae6599ed3 100644
--- a/tests/baselines/reference/asyncAwaitIsolatedModules_es5.js
+++ b/tests/baselines/reference/asyncAwaitIsolatedModules_es5.js
@@ -50,7 +50,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -60,9 +60,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -76,8 +84,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/asyncAwait_es5.js b/tests/baselines/reference/asyncAwait_es5.js
index e148de70ad2..9febfa6f869 100644
--- a/tests/baselines/reference/asyncAwait_es5.js
+++ b/tests/baselines/reference/asyncAwait_es5.js
@@ -49,7 +49,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -59,9 +59,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -75,8 +83,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/asyncFunctionNoReturnType.js b/tests/baselines/reference/asyncFunctionNoReturnType.js
index a3635b85a09..4a223d33508 100644
--- a/tests/baselines/reference/asyncFunctionNoReturnType.js
+++ b/tests/baselines/reference/asyncFunctionNoReturnType.js
@@ -15,7 +15,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -25,9 +25,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -41,8 +49,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/asyncImportedPromise_es5.js b/tests/baselines/reference/asyncImportedPromise_es5.js
index 54d1b0fdac8..c95a21f9319 100644
--- a/tests/baselines/reference/asyncImportedPromise_es5.js
+++ b/tests/baselines/reference/asyncImportedPromise_es5.js
@@ -35,7 +35,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -45,9 +45,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -61,8 +69,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/asyncMultiFile_es5.js b/tests/baselines/reference/asyncMultiFile_es5.js
index 197127c5f10..15a9166e943 100644
--- a/tests/baselines/reference/asyncMultiFile_es5.js
+++ b/tests/baselines/reference/asyncMultiFile_es5.js
@@ -15,7 +15,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -25,9 +25,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -41,8 +49,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/es5-asyncFunction.js b/tests/baselines/reference/es5-asyncFunction.js
index 9cb6f1d3674..e56da04827c 100644
--- a/tests/baselines/reference/es5-asyncFunction.js
+++ b/tests/baselines/reference/es5-asyncFunction.js
@@ -18,7 +18,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -28,9 +28,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -44,8 +52,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/es5-importHelpersAsyncFunctions.js b/tests/baselines/reference/es5-importHelpersAsyncFunctions.js
index 0fcd8897018..af480ce3967 100644
--- a/tests/baselines/reference/es5-importHelpersAsyncFunctions.js
+++ b/tests/baselines/reference/es5-importHelpersAsyncFunctions.js
@@ -38,7 +38,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
- var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, f;
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (1) {
@@ -48,9 +48,17 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
case 2: return { value: op[1], done: true };
}
try {
- switch (f = 1, op[0]) {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
case 0: case 1: sent = op; break;
case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
case 7: op = _.stack.pop(), _.trys.pop(); continue;
default:
var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
@@ -64,8 +72,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
op = body.call(thisArg, _);
}
- catch (e) { op = [6, e]; }
- finally { f = 0, sent = void 0; }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
}
}
return {
diff --git a/tests/baselines/reference/generatorTypeCheck1.symbols b/tests/baselines/reference/generatorTypeCheck1.symbols
index dbb6db06833..7c9dbbf05b4 100644
--- a/tests/baselines/reference/generatorTypeCheck1.symbols
+++ b/tests/baselines/reference/generatorTypeCheck1.symbols
@@ -1,5 +1,5 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck1.ts ===
function* g1(): Iterator { }
>g1 : Symbol(g1, Decl(generatorTypeCheck1.ts, 0, 0))
->Iterator : Symbol(Iterator, Decl(lib.es2015.iterable.d.ts, --, --))
+>Iterator : Symbol(Iterator, Decl(lib.es5.d.ts, --, --))
diff --git a/tests/baselines/reference/generatorTypeCheck29.symbols b/tests/baselines/reference/generatorTypeCheck29.symbols
index 5ea31ccb0cd..eca0b2c6091 100644
--- a/tests/baselines/reference/generatorTypeCheck29.symbols
+++ b/tests/baselines/reference/generatorTypeCheck29.symbols
@@ -1,7 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck29.ts ===
function* g2(): Iterator number>> {
>g2 : Symbol(g2, Decl(generatorTypeCheck29.ts, 0, 0))
->Iterator : Symbol(Iterator, Decl(lib.es2015.iterable.d.ts, --, --))
+>Iterator : Symbol(Iterator, Decl(lib.es5.d.ts, --, --))
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
>x : Symbol(x, Decl(generatorTypeCheck29.ts, 0, 35))
diff --git a/tests/baselines/reference/generatorTypeCheck30.symbols b/tests/baselines/reference/generatorTypeCheck30.symbols
index f1626cf067f..acb1e861520 100644
--- a/tests/baselines/reference/generatorTypeCheck30.symbols
+++ b/tests/baselines/reference/generatorTypeCheck30.symbols
@@ -1,7 +1,7 @@
=== tests/cases/conformance/es6/yieldExpressions/generatorTypeCheck30.ts ===
function* g2(): Iterator number>> {
>g2 : Symbol(g2, Decl(generatorTypeCheck30.ts, 0, 0))
->Iterator : Symbol(Iterator, Decl(lib.es2015.iterable.d.ts, --, --))
+>Iterator : Symbol(Iterator, Decl(lib.es5.d.ts, --, --))
>Iterable : Symbol(Iterable, Decl(lib.es2015.iterable.d.ts, --, --))
>x : Symbol(x, Decl(generatorTypeCheck30.ts, 0, 35))
diff --git a/tests/baselines/reference/generatorTypeCheck45.symbols b/tests/baselines/reference/generatorTypeCheck45.symbols
index fa8cdacfcd3..e8d400c6ef7 100644
--- a/tests/baselines/reference/generatorTypeCheck45.symbols
+++ b/tests/baselines/reference/generatorTypeCheck45.symbols
@@ -6,7 +6,7 @@ declare function foo(x: T, fun: () => Iterator<(x: T) => U>, fun2: (y: U)
>x : Symbol(x, Decl(generatorTypeCheck45.ts, 0, 27))
>T : Symbol(T, Decl(generatorTypeCheck45.ts, 0, 21))
>fun : Symbol(fun, Decl(generatorTypeCheck45.ts, 0, 32))
->Iterator : Symbol(Iterator, Decl(lib.es2015.iterable.d.ts, --, --))
+>Iterator : Symbol(Iterator, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(generatorTypeCheck45.ts, 0, 54))
>T : Symbol(T, Decl(generatorTypeCheck45.ts, 0, 21))
>U : Symbol(U, Decl(generatorTypeCheck45.ts, 0, 23))
diff --git a/tests/baselines/reference/parserMissingLambdaOpenBrace1.errors.txt b/tests/baselines/reference/parserMissingLambdaOpenBrace1.errors.txt
index d39986c9c01..6f01085be22 100644
--- a/tests/baselines/reference/parserMissingLambdaOpenBrace1.errors.txt
+++ b/tests/baselines/reference/parserMissingLambdaOpenBrace1.errors.txt
@@ -1,4 +1,4 @@
-tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts(2,19): error TS2304: Cannot find name 'Iterator'.
+tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts(2,19): error TS2314: Generic type 'Iterator' requires 1 type argument(s).
tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts(2,42): error TS2304: Cannot find name 'Query'.
tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts(3,16): error TS2304: Cannot find name 'fromDoWhile'.
tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts(4,13): error TS1005: '{' expected.
@@ -8,8 +8,8 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpen
==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/parserMissingLambdaOpenBrace1.ts (5 errors) ====
class C {
where(filter: Iterator): Query {
- ~~~~~~~~
-!!! error TS2304: Cannot find name 'Iterator'.
+ ~~~~~~~~~~~~~~~~~~~~
+!!! error TS2314: Generic type 'Iterator' requires 1 type argument(s).
~~~~~
!!! error TS2304: Cannot find name 'Query'.
return fromDoWhile(test =>
diff --git a/tests/baselines/reference/templateStringInYieldKeyword.errors.txt b/tests/baselines/reference/templateStringInYieldKeyword.errors.txt
deleted file mode 100644
index 578c24e7ce9..00000000000
--- a/tests/baselines/reference/templateStringInYieldKeyword.errors.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts(1,9): error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
-
-
-==== tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts (1 errors) ====
- function* gen() {
- ~
-!!! error TS1220: Generators are only available when targeting ECMAScript 2015 or higher.
- // Once this is supported, the inner expression does not need to be parenthesized.
- var x = yield `abc${ x }def`;
- }
-
\ No newline at end of file
diff --git a/tests/baselines/reference/templateStringInYieldKeyword.js b/tests/baselines/reference/templateStringInYieldKeyword.js
index e23eaa17c9c..fad896a2dd8 100644
--- a/tests/baselines/reference/templateStringInYieldKeyword.js
+++ b/tests/baselines/reference/templateStringInYieldKeyword.js
@@ -6,7 +6,59 @@ function* gen() {
//// [templateStringInYieldKeyword.js]
-function* gen() {
- // Once this is supported, the inner expression does not need to be parenthesized.
- var x = yield "abc" + x + "def";
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function gen() {
+ var x;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0: return [4 /*yield*/, "abc" + x + "def"];
+ case 1:
+ x = _a.sent();
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/templateStringInYieldKeyword.symbols b/tests/baselines/reference/templateStringInYieldKeyword.symbols
new file mode 100644
index 00000000000..3e8e63d2954
--- /dev/null
+++ b/tests/baselines/reference/templateStringInYieldKeyword.symbols
@@ -0,0 +1,10 @@
+=== tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts ===
+function* gen() {
+>gen : Symbol(gen, Decl(templateStringInYieldKeyword.ts, 0, 0))
+
+ // Once this is supported, the inner expression does not need to be parenthesized.
+ var x = yield `abc${ x }def`;
+>x : Symbol(x, Decl(templateStringInYieldKeyword.ts, 2, 7))
+>x : Symbol(x, Decl(templateStringInYieldKeyword.ts, 2, 7))
+}
+
diff --git a/tests/baselines/reference/templateStringInYieldKeyword.types b/tests/baselines/reference/templateStringInYieldKeyword.types
new file mode 100644
index 00000000000..456421126a6
--- /dev/null
+++ b/tests/baselines/reference/templateStringInYieldKeyword.types
@@ -0,0 +1,12 @@
+=== tests/cases/conformance/es6/templates/templateStringInYieldKeyword.ts ===
+function* gen() {
+>gen : () => Iterator
+
+ // Once this is supported, the inner expression does not need to be parenthesized.
+ var x = yield `abc${ x }def`;
+>x : any
+>yield `abc${ x }def` : any
+>`abc${ x }def` : string
+>x : any
+}
+
diff --git a/tests/baselines/reference/templateStringWithEmbeddedYieldKeyword.js b/tests/baselines/reference/templateStringWithEmbeddedYieldKeyword.js
index 8230f0ec8f1..7a66f3339b7 100644
--- a/tests/baselines/reference/templateStringWithEmbeddedYieldKeyword.js
+++ b/tests/baselines/reference/templateStringWithEmbeddedYieldKeyword.js
@@ -6,7 +6,61 @@ function* gen {
//// [templateStringWithEmbeddedYieldKeyword.js]
-function* gen() {
- // Once this is supported, yield *must* be parenthesized.
- var x = "abc" + (yield 10) + "def";
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (sent[0] === 1) throw sent[1]; return sent[1]; }, trys: [], stack: [] }, sent, star, f;
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (1) {
+ if (_.done) switch (op[0]) {
+ case 0: return { value: void 0, done: true };
+ case 1: case 6: throw op[1];
+ case 2: return { value: op[1], done: true };
+ }
+ try {
+ f = 1;
+ if (star) {
+ var v = star[["next", "throw", "return"][op[0]]];
+ if (v && !(v = v.call(star, op[1])).done) return v;
+ if (v) op = [0, v.value];
+ star = void 0; continue;
+ }
+ switch (op[0]) {
+ case 0: case 1: sent = op; break;
+ case 4: return _.label++, { value: op[1], done: false };
+ case 5: _.label++, star = op[1], op = [0]; continue;
+ case 7: op = _.stack.pop(), _.trys.pop(); continue;
+ default:
+ var r = _.trys.length > 0 && _.trys[_.trys.length - 1];
+ if (!r && (op[0] === 6 || op[0] === 2)) { _.done = 1; continue; }
+ if (op[0] === 3 && (!r || (op[1] > r[0] && op[1] < r[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < r[1]) { _.label = r[1], sent = op; break; }
+ if (r && _.label < r[2]) { _.label = r[2], _.stack.push(op); break; }
+ if (r[2]) { _.stack.pop(); }
+ _.trys.pop();
+ continue;
+ }
+ op = body.call(thisArg, _);
+ }
+ catch (e) { op = [6, e], star = void 0; }
+ finally { f = 0, sent = v = void 0; }
+ }
+ }
+ return {
+ next: function (v) { return step([0, v]); },
+ "throw": function (v) { return step([1, v]); },
+ "return": function (v) { return step([2, v]); }
+ };
+};
+function gen() {
+ var x, _a;
+ return __generator(this, function (_b) {
+ switch (_b.label) {
+ case 0:
+ _a = "abc";
+ return [4 /*yield*/, 10];
+ case 1:
+ x = _a + (_b.sent()) + "def";
+ return [2 /*return*/];
+ }
+ });
}
diff --git a/tests/baselines/reference/underscoreTest1.js b/tests/baselines/reference/underscoreTest1.js
index 687a210e670..771e6df56ac 100644
--- a/tests/baselines/reference/underscoreTest1.js
+++ b/tests/baselines/reference/underscoreTest1.js
@@ -5,11 +5,11 @@ interface Dictionary {
[x: string]: T;
}
-interface Iterator {
+interface IteratorCallback {
(value: T, index: any, list: any): U;
}
-interface Reducer {
+interface ReducerCallback {
(accumulator: U, value: T, index: any, list: any): U;
}
@@ -81,42 +81,42 @@ module Underscore {
}
export interface WrappedArray extends WrappedObject> {
- each(iterator: Iterator, context?: any): void;
- forEach(iterator: Iterator, context?: any): void;
- map(iterator: Iterator, context?: any): U[];
- collect(iterator: Iterator, context?: any): U[];
- reduce(iterator: Reducer, initialValue?: T, context?: any): T;
- reduce(iterator: Reducer, initialValue: U, context?: any): U;
- foldl(iterator: Reducer, initialValue?: T, context?: any): T;
- foldl(iterator: Reducer, initialValue: U, context?: any): U;
- inject(iterator: Reducer, initialValue?: T, context?: any): T;
- inject(iterator: Reducer, initialValue: U, context?: any): U;
- reduceRight(iterator: Reducer, initialValue?: T, context?: any): T;
- reduceRight(iterator: Reducer, initialValue: U, context?: any): U;
- foldr(iterator: Reducer, initialValue?: T, context?: any): T;
- foldr(iterator: Reducer, initialValue: U, context?: any): U;
- find(iterator: Iterator, context?: any): T;
- detect(iterator: Iterator, context?: any): T;
- filter(iterator: Iterator, context?: any): T[];
- select(iterator: Iterator, context?: any): T[];
+ each(iterator: IteratorCallback, context?: any): void;
+ forEach(iterator: IteratorCallback, context?: any): void;
+ map(iterator: IteratorCallback, context?: any): U[];
+ collect(iterator: IteratorCallback, context?: any): U[];
+ reduce(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ reduce(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ foldl(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ foldl(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ inject(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ inject(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ reduceRight(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ reduceRight(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ foldr(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ foldr(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ find(iterator: IteratorCallback, context?: any): T;
+ detect(iterator: IteratorCallback, context?: any): T;
+ filter(iterator: IteratorCallback, context?: any): T[];
+ select(iterator: IteratorCallback, context?: any): T[];
where(properties: Object): T[];
findWhere(properties: Object): T;
- reject(iterator: Iterator, context?: any): T[];
- every(iterator?: Iterator, context?: any): boolean;
- all(iterator?: Iterator, context?: any): boolean;
- some(iterator?: Iterator, context?: any): boolean;
- any(iterator?: Iterator, context?: any): boolean;
+ reject(iterator: IteratorCallback, context?: any): T[];
+ every(iterator?: IteratorCallback, context?: any): boolean;
+ all(iterator?: IteratorCallback, context?: any): boolean;
+ some(iterator?: IteratorCallback, context?: any): boolean;
+ any(iterator?: IteratorCallback, context?: any): boolean;
contains(value: T): boolean;
include(value: T): boolean;
invoke(methodName: string, ...args: any[]): any[];
pluck(propertyName: string): any[];
- max(iterator?: Iterator, context?: any): T;
- min(iterator?: Iterator, context?: any): T;
- sortBy(iterator: Iterator, context?: any): T[];
+ max(iterator?: IteratorCallback, context?: any): T;
+ min(iterator?: IteratorCallback, context?: any): T;
+ sortBy(iterator: IteratorCallback, context?: any): T[];
sortBy(propertyName: string): T[];
- groupBy(iterator?: Iterator, context?: any): Dictionary;
+ groupBy(iterator?: IteratorCallback, context?: any): Dictionary;
groupBy(propertyName: string): Dictionary;
- countBy(iterator?: Iterator, context?: any): Dictionary;
+ countBy(iterator?: IteratorCallback, context?: any): Dictionary;
countBy(propertyName: string): Dictionary;
shuffle(): T[];
toArray(): T[];
@@ -139,16 +139,16 @@ module Underscore {
intersection(...arrays: T[][]): T[];
difference(...others: T[][]): T[];
uniq(isSorted?: boolean): T[];
- uniq(isSorted: boolean, iterator: Iterator, context?: any): U[];
+ uniq(isSorted: boolean, iterator: IteratorCallback, context?: any): U[];
unique(isSorted?: boolean): T[];
- unique(isSorted: boolean, iterator: Iterator, context?: any): U[];
+ unique(isSorted: boolean, iterator: IteratorCallback, context?: any): U[];
zip(...arrays: any[][]): any[][];
object(): any;
object(values: any[]): any;
indexOf(value: T, isSorted?: boolean): number;
lastIndexOf(value: T, fromIndex?: number): number;
sortedIndex(obj: T, propertyName: string): number;
- sortedIndex(obj: T, iterator?: Iterator, context?: any): number;
+ sortedIndex(obj: T, iterator?: IteratorCallback, context?: any): number;
// Methods from Array
concat(...items: T[]): T[];
join(separator?: string): string;
@@ -164,42 +164,42 @@ module Underscore {
}
export interface WrappedDictionary extends WrappedObject> {
- each(iterator: Iterator, context?: any): void;
- forEach(iterator: Iterator, context?: any): void;
- map(iterator: Iterator, context?: any): U[];
- collect(iterator: Iterator, context?: any): U[];
- reduce(iterator: Reducer, initialValue?: T, context?: any): T;
- reduce(iterator: Reducer, initialValue: U, context?: any): U;
- foldl(iterator: Reducer, initialValue?: T, context?: any): T;
- foldl(iterator: Reducer, initialValue: U, context?: any): U;
- inject(iterator: Reducer, initialValue?: T, context?: any): T;
- inject(iterator: Reducer, initialValue: U, context?: any): U;
- reduceRight(iterator: Reducer, initialValue?: T, context?: any): T;
- reduceRight(iterator: Reducer, initialValue: U, context?: any): U;
- foldr(iterator: Reducer, initialValue?: T, context?: any): T;
- foldr(iterator: Reducer, initialValue: U, context?: any): U;
- find(iterator: Iterator, context?: any): T;
- detect(iterator: Iterator, context?: any): T;
- filter(iterator: Iterator, context?: any): T[];
- select(iterator: Iterator, context?: any): T[];
+ each(iterator: IteratorCallback, context?: any): void;
+ forEach(iterator: IteratorCallback, context?: any): void;
+ map(iterator: IteratorCallback, context?: any): U[];
+ collect(iterator: IteratorCallback, context?: any): U[];
+ reduce(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ reduce(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ foldl(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ foldl(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ inject(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ inject(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ reduceRight(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ reduceRight(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ foldr(iterator: ReducerCallback, initialValue?: T, context?: any): T;
+ foldr(iterator: ReducerCallback, initialValue: U, context?: any): U;
+ find(iterator: IteratorCallback, context?: any): T;
+ detect(iterator: IteratorCallback, context?: any): T;
+ filter(iterator: IteratorCallback, context?: any): T[];
+ select(iterator: IteratorCallback, context?: any): T[];
where(properties: Object): T[];
findWhere(properties: Object): T;
- reject(iterator: Iterator, context?: any): T[];
- every(iterator?: Iterator, context?: any): boolean;
- all(iterator?: Iterator, context?: any): boolean;
- some(iterator?: Iterator, context?: any): boolean;
- any(iterator?: Iterator, context?: any): boolean;
+ reject(iterator: IteratorCallback, context?: any): T[];
+ every(iterator?: IteratorCallback, context?: any): boolean;
+ all(iterator?: IteratorCallback, context?: any): boolean;
+ some(iterator?: IteratorCallback, context?: any): boolean;
+ any(iterator?: IteratorCallback, context?: any): boolean;
contains(value: T): boolean;
include(value: T): boolean;
invoke(methodName: string, ...args: any[]): any[];
pluck(propertyName: string): any[];
- max(iterator?: Iterator, context?: any): T;
- min(iterator?: Iterator, context?: any): T;
- sortBy(iterator: Iterator, context?: any): T[];
+ max(iterator?: IteratorCallback, context?: any): T;
+ min(iterator?: IteratorCallback, context?: any): T;
+ sortBy(iterator: IteratorCallback, context?: any): T[];
sortBy(propertyName: string): T[];
- groupBy(iterator?: Iterator, context?: any): Dictionary;
+ groupBy(iterator?: IteratorCallback, context?: any): Dictionary;
groupBy(propertyName: string): Dictionary;
- countBy(iterator?: Iterator, context?: any): Dictionary;
+ countBy(iterator?: IteratorCallback