Skip to content

Commit 0bca8f1

Browse files
committed
Fix definition of Array.prototype[Symbol.unscopables]
1 parent 60a6240 commit 0bca8f1

9 files changed

+31
-27
lines changed

src/lib/es2015.symbol.wellknown.d.ts

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,17 +73,21 @@ interface Symbol {
7373

7474
interface Array<T> {
7575
/**
76-
* Returns an object whose properties have the value 'true'
76+
* Is an object whose properties have the value 'true'
7777
* when they will be absent when used in a 'with' statement.
7878
*/
79-
[Symbol.unscopables](): {
80-
copyWithin: boolean;
81-
entries: boolean;
82-
fill: boolean;
83-
find: boolean;
84-
findIndex: boolean;
85-
keys: boolean;
86-
values: boolean;
79+
readonly [Symbol.unscopables]: {
80+
[K in keyof any[]]?: boolean;
81+
};
82+
}
83+
84+
interface ReadonlyArray<T> {
85+
/**
86+
* Is an object whose properties have the value 'true'
87+
* when they will be absent when used in a 'with' statement.
88+
*/
89+
readonly [Symbol.unscopables]: {
90+
[K in keyof readonly any[]]?: boolean;
8791
};
8892
}
8993

tests/baselines/reference/arrayFakeFlatNoCrashInferenceDeclarations.symbols

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ type BadFlatArray<Arr, Depth extends number> = {obj: {
1212
"recur": Arr extends ReadonlyArray<infer InnerArr>
1313
>"recur" : Symbol("recur", Decl(arrayFakeFlatNoCrashInferenceDeclarations.ts, 1, 16))
1414
>Arr : Symbol(Arr, Decl(arrayFakeFlatNoCrashInferenceDeclarations.ts, 0, 18))
15-
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --))
15+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more)
1616
>InnerArr : Symbol(InnerArr, Decl(arrayFakeFlatNoCrashInferenceDeclarations.ts, 2, 44))
1717

1818
? BadFlatArray<InnerArr, [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][Depth]>

tests/baselines/reference/arrayFind.symbols

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const foundNumber: number | undefined = arrayOfStringsNumbersAndBooleans.find(is
2222
const readonlyArrayOfStringsNumbersAndBooleans = arrayOfStringsNumbersAndBooleans as ReadonlyArray<string | number | boolean>;
2323
>readonlyArrayOfStringsNumbersAndBooleans : Symbol(readonlyArrayOfStringsNumbersAndBooleans, Decl(arrayFind.ts, 8, 5))
2424
>arrayOfStringsNumbersAndBooleans : Symbol(arrayOfStringsNumbersAndBooleans, Decl(arrayFind.ts, 5, 5))
25-
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --))
25+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
2626

2727
const readonlyFoundNumber: number | undefined = readonlyArrayOfStringsNumbersAndBooleans.find(isNumber);
2828
>readonlyFoundNumber : Symbol(readonlyFoundNumber, Decl(arrayFind.ts, 9, 5))

tests/baselines/reference/arrayFlatMap.symbols

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@ const array: number[] = [];
44

55
const readonlyArray: ReadonlyArray<number> = [];
66
>readonlyArray : Symbol(readonlyArray, Decl(arrayFlatMap.ts, 1, 5))
7-
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --))
7+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more)
88

99
array.flatMap((): ReadonlyArray<number> => []); // ok
1010
>array.flatMap : Symbol(Array.flatMap, Decl(lib.es2019.array.d.ts, --, --))
1111
>array : Symbol(array, Decl(arrayFlatMap.ts, 0, 5))
1212
>flatMap : Symbol(Array.flatMap, Decl(lib.es2019.array.d.ts, --, --))
13-
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --))
13+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more)
1414

1515
readonlyArray.flatMap((): ReadonlyArray<number> => []); // ok
1616
>readonlyArray.flatMap : Symbol(ReadonlyArray.flatMap, Decl(lib.es2019.array.d.ts, --, --))
1717
>readonlyArray : Symbol(readonlyArray, Decl(arrayFlatMap.ts, 1, 5))
1818
>flatMap : Symbol(ReadonlyArray.flatMap, Decl(lib.es2019.array.d.ts, --, --))
19-
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --), Decl(lib.es2019.array.d.ts, --, --))
19+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2016.array.include.d.ts, --, --) ... and 1 more)
2020

tests/baselines/reference/intersectionTypeInference3.symbols

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ declare function from<T>(): T[];
5252

5353
const c2: ReadonlyArray<A> = from();
5454
>c2 : Symbol(c2, Decl(intersectionTypeInference3.ts, 16, 5))
55-
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --))
55+
>ReadonlyArray : Symbol(ReadonlyArray, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
5656
>A : Symbol(A, Decl(intersectionTypeInference3.ts, 4, 2))
5757
>from : Symbol(from, Decl(intersectionTypeInference3.ts, 11, 47))
5858

0 commit comments

Comments
 (0)