mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Add tests for iterator spread in an array literal
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
//// [iteratorSpreadInArray.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray.ts ===
|
||||
var array = [...new SymbolIterator];
|
||||
>array : symbol[]
|
||||
>[...new SymbolIterator] : symbol[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
tests/cases/conformance/es6/spread/iteratorSpreadInArray10.ts(1,17): error TS2489: An iterator must have a 'next()' method.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray10.ts (1 errors) ====
|
||||
var array = [...new SymbolIterator];
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2489: An iterator must have a 'next()' method.
|
||||
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
//// [iteratorSpreadInArray10.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray10.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
//// [iteratorSpreadInArray2.ts]
|
||||
var array = [...new NumberIterator, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class NumberIterator {
|
||||
next() {
|
||||
return {
|
||||
value: 0,
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray2.js]
|
||||
var array = [
|
||||
...new NumberIterator,
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
class NumberIterator {
|
||||
next() {
|
||||
return {
|
||||
value: 0,
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray2.ts ===
|
||||
var array = [...new NumberIterator, ...new SymbolIterator];
|
||||
>array : (number | symbol)[]
|
||||
>[...new NumberIterator, ...new SymbolIterator] : (number | symbol)[]
|
||||
>...new NumberIterator : number
|
||||
>new NumberIterator : NumberIterator
|
||||
>NumberIterator : typeof NumberIterator
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
|
||||
class NumberIterator {
|
||||
>NumberIterator : NumberIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: number; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: 0, done: false } : { value: number; done: boolean; }
|
||||
|
||||
value: 0,
|
||||
>value : number
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : NumberIterator
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
//// [iteratorSpreadInArray3.ts]
|
||||
var array = [...[0, 1], ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray3.js]
|
||||
var array = [
|
||||
...[
|
||||
0,
|
||||
1
|
||||
],
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray3.ts ===
|
||||
var array = [...[0, 1], ...new SymbolIterator];
|
||||
>array : (number | symbol)[]
|
||||
>[...[0, 1], ...new SymbolIterator] : (number | symbol)[]
|
||||
>...[0, 1] : number
|
||||
>[0, 1] : number[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
//// [iteratorSpreadInArray4.ts]
|
||||
var array = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray4.js]
|
||||
var array = [
|
||||
0,
|
||||
1,
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray4.ts ===
|
||||
var array = [0, 1, ...new SymbolIterator];
|
||||
>array : (number | symbol)[]
|
||||
>[0, 1, ...new SymbolIterator] : (number | symbol)[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
tests/cases/conformance/es6/spread/iteratorSpreadInArray5.ts(1,5): error TS2322: Type '(number | symbol)[]' is not assignable to type 'number[]'.
|
||||
Type 'number | symbol' is not assignable to type 'number'.
|
||||
Type 'symbol' is not assignable to type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray5.ts (1 errors) ====
|
||||
var array: number[] = [0, 1, ...new SymbolIterator];
|
||||
~~~~~
|
||||
!!! error TS2322: Type '(number | symbol)[]' is not assignable to type 'number[]'.
|
||||
!!! error TS2322: Type 'number | symbol' is not assignable to type 'number'.
|
||||
!!! error TS2322: Type 'symbol' is not assignable to type 'number'.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
//// [iteratorSpreadInArray5.ts]
|
||||
var array: number[] = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray5.js]
|
||||
var array = [
|
||||
0,
|
||||
1,
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts(2,14): error TS2345: Argument of type 'symbol[]' is not assignable to parameter of type 'number'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray6.ts (1 errors) ====
|
||||
var array: number[] = [0, 1];
|
||||
array.concat([...new SymbolIterator]);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2345: Argument of type 'symbol[]' is not assignable to parameter of type 'number'.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
//// [iteratorSpreadInArray6.ts]
|
||||
var array: number[] = [0, 1];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray6.js]
|
||||
var array = [
|
||||
0,
|
||||
1
|
||||
];
|
||||
array.concat([
|
||||
...new SymbolIterator
|
||||
]);
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
//// [iteratorSpreadInArray7.ts]
|
||||
var array: symbol[];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray7.js]
|
||||
var array;
|
||||
array.concat([
|
||||
...new SymbolIterator
|
||||
]);
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
=== tests/cases/conformance/es6/spread/iteratorSpreadInArray7.ts ===
|
||||
var array: symbol[];
|
||||
>array : symbol[]
|
||||
|
||||
array.concat([...new SymbolIterator]);
|
||||
>array.concat([...new SymbolIterator]) : symbol[]
|
||||
>array.concat : { <U extends symbol[]>(...items: U[]): symbol[]; (...items: symbol[]): symbol[]; }
|
||||
>array : symbol[]
|
||||
>concat : { <U extends symbol[]>(...items: U[]): symbol[]; (...items: symbol[]): symbol[]; }
|
||||
>[...new SymbolIterator] : symbol[]
|
||||
>...new SymbolIterator : symbol
|
||||
>new SymbolIterator : SymbolIterator
|
||||
>SymbolIterator : typeof SymbolIterator
|
||||
|
||||
class SymbolIterator {
|
||||
>SymbolIterator : SymbolIterator
|
||||
|
||||
next() {
|
||||
>next : () => { value: symbol; done: boolean; }
|
||||
|
||||
return {
|
||||
>{ value: Symbol(), done: false } : { value: symbol; done: boolean; }
|
||||
|
||||
value: Symbol(),
|
||||
>value : symbol
|
||||
>Symbol() : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
|
||||
done: false
|
||||
>done : boolean
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
>Symbol.iterator : symbol
|
||||
>Symbol : SymbolConstructor
|
||||
>iterator : symbol
|
||||
|
||||
return this;
|
||||
>this : SymbolIterator
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
tests/cases/conformance/es6/spread/iteratorSpreadInArray8.ts(1,17): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray8.ts (1 errors) ====
|
||||
var array = [...new SymbolIterator];
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
//// [iteratorSpreadInArray8.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray8.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts(1,17): error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable<symbol>'.
|
||||
Types of property '[Symbol.iterator]' are incompatible.
|
||||
Type '() => SymbolIterator' is not assignable to type '() => Iterator<symbol>'.
|
||||
Type 'SymbolIterator' is not assignable to type 'Iterator<symbol>'.
|
||||
Types of property 'next' are incompatible.
|
||||
Type '() => { value: symbol; }' is not assignable to type '() => IteratorResult<symbol>'.
|
||||
Type '{ value: symbol; }' is not assignable to type 'IteratorResult<symbol>'.
|
||||
Property 'done' is missing in type '{ value: symbol; }'.
|
||||
|
||||
|
||||
==== tests/cases/conformance/es6/spread/iteratorSpreadInArray9.ts (1 errors) ====
|
||||
var array = [...new SymbolIterator];
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterable<symbol>'.
|
||||
!!! error TS2322: Types of property '[Symbol.iterator]' are incompatible.
|
||||
!!! error TS2322: Type '() => SymbolIterator' is not assignable to type '() => Iterator<symbol>'.
|
||||
!!! error TS2322: Type 'SymbolIterator' is not assignable to type 'Iterator<symbol>'.
|
||||
!!! error TS2322: Types of property 'next' are incompatible.
|
||||
!!! error TS2322: Type '() => { value: symbol; }' is not assignable to type '() => IteratorResult<symbol>'.
|
||||
!!! error TS2322: Type '{ value: symbol; }' is not assignable to type 'IteratorResult<symbol>'.
|
||||
!!! error TS2322: Property 'done' is missing in type '{ value: symbol; }'.
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
//// [iteratorSpreadInArray9.ts]
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
//// [iteratorSpreadInArray9.js]
|
||||
var array = [
|
||||
...new SymbolIterator
|
||||
];
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
//@target: ES6
|
||||
var array = [...new NumberIterator, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
class NumberIterator {
|
||||
next() {
|
||||
return {
|
||||
value: 0,
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//@target: ES6
|
||||
var array = [...[0, 1], ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//@target: ES6
|
||||
var array = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
//@target: ES6
|
||||
var array: number[] = [0, 1, ...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
//@target: ES6
|
||||
var array: number[] = [0, 1];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
//@target: ES6
|
||||
var array: symbol[];
|
||||
array.concat([...new SymbolIterator]);
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol(),
|
||||
done: false
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
//@target: ES6
|
||||
var array = [...new SymbolIterator];
|
||||
|
||||
class SymbolIterator {
|
||||
next() {
|
||||
return {
|
||||
value: Symbol()
|
||||
};
|
||||
}
|
||||
|
||||
[Symbol.iterator]() {
|
||||
return this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user