From d3dd48f07b44f25bb13b4b5a79cb835c1ca0ad8a Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 9 Apr 2015 12:35:11 -0700 Subject: [PATCH 1/5] Remove 'isRegExp'. --- src/lib/es6.d.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 8590e2273e0..83ae724b768 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -50,11 +50,6 @@ interface SymbolConstructor { */ isConcatSpreadable: symbol; - /** - * A Boolean value that if true indicates that an object may be used as a regular expression. - */ - isRegExp: symbol; - /** * A method that returns the default iterator for an object.Called by the semantics of the * for-of statement. @@ -598,8 +593,6 @@ interface Math { } interface RegExp { - [Symbol.isRegExp]: boolean; - /** * Matches a string with a regular expression, and returns an array containing the results of * that search. From f75c9a66248d28b8cd4e879b67b6b685b347fcb6 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 9 Apr 2015 12:52:31 -0700 Subject: [PATCH 2/5] Added 'flags' to RegExp.prototype. --- src/lib/core.d.ts | 2 +- src/lib/es6.d.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/lib/core.d.ts b/src/lib/core.d.ts index 3d830ae5203..822b7ca5202 100644 --- a/src/lib/core.d.ts +++ b/src/lib/core.d.ts @@ -823,7 +823,7 @@ interface RegExp { */ test(string: string): boolean; - /** Returns a copy of the text of the regular expression pattern. Read-only. The rgExp argument is a Regular expression object. It can be a variable name or a literal. */ + /** Returns a copy of the text of the regular expression pattern. Read-only. The regExp argument is a Regular expression object. It can be a variable name or a literal. */ source: string; /** Returns a Boolean value indicating the state of the global flag (g) used with a regular expression. Default is false. Read-only. */ diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 83ae724b768..2af11c92ab9 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -624,6 +624,20 @@ interface RegExp { */ split(string: string, limit?: number): string[]; + /** + * Returns a string indicating the flags of the regular expression in question. This field is read-only. + * The characters in this string are sequenced and concatenated in the following order: + * + * - "g" for global + * - "i" for ignoreCase + * - "m" for multiline + * - "u" for unicode + * - "y" for sticky + * + * If no flags are set, the value is the empty string. + */ + flags: string; + /** * Returns a Boolean value indicating the state of the sticky flag (y) used with a regular * expression. Default is false. Read-only. From 33028d5199e8d619ca76d519518bc911c60ca2fa Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 9 Apr 2015 14:06:57 -0700 Subject: [PATCH 3/5] Replace uses of 'Symbol.isRegExp' with 'Symbol.toPrimitive'. --- src/lib/es6.d.ts | 10 +++++----- .../conformance/es6/Symbols/symbolDeclarationEmit1.ts | 2 +- .../conformance/es6/Symbols/symbolDeclarationEmit11.ts | 4 ++-- .../conformance/es6/Symbols/symbolDeclarationEmit12.ts | 4 ++-- .../conformance/es6/Symbols/symbolDeclarationEmit13.ts | 2 +- .../conformance/es6/Symbols/symbolDeclarationEmit14.ts | 2 +- .../conformance/es6/Symbols/symbolDeclarationEmit2.ts | 2 +- .../conformance/es6/Symbols/symbolDeclarationEmit3.ts | 6 +++--- .../conformance/es6/Symbols/symbolDeclarationEmit4.ts | 4 ++-- .../cases/conformance/es6/Symbols/symbolProperty21.ts | 2 +- tests/cases/conformance/es6/Symbols/symbolProperty5.ts | 2 +- tests/cases/conformance/es6/Symbols/symbolProperty6.ts | 2 +- tests/cases/conformance/es6/Symbols/symbolProperty8.ts | 2 +- .../ecmascript6/Symbols/parserSymbolProperty4.ts | 2 +- .../ecmascript6/Symbols/parserSymbolProperty5.ts | 2 +- 15 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/lib/es6.d.ts b/src/lib/es6.d.ts index 2af11c92ab9..b81a3341a6c 100644 --- a/src/lib/es6.d.ts +++ b/src/lib/es6.d.ts @@ -52,19 +52,19 @@ interface SymbolConstructor { /** * A method that returns the default iterator for an object.Called by the semantics of the - * for-of statement. + * for-of statement. */ iterator: symbol; /** * A method that converts an object to a corresponding primitive value.Called by the ToPrimitive - * abstract operation. + * abstract operation. */ toPrimitive: symbol; /** - * A String value that is used in the creation of the default string description of an object. - * Called by the built- in method Object.prototype.toString. + * A String value that is used in the creation of the default string description of an object. + * Called by the built-in method Object.prototype.toString. */ toStringTag: symbol; @@ -106,7 +106,7 @@ interface ObjectConstructor { getOwnPropertySymbols(o: any): symbol[]; /** - * Returns true if the values are the same value, false otherwise. + * Returns true if the values are the same value, false otherwise. * @param value1 The first value. * @param value2 The second value. */ diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit1.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit1.ts index b99806a1eee..1f4755e5203 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit1.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit1.ts @@ -1,5 +1,5 @@ //@target: ES6 //@declaration: true class C { - [Symbol.isRegExp]: number; + [Symbol.toPrimitive]: number; } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts index 4b88ab55980..26868e60d00 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts @@ -3,6 +3,6 @@ class C { static [Symbol.iterator] = 0; static [Symbol.toPrimitive]() { } - static get [Symbol.isRegExp]() { return ""; } - static set [Symbol.isRegExp](x) { } + static get [Symbol.toPrimitive]() { return ""; } + static set [Symbol.toPrimitive](x) { } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts index c18b470d35d..8422b1ec016 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts @@ -8,7 +8,7 @@ module M { [Symbol.isConcatSpreadable](): I { return undefined } - get [Symbol.isRegExp]() { return undefined; } - set [Symbol.isRegExp](x: I) { } + get [Symbol.toPrimitive]() { return undefined; } + set [Symbol.toPrimitive](x: I) { } } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit13.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit13.ts index 18568e853e8..4e65648acca 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit13.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit13.ts @@ -1,6 +1,6 @@ //@target: ES6 //@declaration: true class C { - get [Symbol.isRegExp]() { return ""; } + get [Symbol.toPrimitive]() { return ""; } set [Symbol.toStringTag](x) { } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit14.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit14.ts index 312476628b8..c31629c82df 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit14.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit14.ts @@ -1,6 +1,6 @@ //@target: ES6 //@declaration: true class C { - get [Symbol.isRegExp]() { return ""; } + get [Symbol.toPrimitive]() { return ""; } get [Symbol.toStringTag]() { return ""; } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit2.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit2.ts index 420e1c84906..f5b00918b7e 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit2.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit2.ts @@ -1,5 +1,5 @@ //@target: ES6 //@declaration: true class C { - [Symbol.isRegExp] = ""; + [Symbol.toPrimitive] = ""; } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit3.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit3.ts index b70ee3c15ac..553aa871c38 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit3.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit3.ts @@ -1,7 +1,7 @@ //@target: ES6 //@declaration: true class C { - [Symbol.isRegExp](x: number); - [Symbol.isRegExp](x: string); - [Symbol.isRegExp](x: any) { } + [Symbol.toPrimitive](x: number); + [Symbol.toPrimitive](x: string); + [Symbol.toPrimitive](x: any) { } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit4.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit4.ts index dde80577fa4..01c75fd05bf 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit4.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit4.ts @@ -1,6 +1,6 @@ //@target: ES6 //@declaration: true class C { - get [Symbol.isRegExp]() { return ""; } - set [Symbol.isRegExp](x) { } + get [Symbol.toPrimitive]() { return ""; } + set [Symbol.toPrimitive](x) { } } \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolProperty21.ts b/tests/cases/conformance/es6/Symbols/symbolProperty21.ts index 52e84a00425..f72e93e23a4 100644 --- a/tests/cases/conformance/es6/Symbols/symbolProperty21.ts +++ b/tests/cases/conformance/es6/Symbols/symbolProperty21.ts @@ -8,6 +8,6 @@ declare function foo(p: I): { t: T; u: U }; foo({ [Symbol.isConcatSpreadable]: "", - [Symbol.isRegExp]: 0, + [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true }); \ No newline at end of file diff --git a/tests/cases/conformance/es6/Symbols/symbolProperty5.ts b/tests/cases/conformance/es6/Symbols/symbolProperty5.ts index 84cb12a9de8..56afcda2ed1 100644 --- a/tests/cases/conformance/es6/Symbols/symbolProperty5.ts +++ b/tests/cases/conformance/es6/Symbols/symbolProperty5.ts @@ -1,7 +1,7 @@ //@target: ES6 var x = { [Symbol.iterator]: 0, - [Symbol.isRegExp]() { }, + [Symbol.toPrimitive]() { }, get [Symbol.toStringTag]() { return 0; } diff --git a/tests/cases/conformance/es6/Symbols/symbolProperty6.ts b/tests/cases/conformance/es6/Symbols/symbolProperty6.ts index ff17b977c38..24515e92a56 100644 --- a/tests/cases/conformance/es6/Symbols/symbolProperty6.ts +++ b/tests/cases/conformance/es6/Symbols/symbolProperty6.ts @@ -2,7 +2,7 @@ class C { [Symbol.iterator] = 0; [Symbol.unscopables]: number; - [Symbol.isRegExp]() { } + [Symbol.toPrimitive]() { } get [Symbol.toStringTag]() { return 0; } diff --git a/tests/cases/conformance/es6/Symbols/symbolProperty8.ts b/tests/cases/conformance/es6/Symbols/symbolProperty8.ts index 14b4a32688f..19c6583777e 100644 --- a/tests/cases/conformance/es6/Symbols/symbolProperty8.ts +++ b/tests/cases/conformance/es6/Symbols/symbolProperty8.ts @@ -1,5 +1,5 @@ //@target: ES6 interface I { [Symbol.unscopables]: number; - [Symbol.isRegExp](); + [Symbol.toPrimitive](); } \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty4.ts b/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty4.ts index 6a0962f15cb..efb5a6819b0 100644 --- a/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty4.ts +++ b/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty4.ts @@ -1,4 +1,4 @@ //@target: ES6 declare class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; } \ No newline at end of file diff --git a/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty5.ts b/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty5.ts index 5f3fbaeaaea..629d7ce0126 100644 --- a/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty5.ts +++ b/tests/cases/conformance/parser/ecmascript6/Symbols/parserSymbolProperty5.ts @@ -1,4 +1,4 @@ //@target: ES6 class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; } \ No newline at end of file From 8aeff70e48dc4d9221b57e9810b0e5e4a4920af8 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 9 Apr 2015 14:14:55 -0700 Subject: [PATCH 4/5] Fix a test so that we don't get duplicate declaration errors. --- tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts index 26868e60d00..137ada282f3 100644 --- a/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts +++ b/tests/cases/conformance/es6/Symbols/symbolDeclarationEmit11.ts @@ -2,7 +2,7 @@ //@declaration: true class C { static [Symbol.iterator] = 0; - static [Symbol.toPrimitive]() { } + static [Symbol.isConcatSpreadable]() { } static get [Symbol.toPrimitive]() { return ""; } static set [Symbol.toPrimitive](x) { } } \ No newline at end of file From 3d0655d0889844e7894a549908adc37420b63d7c Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Thu, 9 Apr 2015 14:28:29 -0700 Subject: [PATCH 5/5] Updated baselines. --- .../reference/decoratorOnClassMethod11.js | 14 ++++++------- .../reference/parserSymbolProperty4.js | 2 +- .../reference/parserSymbolProperty4.types | 6 +++--- .../reference/parserSymbolProperty5.js | 2 +- .../reference/parserSymbolProperty5.types | 6 +++--- .../reference/symbolDeclarationEmit1.js | 4 ++-- .../reference/symbolDeclarationEmit1.types | 6 +++--- .../reference/symbolDeclarationEmit11.js | 16 +++++++------- .../reference/symbolDeclarationEmit11.types | 18 ++++++++-------- .../symbolDeclarationEmit12.errors.txt | 21 +++++++++++++------ .../reference/symbolDeclarationEmit12.js | 8 +++---- .../reference/symbolDeclarationEmit13.js | 6 +++--- .../reference/symbolDeclarationEmit13.types | 6 +++--- .../reference/symbolDeclarationEmit14.js | 6 +++--- .../reference/symbolDeclarationEmit14.types | 6 +++--- .../reference/symbolDeclarationEmit2.js | 6 +++--- .../reference/symbolDeclarationEmit2.types | 6 +++--- .../reference/symbolDeclarationEmit3.js | 12 +++++------ .../reference/symbolDeclarationEmit3.types | 18 ++++++++-------- .../reference/symbolDeclarationEmit4.js | 10 ++++----- .../reference/symbolDeclarationEmit4.types | 12 +++++------ tests/baselines/reference/symbolProperty21.js | 4 ++-- .../reference/symbolProperty21.types | 10 ++++----- tests/baselines/reference/symbolProperty5.js | 4 ++-- .../baselines/reference/symbolProperty5.types | 10 ++++----- tests/baselines/reference/symbolProperty6.js | 4 ++-- .../baselines/reference/symbolProperty6.types | 6 +++--- tests/baselines/reference/symbolProperty8.js | 2 +- .../baselines/reference/symbolProperty8.types | 6 +++--- 29 files changed, 123 insertions(+), 114 deletions(-) diff --git a/tests/baselines/reference/decoratorOnClassMethod11.js b/tests/baselines/reference/decoratorOnClassMethod11.js index 71d4298f02c..f8276de2fe3 100644 --- a/tests/baselines/reference/decoratorOnClassMethod11.js +++ b/tests/baselines/reference/decoratorOnClassMethod11.js @@ -1,11 +1,11 @@ //// [decoratorOnClassMethod11.ts] -module M { - class C { - decorator(target: Object, key: string): void { } - - @this.decorator - method() { } - } +module M { + class C { + decorator(target: Object, key: string): void { } + + @this.decorator + method() { } + } } //// [decoratorOnClassMethod11.js] diff --git a/tests/baselines/reference/parserSymbolProperty4.js b/tests/baselines/reference/parserSymbolProperty4.js index f79db0b1d79..698798351ac 100644 --- a/tests/baselines/reference/parserSymbolProperty4.js +++ b/tests/baselines/reference/parserSymbolProperty4.js @@ -1,6 +1,6 @@ //// [parserSymbolProperty4.ts] declare class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; } //// [parserSymbolProperty4.js] diff --git a/tests/baselines/reference/parserSymbolProperty4.types b/tests/baselines/reference/parserSymbolProperty4.types index a9070897fa8..dbf65454826 100644 --- a/tests/baselines/reference/parserSymbolProperty4.types +++ b/tests/baselines/reference/parserSymbolProperty4.types @@ -2,8 +2,8 @@ declare class C { >C : C - [Symbol.isRegExp]: string; ->Symbol.isRegExp : symbol + [Symbol.toPrimitive]: string; +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol } diff --git a/tests/baselines/reference/parserSymbolProperty5.js b/tests/baselines/reference/parserSymbolProperty5.js index a8b1d564fa8..62a805602d1 100644 --- a/tests/baselines/reference/parserSymbolProperty5.js +++ b/tests/baselines/reference/parserSymbolProperty5.js @@ -1,6 +1,6 @@ //// [parserSymbolProperty5.ts] class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; } //// [parserSymbolProperty5.js] diff --git a/tests/baselines/reference/parserSymbolProperty5.types b/tests/baselines/reference/parserSymbolProperty5.types index 8a171598e83..c854aa6a26d 100644 --- a/tests/baselines/reference/parserSymbolProperty5.types +++ b/tests/baselines/reference/parserSymbolProperty5.types @@ -2,8 +2,8 @@ class C { >C : C - [Symbol.isRegExp]: string; ->Symbol.isRegExp : symbol + [Symbol.toPrimitive]: string; +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit1.js b/tests/baselines/reference/symbolDeclarationEmit1.js index 7c3b39b9d86..b8ca5495ba7 100644 --- a/tests/baselines/reference/symbolDeclarationEmit1.js +++ b/tests/baselines/reference/symbolDeclarationEmit1.js @@ -1,6 +1,6 @@ //// [symbolDeclarationEmit1.ts] class C { - [Symbol.isRegExp]: number; + [Symbol.toPrimitive]: number; } //// [symbolDeclarationEmit1.js] @@ -10,5 +10,5 @@ class C { //// [symbolDeclarationEmit1.d.ts] declare class C { - [Symbol.isRegExp]: number; + [Symbol.toPrimitive]: number; } diff --git a/tests/baselines/reference/symbolDeclarationEmit1.types b/tests/baselines/reference/symbolDeclarationEmit1.types index e35bbfe8861..741f2a74bd7 100644 --- a/tests/baselines/reference/symbolDeclarationEmit1.types +++ b/tests/baselines/reference/symbolDeclarationEmit1.types @@ -2,8 +2,8 @@ class C { >C : C - [Symbol.isRegExp]: number; ->Symbol.isRegExp : symbol + [Symbol.toPrimitive]: number; +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit11.js b/tests/baselines/reference/symbolDeclarationEmit11.js index b5983177587..25af4c43064 100644 --- a/tests/baselines/reference/symbolDeclarationEmit11.js +++ b/tests/baselines/reference/symbolDeclarationEmit11.js @@ -1,16 +1,16 @@ //// [symbolDeclarationEmit11.ts] class C { static [Symbol.iterator] = 0; - static [Symbol.toPrimitive]() { } - static get [Symbol.isRegExp]() { return ""; } - static set [Symbol.isRegExp](x) { } + static [Symbol.isConcatSpreadable]() { } + static get [Symbol.toPrimitive]() { return ""; } + static set [Symbol.toPrimitive](x) { } } //// [symbolDeclarationEmit11.js] class C { - static [Symbol.toPrimitive]() { } - static get [Symbol.isRegExp]() { return ""; } - static set [Symbol.isRegExp](x) { } + static [Symbol.isConcatSpreadable]() { } + static get [Symbol.toPrimitive]() { return ""; } + static set [Symbol.toPrimitive](x) { } } C[Symbol.iterator] = 0; @@ -18,6 +18,6 @@ C[Symbol.iterator] = 0; //// [symbolDeclarationEmit11.d.ts] declare class C { static [Symbol.iterator]: number; - static [Symbol.toPrimitive](): void; - static [Symbol.isRegExp]: string; + static [Symbol.isConcatSpreadable](): void; + static [Symbol.toPrimitive]: string; } diff --git a/tests/baselines/reference/symbolDeclarationEmit11.types b/tests/baselines/reference/symbolDeclarationEmit11.types index 1bf58f205d1..9189e69dc04 100644 --- a/tests/baselines/reference/symbolDeclarationEmit11.types +++ b/tests/baselines/reference/symbolDeclarationEmit11.types @@ -7,19 +7,19 @@ class C { >Symbol : SymbolConstructor >iterator : symbol - static [Symbol.toPrimitive]() { } + static [Symbol.isConcatSpreadable]() { } +>Symbol.isConcatSpreadable : symbol +>Symbol : SymbolConstructor +>isConcatSpreadable : symbol + + static get [Symbol.toPrimitive]() { return ""; } >Symbol.toPrimitive : symbol >Symbol : SymbolConstructor >toPrimitive : symbol - static get [Symbol.isRegExp]() { return ""; } ->Symbol.isRegExp : symbol + static set [Symbol.toPrimitive](x) { } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol - - static set [Symbol.isRegExp](x) { } ->Symbol.isRegExp : symbol ->Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol >x : string } diff --git a/tests/baselines/reference/symbolDeclarationEmit12.errors.txt b/tests/baselines/reference/symbolDeclarationEmit12.errors.txt index 0e2f6b828f6..cdc712f698d 100644 --- a/tests/baselines/reference/symbolDeclarationEmit12.errors.txt +++ b/tests/baselines/reference/symbolDeclarationEmit12.errors.txt @@ -1,10 +1,13 @@ tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(4,28): error TS4031: Public property '[Symbol.iterator]' of exported class has or is using private name 'I'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(5,9): error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(5,33): error TS4073: Parameter 'x' of public method from exported class has or is using private name 'I'. tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(6,40): error TS4055: Return type of public method from exported class has or is using private name 'I'. -tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,34): error TS4037: Parameter '[Symbol.isRegExp]' of public property setter from exported class has or is using private name 'I'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(9,13): error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,13): error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. +tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,37): error TS4037: Parameter '[Symbol.toPrimitive]' of public property setter from exported class has or is using private name 'I'. -==== tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts (4 errors) ==== +==== tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts (7 errors) ==== module M { interface I { } export class C { @@ -12,6 +15,8 @@ tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,34): error TS4 ~ !!! error TS4031: Public property '[Symbol.iterator]' of exported class has or is using private name 'I'. [Symbol.toPrimitive](x: I) { } + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. ~ !!! error TS4073: Parameter 'x' of public method from exported class has or is using private name 'I'. [Symbol.isConcatSpreadable](): I { @@ -19,9 +24,13 @@ tests/cases/conformance/es6/Symbols/symbolDeclarationEmit12.ts(10,34): error TS4 !!! error TS4055: Return type of public method from exported class has or is using private name 'I'. return undefined } - get [Symbol.isRegExp]() { return undefined; } - set [Symbol.isRegExp](x: I) { } - ~ -!!! error TS4037: Parameter '[Symbol.isRegExp]' of public property setter from exported class has or is using private name 'I'. + get [Symbol.toPrimitive]() { return undefined; } + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. + set [Symbol.toPrimitive](x: I) { } + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2300: Duplicate identifier '[Symbol.toPrimitive]'. + ~ +!!! error TS4037: Parameter '[Symbol.toPrimitive]' of public property setter from exported class has or is using private name 'I'. } } \ No newline at end of file diff --git a/tests/baselines/reference/symbolDeclarationEmit12.js b/tests/baselines/reference/symbolDeclarationEmit12.js index ce7b3861b0b..bd50f6566ac 100644 --- a/tests/baselines/reference/symbolDeclarationEmit12.js +++ b/tests/baselines/reference/symbolDeclarationEmit12.js @@ -7,8 +7,8 @@ module M { [Symbol.isConcatSpreadable](): I { return undefined } - get [Symbol.isRegExp]() { return undefined; } - set [Symbol.isRegExp](x: I) { } + get [Symbol.toPrimitive]() { return undefined; } + set [Symbol.toPrimitive](x: I) { } } } @@ -20,8 +20,8 @@ var M; [Symbol.isConcatSpreadable]() { return undefined; } - get [Symbol.isRegExp]() { return undefined; } - set [Symbol.isRegExp](x) { } + get [Symbol.toPrimitive]() { return undefined; } + set [Symbol.toPrimitive](x) { } } M.C = C; })(M || (M = {})); diff --git a/tests/baselines/reference/symbolDeclarationEmit13.js b/tests/baselines/reference/symbolDeclarationEmit13.js index b309cfb2f64..8111672866a 100644 --- a/tests/baselines/reference/symbolDeclarationEmit13.js +++ b/tests/baselines/reference/symbolDeclarationEmit13.js @@ -1,18 +1,18 @@ //// [symbolDeclarationEmit13.ts] class C { - get [Symbol.isRegExp]() { return ""; } + get [Symbol.toPrimitive]() { return ""; } set [Symbol.toStringTag](x) { } } //// [symbolDeclarationEmit13.js] class C { - get [Symbol.isRegExp]() { return ""; } + get [Symbol.toPrimitive]() { return ""; } set [Symbol.toStringTag](x) { } } //// [symbolDeclarationEmit13.d.ts] declare class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; [Symbol.toStringTag]: any; } diff --git a/tests/baselines/reference/symbolDeclarationEmit13.types b/tests/baselines/reference/symbolDeclarationEmit13.types index 6579e49c426..92ad2ad0f68 100644 --- a/tests/baselines/reference/symbolDeclarationEmit13.types +++ b/tests/baselines/reference/symbolDeclarationEmit13.types @@ -2,10 +2,10 @@ class C { >C : C - get [Symbol.isRegExp]() { return ""; } ->Symbol.isRegExp : symbol + get [Symbol.toPrimitive]() { return ""; } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol set [Symbol.toStringTag](x) { } >Symbol.toStringTag : symbol diff --git a/tests/baselines/reference/symbolDeclarationEmit14.js b/tests/baselines/reference/symbolDeclarationEmit14.js index f24ce11ee77..b8a6b3e4092 100644 --- a/tests/baselines/reference/symbolDeclarationEmit14.js +++ b/tests/baselines/reference/symbolDeclarationEmit14.js @@ -1,18 +1,18 @@ //// [symbolDeclarationEmit14.ts] class C { - get [Symbol.isRegExp]() { return ""; } + get [Symbol.toPrimitive]() { return ""; } get [Symbol.toStringTag]() { return ""; } } //// [symbolDeclarationEmit14.js] class C { - get [Symbol.isRegExp]() { return ""; } + get [Symbol.toPrimitive]() { return ""; } get [Symbol.toStringTag]() { return ""; } } //// [symbolDeclarationEmit14.d.ts] declare class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; [Symbol.toStringTag]: string; } diff --git a/tests/baselines/reference/symbolDeclarationEmit14.types b/tests/baselines/reference/symbolDeclarationEmit14.types index f3e7c32047c..f72bd774709 100644 --- a/tests/baselines/reference/symbolDeclarationEmit14.types +++ b/tests/baselines/reference/symbolDeclarationEmit14.types @@ -2,10 +2,10 @@ class C { >C : C - get [Symbol.isRegExp]() { return ""; } ->Symbol.isRegExp : symbol + get [Symbol.toPrimitive]() { return ""; } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol get [Symbol.toStringTag]() { return ""; } >Symbol.toStringTag : symbol diff --git a/tests/baselines/reference/symbolDeclarationEmit2.js b/tests/baselines/reference/symbolDeclarationEmit2.js index 5558bebc64e..3fde1f6b467 100644 --- a/tests/baselines/reference/symbolDeclarationEmit2.js +++ b/tests/baselines/reference/symbolDeclarationEmit2.js @@ -1,17 +1,17 @@ //// [symbolDeclarationEmit2.ts] class C { - [Symbol.isRegExp] = ""; + [Symbol.toPrimitive] = ""; } //// [symbolDeclarationEmit2.js] class C { constructor() { - this[Symbol.isRegExp] = ""; + this[Symbol.toPrimitive] = ""; } } //// [symbolDeclarationEmit2.d.ts] declare class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; } diff --git a/tests/baselines/reference/symbolDeclarationEmit2.types b/tests/baselines/reference/symbolDeclarationEmit2.types index 4844b2b8f84..4147eeae401 100644 --- a/tests/baselines/reference/symbolDeclarationEmit2.types +++ b/tests/baselines/reference/symbolDeclarationEmit2.types @@ -2,8 +2,8 @@ class C { >C : C - [Symbol.isRegExp] = ""; ->Symbol.isRegExp : symbol + [Symbol.toPrimitive] = ""; +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol } diff --git a/tests/baselines/reference/symbolDeclarationEmit3.js b/tests/baselines/reference/symbolDeclarationEmit3.js index 88087982013..09cea3468ef 100644 --- a/tests/baselines/reference/symbolDeclarationEmit3.js +++ b/tests/baselines/reference/symbolDeclarationEmit3.js @@ -1,18 +1,18 @@ //// [symbolDeclarationEmit3.ts] class C { - [Symbol.isRegExp](x: number); - [Symbol.isRegExp](x: string); - [Symbol.isRegExp](x: any) { } + [Symbol.toPrimitive](x: number); + [Symbol.toPrimitive](x: string); + [Symbol.toPrimitive](x: any) { } } //// [symbolDeclarationEmit3.js] class C { - [Symbol.isRegExp](x) { } + [Symbol.toPrimitive](x) { } } //// [symbolDeclarationEmit3.d.ts] declare class C { - [Symbol.isRegExp](x: number): any; - [Symbol.isRegExp](x: string): any; + [Symbol.toPrimitive](x: number): any; + [Symbol.toPrimitive](x: string): any; } diff --git a/tests/baselines/reference/symbolDeclarationEmit3.types b/tests/baselines/reference/symbolDeclarationEmit3.types index 0ea55d876b3..699a7f4c864 100644 --- a/tests/baselines/reference/symbolDeclarationEmit3.types +++ b/tests/baselines/reference/symbolDeclarationEmit3.types @@ -2,21 +2,21 @@ class C { >C : C - [Symbol.isRegExp](x: number); ->Symbol.isRegExp : symbol + [Symbol.toPrimitive](x: number); +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol >x : number - [Symbol.isRegExp](x: string); ->Symbol.isRegExp : symbol + [Symbol.toPrimitive](x: string); +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol >x : string - [Symbol.isRegExp](x: any) { } ->Symbol.isRegExp : symbol + [Symbol.toPrimitive](x: any) { } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol >x : any } diff --git a/tests/baselines/reference/symbolDeclarationEmit4.js b/tests/baselines/reference/symbolDeclarationEmit4.js index 67ec3477f7d..75680aacb66 100644 --- a/tests/baselines/reference/symbolDeclarationEmit4.js +++ b/tests/baselines/reference/symbolDeclarationEmit4.js @@ -1,17 +1,17 @@ //// [symbolDeclarationEmit4.ts] class C { - get [Symbol.isRegExp]() { return ""; } - set [Symbol.isRegExp](x) { } + get [Symbol.toPrimitive]() { return ""; } + set [Symbol.toPrimitive](x) { } } //// [symbolDeclarationEmit4.js] class C { - get [Symbol.isRegExp]() { return ""; } - set [Symbol.isRegExp](x) { } + get [Symbol.toPrimitive]() { return ""; } + set [Symbol.toPrimitive](x) { } } //// [symbolDeclarationEmit4.d.ts] declare class C { - [Symbol.isRegExp]: string; + [Symbol.toPrimitive]: string; } diff --git a/tests/baselines/reference/symbolDeclarationEmit4.types b/tests/baselines/reference/symbolDeclarationEmit4.types index aeb24fc146c..5c3c0b0d6b6 100644 --- a/tests/baselines/reference/symbolDeclarationEmit4.types +++ b/tests/baselines/reference/symbolDeclarationEmit4.types @@ -2,14 +2,14 @@ class C { >C : C - get [Symbol.isRegExp]() { return ""; } ->Symbol.isRegExp : symbol + get [Symbol.toPrimitive]() { return ""; } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol - set [Symbol.isRegExp](x) { } ->Symbol.isRegExp : symbol + set [Symbol.toPrimitive](x) { } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol >x : string } diff --git a/tests/baselines/reference/symbolProperty21.js b/tests/baselines/reference/symbolProperty21.js index 13eaf06a97b..8a93cc2de78 100644 --- a/tests/baselines/reference/symbolProperty21.js +++ b/tests/baselines/reference/symbolProperty21.js @@ -8,13 +8,13 @@ declare function foo(p: I): { t: T; u: U }; foo({ [Symbol.isConcatSpreadable]: "", - [Symbol.isRegExp]: 0, + [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true }); //// [symbolProperty21.js] foo({ [Symbol.isConcatSpreadable]: "", - [Symbol.isRegExp]: 0, + [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true }); diff --git a/tests/baselines/reference/symbolProperty21.types b/tests/baselines/reference/symbolProperty21.types index 053dae46479..cb4b5e74473 100644 --- a/tests/baselines/reference/symbolProperty21.types +++ b/tests/baselines/reference/symbolProperty21.types @@ -31,19 +31,19 @@ declare function foo(p: I): { t: T; u: U }; >U : U foo({ ->foo({ [Symbol.isConcatSpreadable]: "", [Symbol.isRegExp]: 0, [Symbol.unscopables]: true}) : { t: boolean; u: string; } +>foo({ [Symbol.isConcatSpreadable]: "", [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true}) : { t: boolean; u: string; } >foo : (p: I) => { t: T; u: U; } ->{ [Symbol.isConcatSpreadable]: "", [Symbol.isRegExp]: 0, [Symbol.unscopables]: true} : { [Symbol.isConcatSpreadable]: string; [Symbol.isRegExp]: number; [Symbol.unscopables]: boolean; } +>{ [Symbol.isConcatSpreadable]: "", [Symbol.toPrimitive]: 0, [Symbol.unscopables]: true} : { [Symbol.isConcatSpreadable]: string; [Symbol.toPrimitive]: number; [Symbol.unscopables]: boolean; } [Symbol.isConcatSpreadable]: "", >Symbol.isConcatSpreadable : symbol >Symbol : SymbolConstructor >isConcatSpreadable : symbol - [Symbol.isRegExp]: 0, ->Symbol.isRegExp : symbol + [Symbol.toPrimitive]: 0, +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol [Symbol.unscopables]: true >Symbol.unscopables : symbol diff --git a/tests/baselines/reference/symbolProperty5.js b/tests/baselines/reference/symbolProperty5.js index c7c88681f8a..5726e42edf5 100644 --- a/tests/baselines/reference/symbolProperty5.js +++ b/tests/baselines/reference/symbolProperty5.js @@ -1,7 +1,7 @@ //// [symbolProperty5.ts] var x = { [Symbol.iterator]: 0, - [Symbol.isRegExp]() { }, + [Symbol.toPrimitive]() { }, get [Symbol.toStringTag]() { return 0; } @@ -10,7 +10,7 @@ var x = { //// [symbolProperty5.js] var x = { [Symbol.iterator]: 0, - [Symbol.isRegExp]() { }, + [Symbol.toPrimitive]() { }, get [Symbol.toStringTag]() { return 0; } diff --git a/tests/baselines/reference/symbolProperty5.types b/tests/baselines/reference/symbolProperty5.types index 7d6a9f05858..e1fb096ebc4 100644 --- a/tests/baselines/reference/symbolProperty5.types +++ b/tests/baselines/reference/symbolProperty5.types @@ -1,17 +1,17 @@ === tests/cases/conformance/es6/Symbols/symbolProperty5.ts === var x = { ->x : { [Symbol.iterator]: number; [Symbol.isRegExp](): void; [Symbol.toStringTag]: number; } ->{ [Symbol.iterator]: 0, [Symbol.isRegExp]() { }, get [Symbol.toStringTag]() { return 0; }} : { [Symbol.iterator]: number; [Symbol.isRegExp](): void; [Symbol.toStringTag]: number; } +>x : { [Symbol.iterator]: number; [Symbol.toPrimitive](): void; [Symbol.toStringTag]: number; } +>{ [Symbol.iterator]: 0, [Symbol.toPrimitive]() { }, get [Symbol.toStringTag]() { return 0; }} : { [Symbol.iterator]: number; [Symbol.toPrimitive](): void; [Symbol.toStringTag]: number; } [Symbol.iterator]: 0, >Symbol.iterator : symbol >Symbol : SymbolConstructor >iterator : symbol - [Symbol.isRegExp]() { }, ->Symbol.isRegExp : symbol + [Symbol.toPrimitive]() { }, +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol get [Symbol.toStringTag]() { >Symbol.toStringTag : symbol diff --git a/tests/baselines/reference/symbolProperty6.js b/tests/baselines/reference/symbolProperty6.js index 81be3e2a927..ab9564c35e5 100644 --- a/tests/baselines/reference/symbolProperty6.js +++ b/tests/baselines/reference/symbolProperty6.js @@ -2,7 +2,7 @@ class C { [Symbol.iterator] = 0; [Symbol.unscopables]: number; - [Symbol.isRegExp]() { } + [Symbol.toPrimitive]() { } get [Symbol.toStringTag]() { return 0; } @@ -13,7 +13,7 @@ class C { constructor() { this[Symbol.iterator] = 0; } - [Symbol.isRegExp]() { } + [Symbol.toPrimitive]() { } get [Symbol.toStringTag]() { return 0; } diff --git a/tests/baselines/reference/symbolProperty6.types b/tests/baselines/reference/symbolProperty6.types index e5aac6f48da..20c5d0c6c8b 100644 --- a/tests/baselines/reference/symbolProperty6.types +++ b/tests/baselines/reference/symbolProperty6.types @@ -12,10 +12,10 @@ class C { >Symbol : SymbolConstructor >unscopables : symbol - [Symbol.isRegExp]() { } ->Symbol.isRegExp : symbol + [Symbol.toPrimitive]() { } +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol get [Symbol.toStringTag]() { >Symbol.toStringTag : symbol diff --git a/tests/baselines/reference/symbolProperty8.js b/tests/baselines/reference/symbolProperty8.js index 6f3ec6cfa26..87e56802391 100644 --- a/tests/baselines/reference/symbolProperty8.js +++ b/tests/baselines/reference/symbolProperty8.js @@ -1,7 +1,7 @@ //// [symbolProperty8.ts] interface I { [Symbol.unscopables]: number; - [Symbol.isRegExp](); + [Symbol.toPrimitive](); } //// [symbolProperty8.js] diff --git a/tests/baselines/reference/symbolProperty8.types b/tests/baselines/reference/symbolProperty8.types index d6c2f464b53..647cff252ab 100644 --- a/tests/baselines/reference/symbolProperty8.types +++ b/tests/baselines/reference/symbolProperty8.types @@ -7,8 +7,8 @@ interface I { >Symbol : SymbolConstructor >unscopables : symbol - [Symbol.isRegExp](); ->Symbol.isRegExp : symbol + [Symbol.toPrimitive](); +>Symbol.toPrimitive : symbol >Symbol : SymbolConstructor ->isRegExp : symbol +>toPrimitive : symbol }