diff --git a/src/parser/utilities.ts b/src/parser/utilities.ts index 83e56d81631..f04f5f01bd7 100644 --- a/src/parser/utilities.ts +++ b/src/parser/utilities.ts @@ -4325,6 +4325,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.js b/tests/baselines/reference/es2018ObjectAssign.js new file mode 100644 index 00000000000..4ad3dc3c8e7 --- /dev/null +++ b/tests/baselines/reference/es2018ObjectAssign.js @@ -0,0 +1,9 @@ +//// [es2018ObjectAssign.ts] +const test = Object.assign({}, { test: true }); + +declare const p: Promise; +p.finally(); + +//// [es2018ObjectAssign.js] +const test = Object.assign({}, { test: true }); +p.finally(); diff --git a/tests/baselines/reference/es2018ObjectAssign.symbols b/tests/baselines/reference/es2018ObjectAssign.symbols new file mode 100644 index 00000000000..3ed140cb570 --- /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)) + +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, 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 new file mode 100644 index 00000000000..92ac3d760a3 --- /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 + +declare 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..314315b42b4 --- /dev/null +++ b/tests/cases/compiler/es2018ObjectAssign.ts @@ -0,0 +1,6 @@ +// @target: es2018 + +const test = Object.assign({}, { test: true }); + +declare const p: Promise; +p.finally(); \ No newline at end of file