From b33d5e3f192afc372d2dc9901d251d6dc5818702 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 11 Jun 2018 12:46:13 -0700 Subject: [PATCH 1/2] Fix #24826: Add mapping for ES2018 target to library --- src/compiler/utilities.ts | 2 ++ .../reference/es2018ObjectAssign.errors.txt | 10 +++++++++ .../baselines/reference/es2018ObjectAssign.js | 10 +++++++++ .../reference/es2018ObjectAssign.symbols | 17 ++++++++++++++ .../reference/es2018ObjectAssign.types | 22 +++++++++++++++++++ tests/cases/compiler/es2018ObjectAssign.ts | 6 +++++ 6 files changed, 67 insertions(+) create mode 100644 tests/baselines/reference/es2018ObjectAssign.errors.txt create mode 100644 tests/baselines/reference/es2018ObjectAssign.js create mode 100644 tests/baselines/reference/es2018ObjectAssign.symbols create mode 100644 tests/baselines/reference/es2018ObjectAssign.types create mode 100644 tests/cases/compiler/es2018ObjectAssign.ts diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 156555124bd..e6fc3d203c3 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -4177,6 +4177,8 @@ namespace ts { switch (options.target) { case ScriptTarget.ESNext: return "lib.esnext.full.d.ts"; + case ScriptTarget.ES2018: + return "lib.es2018.full.d.ts"; case ScriptTarget.ES2017: return "lib.es2017.full.d.ts"; case ScriptTarget.ES2016: diff --git a/tests/baselines/reference/es2018ObjectAssign.errors.txt b/tests/baselines/reference/es2018ObjectAssign.errors.txt new file mode 100644 index 00000000000..336bef18c6e --- /dev/null +++ b/tests/baselines/reference/es2018ObjectAssign.errors.txt @@ -0,0 +1,10 @@ +tests/cases/compiler/es2018ObjectAssign.ts(3,7): error TS1155: 'const' declarations must be initialized. + + +==== tests/cases/compiler/es2018ObjectAssign.ts (1 errors) ==== + const test = Object.assign({}, { test: true }); + + const p: Promise; + ~ +!!! error TS1155: 'const' declarations must be initialized. + p.finally(); \ No newline at end of file diff --git a/tests/baselines/reference/es2018ObjectAssign.js b/tests/baselines/reference/es2018ObjectAssign.js new file mode 100644 index 00000000000..2a3beb5ed02 --- /dev/null +++ b/tests/baselines/reference/es2018ObjectAssign.js @@ -0,0 +1,10 @@ +//// [es2018ObjectAssign.ts] +const test = Object.assign({}, { test: true }); + +const p: Promise; +p.finally(); + +//// [es2018ObjectAssign.js] +const test = Object.assign({}, { test: true }); +const p; +p.finally(); diff --git a/tests/baselines/reference/es2018ObjectAssign.symbols b/tests/baselines/reference/es2018ObjectAssign.symbols new file mode 100644 index 00000000000..323501e100f --- /dev/null +++ b/tests/baselines/reference/es2018ObjectAssign.symbols @@ -0,0 +1,17 @@ +=== tests/cases/compiler/es2018ObjectAssign.ts === +const test = Object.assign({}, { test: true }); +>test : Symbol(test, Decl(es2018ObjectAssign.ts, 0, 5)) +>Object.assign : Symbol(ObjectConstructor.assign, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --)) +>assign : Symbol(ObjectConstructor.assign, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) +>test : Symbol(test, Decl(es2018ObjectAssign.ts, 0, 32)) + +const p: Promise; +>p : Symbol(p, Decl(es2018ObjectAssign.ts, 2, 5)) +>Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) + +p.finally(); +>p.finally : Symbol(Promise.finally, Decl(lib.es2018.promise.d.ts, --, --)) +>p : Symbol(p, Decl(es2018ObjectAssign.ts, 2, 5)) +>finally : Symbol(Promise.finally, Decl(lib.es2018.promise.d.ts, --, --)) + diff --git a/tests/baselines/reference/es2018ObjectAssign.types b/tests/baselines/reference/es2018ObjectAssign.types new file mode 100644 index 00000000000..f8e902ff262 --- /dev/null +++ b/tests/baselines/reference/es2018ObjectAssign.types @@ -0,0 +1,22 @@ +=== tests/cases/compiler/es2018ObjectAssign.ts === +const test = Object.assign({}, { test: true }); +>test : { test: boolean; } +>Object.assign({}, { test: true }) : { test: boolean; } +>Object.assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>Object : ObjectConstructor +>assign : { (target: T, source: U): T & U; (target: T, source1: U, source2: V): T & U & V; (target: T, source1: U, source2: V, source3: W): T & U & V & W; (target: object, ...sources: any[]): any; } +>{} : {} +>{ test: true } : { test: true; } +>test : true +>true : true + +const p: Promise; +>p : Promise +>Promise : Promise + +p.finally(); +>p.finally() : Promise +>p.finally : (onfinally?: () => void) => Promise +>p : Promise +>finally : (onfinally?: () => void) => Promise + diff --git a/tests/cases/compiler/es2018ObjectAssign.ts b/tests/cases/compiler/es2018ObjectAssign.ts new file mode 100644 index 00000000000..ed13289dd00 --- /dev/null +++ b/tests/cases/compiler/es2018ObjectAssign.ts @@ -0,0 +1,6 @@ +// @target: es2018 + +const test = Object.assign({}, { test: true }); + +const p: Promise; +p.finally(); \ No newline at end of file From c34a6d9d12ff0bb9e8f5894d35edfdbb9886bd13 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 11 Jun 2018 15:29:52 -0700 Subject: [PATCH 2/2] Remove error baseline --- .../baselines/reference/es2018ObjectAssign.errors.txt | 10 ---------- tests/baselines/reference/es2018ObjectAssign.js | 3 +-- tests/baselines/reference/es2018ObjectAssign.symbols | 6 +++--- tests/baselines/reference/es2018ObjectAssign.types | 2 +- tests/cases/compiler/es2018ObjectAssign.ts | 2 +- 5 files changed, 6 insertions(+), 17 deletions(-) delete mode 100644 tests/baselines/reference/es2018ObjectAssign.errors.txt diff --git a/tests/baselines/reference/es2018ObjectAssign.errors.txt b/tests/baselines/reference/es2018ObjectAssign.errors.txt deleted file mode 100644 index 336bef18c6e..00000000000 --- a/tests/baselines/reference/es2018ObjectAssign.errors.txt +++ /dev/null @@ -1,10 +0,0 @@ -tests/cases/compiler/es2018ObjectAssign.ts(3,7): error TS1155: 'const' declarations must be initialized. - - -==== tests/cases/compiler/es2018ObjectAssign.ts (1 errors) ==== - const test = Object.assign({}, { test: true }); - - const p: Promise; - ~ -!!! error TS1155: 'const' declarations must be initialized. - p.finally(); \ No newline at end of file diff --git a/tests/baselines/reference/es2018ObjectAssign.js b/tests/baselines/reference/es2018ObjectAssign.js index 2a3beb5ed02..4ad3dc3c8e7 100644 --- a/tests/baselines/reference/es2018ObjectAssign.js +++ b/tests/baselines/reference/es2018ObjectAssign.js @@ -1,10 +1,9 @@ //// [es2018ObjectAssign.ts] const test = Object.assign({}, { test: true }); -const p: Promise; +declare const p: Promise; p.finally(); //// [es2018ObjectAssign.js] const test = Object.assign({}, { test: true }); -const p; p.finally(); diff --git a/tests/baselines/reference/es2018ObjectAssign.symbols b/tests/baselines/reference/es2018ObjectAssign.symbols index 323501e100f..3ed140cb570 100644 --- a/tests/baselines/reference/es2018ObjectAssign.symbols +++ b/tests/baselines/reference/es2018ObjectAssign.symbols @@ -6,12 +6,12 @@ const test = Object.assign({}, { test: true }); >assign : Symbol(ObjectConstructor.assign, Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --)) >test : Symbol(test, Decl(es2018ObjectAssign.ts, 0, 32)) -const p: Promise; ->p : Symbol(p, Decl(es2018ObjectAssign.ts, 2, 5)) +declare const p: Promise; +>p : Symbol(p, Decl(es2018ObjectAssign.ts, 2, 13)) >Promise : Symbol(Promise, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.promise.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2018.promise.d.ts, --, --)) p.finally(); >p.finally : Symbol(Promise.finally, Decl(lib.es2018.promise.d.ts, --, --)) ->p : Symbol(p, Decl(es2018ObjectAssign.ts, 2, 5)) +>p : Symbol(p, Decl(es2018ObjectAssign.ts, 2, 13)) >finally : Symbol(Promise.finally, Decl(lib.es2018.promise.d.ts, --, --)) diff --git a/tests/baselines/reference/es2018ObjectAssign.types b/tests/baselines/reference/es2018ObjectAssign.types index f8e902ff262..92ac3d760a3 100644 --- a/tests/baselines/reference/es2018ObjectAssign.types +++ b/tests/baselines/reference/es2018ObjectAssign.types @@ -10,7 +10,7 @@ const test = Object.assign({}, { test: true }); >test : true >true : true -const p: Promise; +declare const p: Promise; >p : Promise >Promise : Promise diff --git a/tests/cases/compiler/es2018ObjectAssign.ts b/tests/cases/compiler/es2018ObjectAssign.ts index ed13289dd00..314315b42b4 100644 --- a/tests/cases/compiler/es2018ObjectAssign.ts +++ b/tests/cases/compiler/es2018ObjectAssign.ts @@ -2,5 +2,5 @@ const test = Object.assign({}, { test: true }); -const p: Promise; +declare const p: Promise; p.finally(); \ No newline at end of file