Skip to content

Commit b3c1795

Browse files
committed
String.prototype.{trimStart,trimEnd} hit stage 4
1 parent f525a89 commit b3c1795

File tree

10 files changed

+101
-4
lines changed

10 files changed

+101
-4
lines changed

src/compiler/commandLineParser.ts

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ namespace ts {
4343
["es2018.promise", "lib.es2018.promise.d.ts"],
4444
["es2018.regexp", "lib.es2018.regexp.d.ts"],
4545
["es2019.array", "lib.es2019.array.d.ts"],
46+
["es2019.string", "lib.es2019.string.d.ts"],
4647
["es2019.symbol", "lib.es2019.symbol.d.ts"],
4748
["esnext.array", "lib.es2019.array.d.ts"],
4849
["esnext.symbol", "lib.es2019.symbol.d.ts"],

src/lib/es2019.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
/// <reference lib="es2018" />
22
/// <reference lib="es2019.array" />
3+
/// <reference lib="es2019.string" />
34
/// <reference lib="es2019.symbol" />

src/lib/es2019.string.d.ts

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
interface String {
2+
/** Removes the trailing white space and line terminator characters from a string. */
3+
trimEnd(): string;
4+
5+
/** Removes the leading white space and line terminator characters from a string. */
6+
trimStart(): string;
7+
8+
/** Removes the trailing white space and line terminator characters from a string. */
9+
trimLeft(): string;
10+
11+
/** Removes the leading white space and line terminator characters from a string. */
12+
trimRight(): string;
13+
}

src/lib/libs.json

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"es2018.promise",
3535
"es2018.intl",
3636
"es2019.array",
37+
"es2019.string",
3738
"es2019.symbol",
3839
"esnext.asynciterable",
3940
"esnext.bigint",

src/testRunner/unittests/config/commandLineParsing.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ namespace ts {
5757
assertParseResult(["--lib", "es5,invalidOption", "0.ts"],
5858
{
5959
errors: [{
60-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', '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', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.symbol', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint'.",
60+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', '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', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.string', 'es2019.symbol', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint'.",
6161
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
6262
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
6363
file: undefined,
@@ -259,7 +259,7 @@ namespace ts {
259259
assertParseResult(["--lib", "es5,", "es7", "0.ts"],
260260
{
261261
errors: [{
262-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', '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', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.symbol', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint'.",
262+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', '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', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.string', 'es2019.symbol', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint'.",
263263
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
264264
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
265265
file: undefined,
@@ -278,7 +278,7 @@ namespace ts {
278278
assertParseResult(["--lib", "es5, ", "es7", "0.ts"],
279279
{
280280
errors: [{
281-
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', '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', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.symbol', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint'.",
281+
messageText: "Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'es2018', 'es2019', 'esnext', 'dom', 'dom.iterable', 'webworker', 'webworker.importscripts', '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', 'es2017.sharedmemory', 'es2017.string', 'es2017.intl', 'es2017.typedarrays', 'es2018.intl', 'es2018.promise', 'es2018.regexp', 'es2019.array', 'es2019.string', 'es2019.symbol', 'esnext.array', 'esnext.symbol', 'esnext.asynciterable', 'esnext.intl', 'esnext.bigint'.",
282282
category: Diagnostics.Argument_for_0_option_must_be_Colon_1.category,
283283
code: Diagnostics.Argument_for_0_option_must_be_Colon_1.code,
284284
file: undefined,

tests/baselines/reference/bigintIndex.symbols

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ typedArray[bigNum] = 0xAA; // should error
5353

5454
typedArray[String(bigNum)] = 0xAA;
5555
>typedArray : Symbol(typedArray, Decl(a.ts, 17, 5))
56-
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 2 more)
56+
>String : Symbol(String, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --) ... and 3 more)
5757
>bigNum : Symbol(bigNum, Decl(a.ts, 16, 5))
5858

5959
typedArray["1"] = 0xBB;
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//// [stringTrim.ts]
2+
var trimmed: string;
3+
trimmed = "abcde".trimEnd();
4+
trimmed = "abcde".trimStart();
5+
trimmed = "abcde".trimLeft();
6+
trimmed = "abcde".trimRight();
7+
8+
9+
//// [stringTrim.js]
10+
var trimmed;
11+
trimmed = "abcde".trimEnd();
12+
trimmed = "abcde".trimStart();
13+
trimmed = "abcde".trimLeft();
14+
trimmed = "abcde".trimRight();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
=== tests/cases/compiler/stringTrim.ts ===
2+
var trimmed: string;
3+
>trimmed : Symbol(trimmed, Decl(stringTrim.ts, 0, 3))
4+
5+
trimmed = "abcde".trimEnd();
6+
>trimmed : Symbol(trimmed, Decl(stringTrim.ts, 0, 3))
7+
>"abcde".trimEnd : Symbol(String.trimEnd, Decl(lib.es2019.string.d.ts, --, --))
8+
>trimEnd : Symbol(String.trimEnd, Decl(lib.es2019.string.d.ts, --, --))
9+
10+
trimmed = "abcde".trimStart();
11+
>trimmed : Symbol(trimmed, Decl(stringTrim.ts, 0, 3))
12+
>"abcde".trimStart : Symbol(String.trimStart, Decl(lib.es2019.string.d.ts, --, --))
13+
>trimStart : Symbol(String.trimStart, Decl(lib.es2019.string.d.ts, --, --))
14+
15+
trimmed = "abcde".trimLeft();
16+
>trimmed : Symbol(trimmed, Decl(stringTrim.ts, 0, 3))
17+
>"abcde".trimLeft : Symbol(String.trimLeft, Decl(lib.es2019.string.d.ts, --, --))
18+
>trimLeft : Symbol(String.trimLeft, Decl(lib.es2019.string.d.ts, --, --))
19+
20+
trimmed = "abcde".trimRight();
21+
>trimmed : Symbol(trimmed, Decl(stringTrim.ts, 0, 3))
22+
>"abcde".trimRight : Symbol(String.trimRight, Decl(lib.es2019.string.d.ts, --, --))
23+
>trimRight : Symbol(String.trimRight, Decl(lib.es2019.string.d.ts, --, --))
24+
+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
=== tests/cases/compiler/stringTrim.ts ===
2+
var trimmed: string;
3+
>trimmed : string
4+
5+
trimmed = "abcde".trimEnd();
6+
>trimmed = "abcde".trimEnd() : string
7+
>trimmed : string
8+
>"abcde".trimEnd() : string
9+
>"abcde".trimEnd : () => string
10+
>"abcde" : "abcde"
11+
>trimEnd : () => string
12+
13+
trimmed = "abcde".trimStart();
14+
>trimmed = "abcde".trimStart() : string
15+
>trimmed : string
16+
>"abcde".trimStart() : string
17+
>"abcde".trimStart : () => string
18+
>"abcde" : "abcde"
19+
>trimStart : () => string
20+
21+
trimmed = "abcde".trimLeft();
22+
>trimmed = "abcde".trimLeft() : string
23+
>trimmed : string
24+
>"abcde".trimLeft() : string
25+
>"abcde".trimLeft : () => string
26+
>"abcde" : "abcde"
27+
>trimLeft : () => string
28+
29+
trimmed = "abcde".trimRight();
30+
>trimmed = "abcde".trimRight() : string
31+
>trimmed : string
32+
>"abcde".trimRight() : string
33+
>"abcde".trimRight : () => string
34+
>"abcde" : "abcde"
35+
>trimRight : () => string
36+

tests/cases/compiler/stringTrim.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// @target: es2019
2+
3+
var trimmed: string;
4+
trimmed = "abcde".trimEnd();
5+
trimmed = "abcde".trimStart();
6+
trimmed = "abcde".trimLeft();
7+
trimmed = "abcde".trimRight();

0 commit comments

Comments
 (0)