diff --git a/src/lib/es2015.symbol.wellknown.d.ts b/src/lib/es2015.symbol.wellknown.d.ts index ed5d1ddbb388f..36ab8c12f25b0 100644 --- a/src/lib/es2015.symbol.wellknown.d.ts +++ b/src/lib/es2015.symbol.wellknown.d.ts @@ -119,6 +119,10 @@ interface Map { readonly [Symbol.toStringTag]: string; } +interface ReadonlyMap { + readonly [Symbol.toStringTag]: string; +} + interface WeakMap { readonly [Symbol.toStringTag]: string; } @@ -127,6 +131,10 @@ interface Set { readonly [Symbol.toStringTag]: string; } +interface ReadonlySet { + readonly [Symbol.toStringTag]: string; +} + interface WeakSet { readonly [Symbol.toStringTag]: string; } diff --git a/tests/baselines/reference/symbolWellKnown.js b/tests/baselines/reference/symbolWellKnown.js new file mode 100644 index 0000000000000..20b5889fd3ab3 --- /dev/null +++ b/tests/baselines/reference/symbolWellKnown.js @@ -0,0 +1,52 @@ +//// [tests/cases/conformance/es6/Symbols/symbolWellKnown.ts] //// + +//// [symbolWellKnown.ts] +var symbol = Symbol(); +symbol[Symbol.toStringTag]; + +var map = new Map(); +map[Symbol.toStringTag]; + +var readonlyMap = >new Map(); +readonlyMap[Symbol.toStringTag]; + +var weakMap = new WeakMap(); +weakMap[Symbol.toStringTag]; + +var set = new Set(); +set[Symbol.toStringTag]; + +var readonlySet = >new Set(); +readonlySet[Symbol.toStringTag]; + +var weakSet = new WeakSet(); +weakSet[Symbol.toStringTag]; + +JSON[Symbol.toStringTag]; + +Math[Symbol.toStringTag]; + +var promise = new Promise(()=>{}); +promise[Symbol.toStringTag]; + + + +//// [symbolWellKnown.js] +var symbol = Symbol(); +symbol[Symbol.toStringTag]; +var map = new Map(); +map[Symbol.toStringTag]; +var readonlyMap = new Map(); +readonlyMap[Symbol.toStringTag]; +var weakMap = new WeakMap(); +weakMap[Symbol.toStringTag]; +var set = new Set(); +set[Symbol.toStringTag]; +var readonlySet = new Set(); +readonlySet[Symbol.toStringTag]; +var weakSet = new WeakSet(); +weakSet[Symbol.toStringTag]; +JSON[Symbol.toStringTag]; +Math[Symbol.toStringTag]; +var promise = new Promise(() => { }); +promise[Symbol.toStringTag]; diff --git a/tests/baselines/reference/symbolWellKnown.symbols b/tests/baselines/reference/symbolWellKnown.symbols new file mode 100644 index 0000000000000..565be41bb7310 --- /dev/null +++ b/tests/baselines/reference/symbolWellKnown.symbols @@ -0,0 +1,98 @@ +//// [tests/cases/conformance/es6/Symbols/symbolWellKnown.ts] //// + +=== symbolWellKnown.ts === +var symbol = Symbol(); +>symbol : Symbol(symbol, Decl(symbolWellKnown.ts, 0, 3)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +symbol[Symbol.toStringTag]; +>symbol : Symbol(symbol, Decl(symbolWellKnown.ts, 0, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var map = new Map(); +>map : Symbol(map, Decl(symbolWellKnown.ts, 3, 3)) +>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +map[Symbol.toStringTag]; +>map : Symbol(map, Decl(symbolWellKnown.ts, 3, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var readonlyMap = >new Map(); +>readonlyMap : Symbol(readonlyMap, Decl(symbolWellKnown.ts, 6, 3)) +>ReadonlyMap : Symbol(ReadonlyMap, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Map : Symbol(Map, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +readonlyMap[Symbol.toStringTag]; +>readonlyMap : Symbol(readonlyMap, Decl(symbolWellKnown.ts, 6, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var weakMap = new WeakMap(); +>weakMap : Symbol(weakMap, Decl(symbolWellKnown.ts, 9, 3)) +>WeakMap : Symbol(WeakMap, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +weakMap[Symbol.toStringTag]; +>weakMap : Symbol(weakMap, Decl(symbolWellKnown.ts, 9, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var set = new Set(); +>set : Symbol(set, Decl(symbolWellKnown.ts, 12, 3)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +set[Symbol.toStringTag]; +>set : Symbol(set, Decl(symbolWellKnown.ts, 12, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var readonlySet = >new Set(); +>readonlySet : Symbol(readonlySet, Decl(symbolWellKnown.ts, 15, 3)) +>ReadonlySet : Symbol(ReadonlySet, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +readonlySet[Symbol.toStringTag]; +>readonlySet : Symbol(readonlySet, Decl(symbolWellKnown.ts, 15, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var weakSet = new WeakSet(); +>weakSet : Symbol(weakSet, Decl(symbolWellKnown.ts, 18, 3)) +>WeakSet : Symbol(WeakSet, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +weakSet[Symbol.toStringTag]; +>weakSet : Symbol(weakSet, Decl(symbolWellKnown.ts, 18, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +JSON[Symbol.toStringTag]; +>JSON : Symbol(JSON, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +Math[Symbol.toStringTag]; +>Math : Symbol(Math, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + +var promise = new Promise(()=>{}); +>promise : Symbol(promise, Decl(symbolWellKnown.ts, 25, 3)) +>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, --, --)) + +promise[Symbol.toStringTag]; +>promise : Symbol(promise, Decl(symbolWellKnown.ts, 25, 3)) +>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) +>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --)) + + diff --git a/tests/baselines/reference/symbolWellKnown.types b/tests/baselines/reference/symbolWellKnown.types new file mode 100644 index 0000000000000..bc3b724b3093c --- /dev/null +++ b/tests/baselines/reference/symbolWellKnown.types @@ -0,0 +1,194 @@ +//// [tests/cases/conformance/es6/Symbols/symbolWellKnown.ts] //// + +=== symbolWellKnown.ts === +var symbol = Symbol(); +>symbol : symbol +> : ^^^^^^ +>Symbol() : symbol +> : ^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ + +symbol[Symbol.toStringTag]; +>symbol[Symbol.toStringTag] : string +> : ^^^^^^ +>symbol : symbol +> : ^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var map = new Map(); +>map : Map +> : ^^^^^^^^^^^^^ +>new Map() : Map +> : ^^^^^^^^^^^^^ +>Map : MapConstructor +> : ^^^^^^^^^^^^^^ + +map[Symbol.toStringTag]; +>map[Symbol.toStringTag] : string +> : ^^^^^^ +>map : Map +> : ^^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var readonlyMap = >new Map(); +>readonlyMap : ReadonlyMap +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>>new Map() : ReadonlyMap +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>new Map() : Map +> : ^^^^^^^^^^^^^ +>Map : MapConstructor +> : ^^^^^^^^^^^^^^ + +readonlyMap[Symbol.toStringTag]; +>readonlyMap[Symbol.toStringTag] : string +> : ^^^^^^ +>readonlyMap : ReadonlyMap +> : ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var weakMap = new WeakMap(); +>weakMap : WeakMap +> : ^^^^^^^^^^^^^^^^^^^^ +>new WeakMap() : WeakMap +> : ^^^^^^^^^^^^^^^^^^^^ +>WeakMap : WeakMapConstructor +> : ^^^^^^^^^^^^^^^^^^ + +weakMap[Symbol.toStringTag]; +>weakMap[Symbol.toStringTag] : string +> : ^^^^^^ +>weakMap : WeakMap +> : ^^^^^^^^^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var set = new Set(); +>set : Set +> : ^^^^^^^^^^^^ +>new Set() : Set +> : ^^^^^^^^^^^^ +>Set : SetConstructor +> : ^^^^^^^^^^^^^^ + +set[Symbol.toStringTag]; +>set[Symbol.toStringTag] : string +> : ^^^^^^ +>set : Set +> : ^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var readonlySet = >new Set(); +>readonlySet : ReadonlySet +> : ^^^^^^^^^^^^^^^^ +>>new Set() : ReadonlySet +> : ^^^^^^^^^^^^^^^^ +>new Set() : Set +> : ^^^^^^^^ +>Set : SetConstructor +> : ^^^^^^^^^^^^^^ + +readonlySet[Symbol.toStringTag]; +>readonlySet[Symbol.toStringTag] : string +> : ^^^^^^ +>readonlySet : ReadonlySet +> : ^^^^^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var weakSet = new WeakSet(); +>weakSet : WeakSet +> : ^^^^^^^^^^^^^^^ +>new WeakSet() : WeakSet +> : ^^^^^^^^^^^^^^^ +>WeakSet : WeakSetConstructor +> : ^^^^^^^^^^^^^^^^^^ + +weakSet[Symbol.toStringTag]; +>weakSet[Symbol.toStringTag] : string +> : ^^^^^^ +>weakSet : WeakSet +> : ^^^^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +JSON[Symbol.toStringTag]; +>JSON[Symbol.toStringTag] : string +> : ^^^^^^ +>JSON : JSON +> : ^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +Math[Symbol.toStringTag]; +>Math[Symbol.toStringTag] : string +> : ^^^^^^ +>Math : Math +> : ^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + +var promise = new Promise(()=>{}); +>promise : Promise +> : ^^^^^^^^^^^^^^^^ +>new Promise(()=>{}) : Promise +> : ^^^^^^^^^^^^^^^^ +>Promise : PromiseConstructor +> : ^^^^^^^^^^^^^^^^^^ +>()=>{} : () => void +> : ^^^^^^^^^^ + +promise[Symbol.toStringTag]; +>promise[Symbol.toStringTag] : string +> : ^^^^^^ +>promise : Promise +> : ^^^^^^^^^^^^^^^^ +>Symbol.toStringTag : unique symbol +> : ^^^^^^^^^^^^^ +>Symbol : SymbolConstructor +> : ^^^^^^^^^^^^^^^^^ +>toStringTag : unique symbol +> : ^^^^^^^^^^^^^ + + diff --git a/tests/cases/conformance/es6/Symbols/symbolWellKnown.ts b/tests/cases/conformance/es6/Symbols/symbolWellKnown.ts new file mode 100644 index 0000000000000..657d74d7df5c4 --- /dev/null +++ b/tests/cases/conformance/es6/Symbols/symbolWellKnown.ts @@ -0,0 +1,30 @@ +// @target: es2015 + +var symbol = Symbol(); +symbol[Symbol.toStringTag]; + +var map = new Map(); +map[Symbol.toStringTag]; + +var readonlyMap = >new Map(); +readonlyMap[Symbol.toStringTag]; + +var weakMap = new WeakMap(); +weakMap[Symbol.toStringTag]; + +var set = new Set(); +set[Symbol.toStringTag]; + +var readonlySet = >new Set(); +readonlySet[Symbol.toStringTag]; + +var weakSet = new WeakSet(); +weakSet[Symbol.toStringTag]; + +JSON[Symbol.toStringTag]; + +Math[Symbol.toStringTag]; + +var promise = new Promise(()=>{}); +promise[Symbol.toStringTag]; +