diff --git a/Jakefile.js b/Jakefile.js
index 3e0512de452ca..a3141559bfbc6 100644
--- a/Jakefile.js
+++ b/Jakefile.js
@@ -187,6 +187,12 @@ var es2016LibrarySourceMap = es2016LibrarySource.map(function(source) {
return { target: "lib." + source, sources: ["header.d.ts", source] };
})
+var es2017LibrarySource = ["es2017.object.d.ts"];
+
+var es2017LibrarySourceMap = es2017LibrarySource.map(function(source) {
+ return { target: "lib." + source, sources: ["header.d.ts", source] };
+})
+
var hostsLibrarySources = ["dom.generated.d.ts", "webworker.importscripts.d.ts", "scripthost.d.ts"]
var librarySourceMap = [
@@ -200,11 +206,12 @@ var librarySourceMap = [
{ target: "lib.es5.d.ts", sources: ["header.d.ts", "es5.d.ts"] },
{ target: "lib.es2015.d.ts", sources: ["header.d.ts", "es2015.d.ts"] },
{ target: "lib.es2016.d.ts", sources: ["header.d.ts", "es2016.d.ts"] },
+ { target: "lib.es2017.d.ts", sources: ["header.d.ts", "es2017.d.ts"] },
// JavaScript + all host library
{ target: "lib.d.ts", sources: ["header.d.ts", "es5.d.ts"].concat(hostsLibrarySources), },
{ target: "lib.es6.d.ts", sources: ["header.d.ts", "es5.d.ts"].concat(es2015LibrarySources, hostsLibrarySources, "dom.iterable.d.ts"), },
-].concat(es2015LibrarySourceMap, es2016LibrarySourceMap);
+].concat(es2015LibrarySourceMap, es2016LibrarySourceMap, es2017LibrarySourceMap);
var libraryTargets = librarySourceMap.map(function (f) {
return path.join(builtLocalDirectory, f.target);
diff --git a/src/compiler/commandLineParser.ts b/src/compiler/commandLineParser.ts
index abf58db0403ea..d9f9b040ac629 100644
--- a/src/compiler/commandLineParser.ts
+++ b/src/compiler/commandLineParser.ts
@@ -375,6 +375,7 @@ namespace ts {
"es2015": "lib.es2015.d.ts",
"es7": "lib.es2016.d.ts",
"es2016": "lib.es2016.d.ts",
+ "es2017": "lib.es2017.d.ts",
// Host only
"dom": "lib.dom.d.ts",
"webworker": "lib.webworker.d.ts",
@@ -389,7 +390,8 @@ namespace ts {
"es2015.reflect": "lib.es2015.reflect.d.ts",
"es2015.symbol": "lib.es2015.symbol.d.ts",
"es2015.symbol.wellknown": "lib.es2015.symbol.wellknown.d.ts",
- "es2016.array.include": "lib.es2016.array.include.d.ts"
+ "es2016.array.include": "lib.es2016.array.include.d.ts",
+ "es2017.object": "lib.es2017.object.d.ts"
},
},
description: Diagnostics.Specify_library_files_to_be_included_in_the_compilation_Colon
diff --git a/src/lib/es2017.d.ts b/src/lib/es2017.d.ts
new file mode 100644
index 0000000000000..aad5ff4d2ced9
--- /dev/null
+++ b/src/lib/es2017.d.ts
@@ -0,0 +1,2 @@
+///
+///
\ No newline at end of file
diff --git a/src/lib/es2017.object.d.ts b/src/lib/es2017.object.d.ts
new file mode 100644
index 0000000000000..95cc5692a0354
--- /dev/null
+++ b/src/lib/es2017.object.d.ts
@@ -0,0 +1,14 @@
+interface ObjectConstructor {
+ /**
+ * Returns an array of values of the enumerable properties of an object
+ * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+ */
+ values(o: { [s: string]: T }): T[];
+ values(o: any): any[];
+ /**
+ * Returns an array of key/values of the enumerable properties of an object
+ * @param o Object that contains the properties and methods. This can be an object that you created or an existing Document Object Model (DOM) object.
+ */
+ entries(o: { [s: string]: T }): [string, T][];
+ entries(o: any): [string, any][];
+}
\ No newline at end of file
diff --git a/tests/baselines/reference/useObjectValuesAndEntries1.js b/tests/baselines/reference/useObjectValuesAndEntries1.js
new file mode 100644
index 0000000000000..ee2c7115813f7
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries1.js
@@ -0,0 +1,19 @@
+//// [useObjectValuesAndEntries1.ts]
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
+var entries1 = Object.entries(1); // <-- entries: [string, any][]
+
+//// [useObjectValuesAndEntries1.js]
+var o = { a: 1, b: 2 };
+for (var _i = 0, _a = Object.values(o); _i < _a.length; _i++) {
+ var x = _a[_i];
+ var y = x;
+}
+var entries = Object.entries(o);
+var entries1 = Object.entries(1); // <-- entries: [string, any][]
diff --git a/tests/baselines/reference/useObjectValuesAndEntries1.symbols b/tests/baselines/reference/useObjectValuesAndEntries1.symbols
new file mode 100644
index 0000000000000..55181e49babe3
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries1.symbols
@@ -0,0 +1,32 @@
+=== tests/cases/conformance/es2017/useObjectValuesAndEntries1.ts ===
+
+var o = { a: 1, b: 2 };
+>o : Symbol(o, Decl(useObjectValuesAndEntries1.ts, 1, 3))
+>a : Symbol(a, Decl(useObjectValuesAndEntries1.ts, 1, 9))
+>b : Symbol(b, Decl(useObjectValuesAndEntries1.ts, 1, 15))
+
+for (var x of Object.values(o)) {
+>x : Symbol(x, Decl(useObjectValuesAndEntries1.ts, 3, 8))
+>Object.values : Symbol(ObjectConstructor.values, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+>values : Symbol(ObjectConstructor.values, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>o : Symbol(o, Decl(useObjectValuesAndEntries1.ts, 1, 3))
+
+ let y = x;
+>y : Symbol(y, Decl(useObjectValuesAndEntries1.ts, 4, 7))
+>x : Symbol(x, Decl(useObjectValuesAndEntries1.ts, 3, 8))
+}
+
+var entries = Object.entries(o);
+>entries : Symbol(entries, Decl(useObjectValuesAndEntries1.ts, 7, 3))
+>Object.entries : Symbol(ObjectConstructor.entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+>entries : Symbol(ObjectConstructor.entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>o : Symbol(o, Decl(useObjectValuesAndEntries1.ts, 1, 3))
+
+var entries1 = Object.entries(1); // <-- entries: [string, any][]
+>entries1 : Symbol(entries1, Decl(useObjectValuesAndEntries1.ts, 8, 3))
+>Object.entries : Symbol(ObjectConstructor.entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
+>entries : Symbol(ObjectConstructor.entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+
diff --git a/tests/baselines/reference/useObjectValuesAndEntries1.types b/tests/baselines/reference/useObjectValuesAndEntries1.types
new file mode 100644
index 0000000000000..27a0abb81ebb6
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries1.types
@@ -0,0 +1,39 @@
+=== tests/cases/conformance/es2017/useObjectValuesAndEntries1.ts ===
+
+var o = { a: 1, b: 2 };
+>o : { a: number; b: number; }
+>{ a: 1, b: 2 } : { a: number; b: number; }
+>a : number
+>1 : number
+>b : number
+>2 : number
+
+for (var x of Object.values(o)) {
+>x : number
+>Object.values(o) : number[]
+>Object.values : { (o: { [s: string]: T; }): T[]; (o: any): any[]; }
+>Object : ObjectConstructor
+>values : { (o: { [s: string]: T; }): T[]; (o: any): any[]; }
+>o : { a: number; b: number; }
+
+ let y = x;
+>y : number
+>x : number
+}
+
+var entries = Object.entries(o);
+>entries : [string, number][]
+>Object.entries(o) : [string, number][]
+>Object.entries : { (o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
+>Object : ObjectConstructor
+>entries : { (o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
+>o : { a: number; b: number; }
+
+var entries1 = Object.entries(1); // <-- entries: [string, any][]
+>entries1 : [string, any][]
+>Object.entries(1) : [string, any][]
+>Object.entries : { (o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
+>Object : ObjectConstructor
+>entries : { (o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
+>1 : number
+
diff --git a/tests/baselines/reference/useObjectValuesAndEntries2.errors.txt b/tests/baselines/reference/useObjectValuesAndEntries2.errors.txt
new file mode 100644
index 0000000000000..74119083a5fec
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries2.errors.txt
@@ -0,0 +1,17 @@
+tests/cases/conformance/es2017/useObjectValuesAndEntries2.ts(4,22): error TS2339: Property 'values' does not exist on type 'ObjectConstructor'.
+tests/cases/conformance/es2017/useObjectValuesAndEntries2.ts(8,22): error TS2339: Property 'entries' does not exist on type 'ObjectConstructor'.
+
+
+==== tests/cases/conformance/es2017/useObjectValuesAndEntries2.ts (2 errors) ====
+
+ var o = { a: 1, b: 2 };
+
+ for (var x of Object.values(o)) {
+ ~~~~~~
+!!! error TS2339: Property 'values' does not exist on type 'ObjectConstructor'.
+ let y = x;
+ }
+
+ var entries = Object.entries(o);
+ ~~~~~~~
+!!! error TS2339: Property 'entries' does not exist on type 'ObjectConstructor'.
\ No newline at end of file
diff --git a/tests/baselines/reference/useObjectValuesAndEntries2.js b/tests/baselines/reference/useObjectValuesAndEntries2.js
new file mode 100644
index 0000000000000..31918566844b1
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries2.js
@@ -0,0 +1,17 @@
+//// [useObjectValuesAndEntries2.ts]
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
+
+//// [useObjectValuesAndEntries2.js]
+var o = { a: 1, b: 2 };
+for (var _i = 0, _a = Object.values(o); _i < _a.length; _i++) {
+ var x = _a[_i];
+ var y = x;
+}
+var entries = Object.entries(o);
diff --git a/tests/baselines/reference/useObjectValuesAndEntries3.errors.txt b/tests/baselines/reference/useObjectValuesAndEntries3.errors.txt
new file mode 100644
index 0000000000000..2b2c38bd9fe69
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries3.errors.txt
@@ -0,0 +1,17 @@
+tests/cases/conformance/es2017/useObjectValuesAndEntries3.ts(4,22): error TS2339: Property 'values' does not exist on type 'ObjectConstructor'.
+tests/cases/conformance/es2017/useObjectValuesAndEntries3.ts(8,22): error TS2339: Property 'entries' does not exist on type 'ObjectConstructor'.
+
+
+==== tests/cases/conformance/es2017/useObjectValuesAndEntries3.ts (2 errors) ====
+
+ var o = { a: 1, b: 2 };
+
+ for (var x of Object.values(o)) {
+ ~~~~~~
+!!! error TS2339: Property 'values' does not exist on type 'ObjectConstructor'.
+ let y = x;
+ }
+
+ var entries = Object.entries(o);
+ ~~~~~~~
+!!! error TS2339: Property 'entries' does not exist on type 'ObjectConstructor'.
\ No newline at end of file
diff --git a/tests/baselines/reference/useObjectValuesAndEntries3.js b/tests/baselines/reference/useObjectValuesAndEntries3.js
new file mode 100644
index 0000000000000..9d3d4368cc77f
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries3.js
@@ -0,0 +1,16 @@
+//// [useObjectValuesAndEntries3.ts]
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
+
+//// [useObjectValuesAndEntries3.js]
+var o = { a: 1, b: 2 };
+for (var x of Object.values(o)) {
+ let y = x;
+}
+var entries = Object.entries(o);
diff --git a/tests/baselines/reference/useObjectValuesAndEntries4.js b/tests/baselines/reference/useObjectValuesAndEntries4.js
new file mode 100644
index 0000000000000..7eb24e7aa7146
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries4.js
@@ -0,0 +1,16 @@
+//// [useObjectValuesAndEntries4.ts]
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
+
+//// [useObjectValuesAndEntries4.js]
+var o = { a: 1, b: 2 };
+for (var x of Object.values(o)) {
+ let y = x;
+}
+var entries = Object.entries(o);
diff --git a/tests/baselines/reference/useObjectValuesAndEntries4.symbols b/tests/baselines/reference/useObjectValuesAndEntries4.symbols
new file mode 100644
index 0000000000000..5edf23790cd92
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries4.symbols
@@ -0,0 +1,26 @@
+=== tests/cases/conformance/es2017/useObjectValuesAndEntries4.ts ===
+
+var o = { a: 1, b: 2 };
+>o : Symbol(o, Decl(useObjectValuesAndEntries4.ts, 1, 3))
+>a : Symbol(a, Decl(useObjectValuesAndEntries4.ts, 1, 9))
+>b : Symbol(b, Decl(useObjectValuesAndEntries4.ts, 1, 15))
+
+for (var x of Object.values(o)) {
+>x : Symbol(x, Decl(useObjectValuesAndEntries4.ts, 3, 8))
+>Object.values : Symbol(ObjectConstructor.values, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
+>values : Symbol(ObjectConstructor.values, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>o : Symbol(o, Decl(useObjectValuesAndEntries4.ts, 1, 3))
+
+ let y = x;
+>y : Symbol(y, Decl(useObjectValuesAndEntries4.ts, 4, 7))
+>x : Symbol(x, Decl(useObjectValuesAndEntries4.ts, 3, 8))
+}
+
+var entries = Object.entries(o);
+>entries : Symbol(entries, Decl(useObjectValuesAndEntries4.ts, 7, 3))
+>Object.entries : Symbol(ObjectConstructor.entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --))
+>entries : Symbol(ObjectConstructor.entries, Decl(lib.es2017.object.d.ts, --, --), Decl(lib.es2017.object.d.ts, --, --))
+>o : Symbol(o, Decl(useObjectValuesAndEntries4.ts, 1, 3))
+
diff --git a/tests/baselines/reference/useObjectValuesAndEntries4.types b/tests/baselines/reference/useObjectValuesAndEntries4.types
new file mode 100644
index 0000000000000..8defd2bf75803
--- /dev/null
+++ b/tests/baselines/reference/useObjectValuesAndEntries4.types
@@ -0,0 +1,31 @@
+=== tests/cases/conformance/es2017/useObjectValuesAndEntries4.ts ===
+
+var o = { a: 1, b: 2 };
+>o : { a: number; b: number; }
+>{ a: 1, b: 2 } : { a: number; b: number; }
+>a : number
+>1 : number
+>b : number
+>2 : number
+
+for (var x of Object.values(o)) {
+>x : number
+>Object.values(o) : number[]
+>Object.values : { (o: { [s: string]: T; }): T[]; (o: any): any[]; }
+>Object : ObjectConstructor
+>values : { (o: { [s: string]: T; }): T[]; (o: any): any[]; }
+>o : { a: number; b: number; }
+
+ let y = x;
+>y : number
+>x : number
+}
+
+var entries = Object.entries(o);
+>entries : [string, number][]
+>Object.entries(o) : [string, number][]
+>Object.entries : { (o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
+>Object : ObjectConstructor
+>entries : { (o: { [s: string]: T; }): [string, T][]; (o: any): [string, any][]; }
+>o : { a: number; b: number; }
+
diff --git a/tests/cases/conformance/es2017/useObjectValuesAndEntries1.ts b/tests/cases/conformance/es2017/useObjectValuesAndEntries1.ts
new file mode 100644
index 0000000000000..145239a84b200
--- /dev/null
+++ b/tests/cases/conformance/es2017/useObjectValuesAndEntries1.ts
@@ -0,0 +1,11 @@
+// @target: es5
+// @lib: es5,es2017.object
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
+var entries1 = Object.entries(1); // <-- entries: [string, any][]
\ No newline at end of file
diff --git a/tests/cases/conformance/es2017/useObjectValuesAndEntries2.ts b/tests/cases/conformance/es2017/useObjectValuesAndEntries2.ts
new file mode 100644
index 0000000000000..d3596222a4736
--- /dev/null
+++ b/tests/cases/conformance/es2017/useObjectValuesAndEntries2.ts
@@ -0,0 +1,10 @@
+// @target: es5
+// @lib: es5
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
\ No newline at end of file
diff --git a/tests/cases/conformance/es2017/useObjectValuesAndEntries3.ts b/tests/cases/conformance/es2017/useObjectValuesAndEntries3.ts
new file mode 100644
index 0000000000000..b05d32744bfc9
--- /dev/null
+++ b/tests/cases/conformance/es2017/useObjectValuesAndEntries3.ts
@@ -0,0 +1,9 @@
+// @target: es6
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
\ No newline at end of file
diff --git a/tests/cases/conformance/es2017/useObjectValuesAndEntries4.ts b/tests/cases/conformance/es2017/useObjectValuesAndEntries4.ts
new file mode 100644
index 0000000000000..d319d6efee741
--- /dev/null
+++ b/tests/cases/conformance/es2017/useObjectValuesAndEntries4.ts
@@ -0,0 +1,10 @@
+// @target: es6
+// @lib: es2017
+
+var o = { a: 1, b: 2 };
+
+for (var x of Object.values(o)) {
+ let y = x;
+}
+
+var entries = Object.entries(o);
\ No newline at end of file
diff --git a/tests/cases/unittests/commandLineParsing.ts b/tests/cases/unittests/commandLineParsing.ts
index e220c2435587c..c59f6a4d78cc9 100644
--- a/tests/cases/unittests/commandLineParsing.ts
+++ b/tests/cases/unittests/commandLineParsing.ts
@@ -60,7 +60,7 @@ namespace ts {
assertParseResult(["--lib", "es5,invalidOption", "0.ts"],
{
errors: [{
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
@@ -217,7 +217,7 @@ namespace ts {
start: undefined,
length: undefined,
}, {
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
@@ -237,7 +237,7 @@ namespace ts {
assertParseResult(["--lib", "es5,", "es7", "0.ts"],
{
errors: [{
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
@@ -257,7 +257,7 @@ namespace ts {
assertParseResult(["--lib", "es5, ", "es7", "0.ts"],
{
errors: [{
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
category: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
code: ts.Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
diff --git a/tests/cases/unittests/convertCompilerOptionsFromJson.ts b/tests/cases/unittests/convertCompilerOptionsFromJson.ts
index ed1d96a0fb705..b48d4ac451b27 100644
--- a/tests/cases/unittests/convertCompilerOptionsFromJson.ts
+++ b/tests/cases/unittests/convertCompilerOptionsFromJson.ts
@@ -233,7 +233,7 @@ namespace ts {
file: undefined,
start: 0,
length: 0,
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
}]
@@ -264,7 +264,7 @@ namespace ts {
file: undefined,
start: 0,
length: 0,
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
}]
@@ -295,7 +295,7 @@ namespace ts {
file: undefined,
start: 0,
length: 0,
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
}]
@@ -326,7 +326,7 @@ namespace ts {
file: undefined,
start: 0,
length: 0,
- messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include'",
+ messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'dom', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator', 'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol', 'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object'",
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category
}]