From 338bc0ef39f1c2252b6ff3a76afc5a9ba450065b Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Fri, 29 May 2015 14:59:19 -0700 Subject: [PATCH] Added tests. --- .../argumentsObjectIterator01_ES5.errors.txt | 14 +++++++ .../argumentsObjectIterator01_ES5.js | 19 +++++++++ .../argumentsObjectIterator01_ES6.errors.txt | 14 +++++++ .../argumentsObjectIterator01_ES6.js | 18 +++++++++ .../argumentsObjectIterator02_ES5.errors.txt | 18 +++++++++ .../argumentsObjectIterator02_ES5.js | 24 +++++++++++ .../argumentsObjectIterator02_ES6.js | 23 +++++++++++ .../argumentsObjectIterator02_ES6.symbols | 34 ++++++++++++++++ .../argumentsObjectIterator02_ES6.types | 40 +++++++++++++++++++ .../argumentsObjectIterator03_ES5.errors.txt | 14 +++++++ .../argumentsObjectIterator03_ES5.js | 15 +++++++ .../argumentsObjectIterator03_ES6.errors.txt | 14 +++++++ .../argumentsObjectIterator03_ES6.js | 15 +++++++ .../compiler/argumentsObjectIterator01_ES5.ts | 9 +++++ .../compiler/argumentsObjectIterator01_ES6.ts | 9 +++++ .../compiler/argumentsObjectIterator02_ES5.ts | 12 ++++++ .../compiler/argumentsObjectIterator02_ES6.ts | 12 ++++++ .../compiler/argumentsObjectIterator03_ES5.ts | 8 ++++ .../compiler/argumentsObjectIterator03_ES6.ts | 8 ++++ 19 files changed, 320 insertions(+) create mode 100644 tests/baselines/reference/argumentsObjectIterator01_ES5.errors.txt create mode 100644 tests/baselines/reference/argumentsObjectIterator01_ES5.js create mode 100644 tests/baselines/reference/argumentsObjectIterator01_ES6.errors.txt create mode 100644 tests/baselines/reference/argumentsObjectIterator01_ES6.js create mode 100644 tests/baselines/reference/argumentsObjectIterator02_ES5.errors.txt create mode 100644 tests/baselines/reference/argumentsObjectIterator02_ES5.js create mode 100644 tests/baselines/reference/argumentsObjectIterator02_ES6.js create mode 100644 tests/baselines/reference/argumentsObjectIterator02_ES6.symbols create mode 100644 tests/baselines/reference/argumentsObjectIterator02_ES6.types create mode 100644 tests/baselines/reference/argumentsObjectIterator03_ES5.errors.txt create mode 100644 tests/baselines/reference/argumentsObjectIterator03_ES5.js create mode 100644 tests/baselines/reference/argumentsObjectIterator03_ES6.errors.txt create mode 100644 tests/baselines/reference/argumentsObjectIterator03_ES6.js create mode 100644 tests/cases/compiler/argumentsObjectIterator01_ES5.ts create mode 100644 tests/cases/compiler/argumentsObjectIterator01_ES6.ts create mode 100644 tests/cases/compiler/argumentsObjectIterator02_ES5.ts create mode 100644 tests/cases/compiler/argumentsObjectIterator02_ES6.ts create mode 100644 tests/cases/compiler/argumentsObjectIterator03_ES5.ts create mode 100644 tests/cases/compiler/argumentsObjectIterator03_ES6.ts diff --git a/tests/baselines/reference/argumentsObjectIterator01_ES5.errors.txt b/tests/baselines/reference/argumentsObjectIterator01_ES5.errors.txt new file mode 100644 index 00000000000..d607ab65d29 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator01_ES5.errors.txt @@ -0,0 +1,14 @@ +tests/cases/compiler/argumentsObjectIterator01_ES5.ts(4,21): error TS2495: Type 'IArguments' is not an array type or a string type. + + +==== tests/cases/compiler/argumentsObjectIterator01_ES5.ts (1 errors) ==== + + function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let result = []; + for (let arg of arguments) { + ~~~~~~~~~ +!!! error TS2495: Type 'IArguments' is not an array type or a string type. + result.push(arg + arg); + } + return <[any, any, any]>result; + } \ No newline at end of file diff --git a/tests/baselines/reference/argumentsObjectIterator01_ES5.js b/tests/baselines/reference/argumentsObjectIterator01_ES5.js new file mode 100644 index 00000000000..bc51d6f5582 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator01_ES5.js @@ -0,0 +1,19 @@ +//// [argumentsObjectIterator01_ES5.ts] + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let result = []; + for (let arg of arguments) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} + +//// [argumentsObjectIterator01_ES5.js] +function doubleAndReturnAsArray(x, y, z) { + var result = []; + for (var _i = 0; _i < arguments.length; _i++) { + var arg = arguments[_i]; + result.push(arg + arg); + } + return result; +} diff --git a/tests/baselines/reference/argumentsObjectIterator01_ES6.errors.txt b/tests/baselines/reference/argumentsObjectIterator01_ES6.errors.txt new file mode 100644 index 00000000000..f9a3878069a --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator01_ES6.errors.txt @@ -0,0 +1,14 @@ +tests/cases/compiler/argumentsObjectIterator01_ES6.ts(4,21): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator. + + +==== tests/cases/compiler/argumentsObjectIterator01_ES6.ts (1 errors) ==== + + function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let result = []; + for (let arg of arguments) { + ~~~~~~~~~ +!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator. + result.push(arg + arg); + } + return <[any, any, any]>result; + } \ No newline at end of file diff --git a/tests/baselines/reference/argumentsObjectIterator01_ES6.js b/tests/baselines/reference/argumentsObjectIterator01_ES6.js new file mode 100644 index 00000000000..03744f16b99 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator01_ES6.js @@ -0,0 +1,18 @@ +//// [argumentsObjectIterator01_ES6.ts] + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let result = []; + for (let arg of arguments) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} + +//// [argumentsObjectIterator01_ES6.js] +function doubleAndReturnAsArray(x, y, z) { + let result = []; + for (let arg of arguments) { + result.push(arg + arg); + } + return result; +} diff --git a/tests/baselines/reference/argumentsObjectIterator02_ES5.errors.txt b/tests/baselines/reference/argumentsObjectIterator02_ES5.errors.txt new file mode 100644 index 00000000000..125f69b90b2 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator02_ES5.errors.txt @@ -0,0 +1,18 @@ +tests/cases/compiler/argumentsObjectIterator02_ES5.ts(3,26): error TS2304: Cannot find name 'Symbol'. + + +==== tests/cases/compiler/argumentsObjectIterator02_ES5.ts (1 errors) ==== + + function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let blah = arguments[Symbol.iterator]; + ~~~~~~ +!!! error TS2304: Cannot find name 'Symbol'. + + let result = []; + for (let arg of blah()) { + result.push(arg + arg); + } + return <[any, any, any]>result; + } + + \ No newline at end of file diff --git a/tests/baselines/reference/argumentsObjectIterator02_ES5.js b/tests/baselines/reference/argumentsObjectIterator02_ES5.js new file mode 100644 index 00000000000..366bf8de199 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator02_ES5.js @@ -0,0 +1,24 @@ +//// [argumentsObjectIterator02_ES5.ts] + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let blah = arguments[Symbol.iterator]; + + let result = []; + for (let arg of blah()) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} + + + +//// [argumentsObjectIterator02_ES5.js] +function doubleAndReturnAsArray(x, y, z) { + var blah = arguments[Symbol.iterator]; + var result = []; + for (var _i = 0, _a = blah(); _i < _a.length; _i++) { + var arg = _a[_i]; + result.push(arg + arg); + } + return result; +} diff --git a/tests/baselines/reference/argumentsObjectIterator02_ES6.js b/tests/baselines/reference/argumentsObjectIterator02_ES6.js new file mode 100644 index 00000000000..9b9415afd29 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator02_ES6.js @@ -0,0 +1,23 @@ +//// [argumentsObjectIterator02_ES6.ts] + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let blah = arguments[Symbol.iterator]; + + let result = []; + for (let arg of blah()) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} + + + +//// [argumentsObjectIterator02_ES6.js] +function doubleAndReturnAsArray(x, y, z) { + let blah = arguments[Symbol.iterator]; + let result = []; + for (let arg of blah()) { + result.push(arg + arg); + } + return result; +} diff --git a/tests/baselines/reference/argumentsObjectIterator02_ES6.symbols b/tests/baselines/reference/argumentsObjectIterator02_ES6.symbols new file mode 100644 index 00000000000..9b68573b378 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator02_ES6.symbols @@ -0,0 +1,34 @@ +=== tests/cases/compiler/argumentsObjectIterator02_ES6.ts === + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { +>doubleAndReturnAsArray : Symbol(doubleAndReturnAsArray, Decl(argumentsObjectIterator02_ES6.ts, 0, 0)) +>x : Symbol(x, Decl(argumentsObjectIterator02_ES6.ts, 1, 32)) +>y : Symbol(y, Decl(argumentsObjectIterator02_ES6.ts, 1, 42)) +>z : Symbol(z, Decl(argumentsObjectIterator02_ES6.ts, 1, 53)) + + let blah = arguments[Symbol.iterator]; +>blah : Symbol(blah, Decl(argumentsObjectIterator02_ES6.ts, 2, 7)) +>arguments : Symbol(arguments) +>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) +>Symbol : Symbol(Symbol, Decl(lib.d.ts, 1186, 52), Decl(lib.d.ts, 1292, 11)) +>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.d.ts, 1236, 31)) + + let result = []; +>result : Symbol(result, Decl(argumentsObjectIterator02_ES6.ts, 4, 7)) + + for (let arg of blah()) { +>arg : Symbol(arg, Decl(argumentsObjectIterator02_ES6.ts, 5, 12)) +>blah : Symbol(blah, Decl(argumentsObjectIterator02_ES6.ts, 2, 7)) + + result.push(arg + arg); +>result.push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>result : Symbol(result, Decl(argumentsObjectIterator02_ES6.ts, 4, 7)) +>push : Symbol(Array.push, Decl(lib.d.ts, 1016, 29)) +>arg : Symbol(arg, Decl(argumentsObjectIterator02_ES6.ts, 5, 12)) +>arg : Symbol(arg, Decl(argumentsObjectIterator02_ES6.ts, 5, 12)) + } + return <[any, any, any]>result; +>result : Symbol(result, Decl(argumentsObjectIterator02_ES6.ts, 4, 7)) +} + + diff --git a/tests/baselines/reference/argumentsObjectIterator02_ES6.types b/tests/baselines/reference/argumentsObjectIterator02_ES6.types new file mode 100644 index 00000000000..0795088e498 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator02_ES6.types @@ -0,0 +1,40 @@ +=== tests/cases/compiler/argumentsObjectIterator02_ES6.ts === + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { +>doubleAndReturnAsArray : (x: number, y: number, z: number) => [number, number, number] +>x : number +>y : number +>z : number + + let blah = arguments[Symbol.iterator]; +>blah : any +>arguments[Symbol.iterator] : any +>arguments : IArguments +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol + + let result = []; +>result : any[] +>[] : undefined[] + + for (let arg of blah()) { +>arg : any +>blah() : any +>blah : any + + result.push(arg + arg); +>result.push(arg + arg) : number +>result.push : (...items: any[]) => number +>result : any[] +>push : (...items: any[]) => number +>arg + arg : any +>arg : any +>arg : any + } + return <[any, any, any]>result; +><[any, any, any]>result : [any, any, any] +>result : any[] +} + + diff --git a/tests/baselines/reference/argumentsObjectIterator03_ES5.errors.txt b/tests/baselines/reference/argumentsObjectIterator03_ES5.errors.txt new file mode 100644 index 00000000000..c39ea238317 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator03_ES5.errors.txt @@ -0,0 +1,14 @@ +tests/cases/compiler/argumentsObjectIterator03_ES5.ts(3,9): error TS2461: Type 'IArguments' is not an array type. + + +==== tests/cases/compiler/argumentsObjectIterator03_ES5.ts (1 errors) ==== + + function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] { + let [x, y, z] = arguments; + ~~~~~~~~~ +!!! error TS2461: Type 'IArguments' is not an array type. + + return [z, y, x]; + } + + \ No newline at end of file diff --git a/tests/baselines/reference/argumentsObjectIterator03_ES5.js b/tests/baselines/reference/argumentsObjectIterator03_ES5.js new file mode 100644 index 00000000000..7ea7e7b6593 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator03_ES5.js @@ -0,0 +1,15 @@ +//// [argumentsObjectIterator03_ES5.ts] + +function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] { + let [x, y, z] = arguments; + + return [z, y, x]; +} + + + +//// [argumentsObjectIterator03_ES5.js] +function asReversedTuple(a, b, c) { + var x = arguments[0], y = arguments[1], z = arguments[2]; + return [z, y, x]; +} diff --git a/tests/baselines/reference/argumentsObjectIterator03_ES6.errors.txt b/tests/baselines/reference/argumentsObjectIterator03_ES6.errors.txt new file mode 100644 index 00000000000..1d86fcf70a4 --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator03_ES6.errors.txt @@ -0,0 +1,14 @@ +tests/cases/compiler/argumentsObjectIterator03_ES6.ts(3,9): error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator. + + +==== tests/cases/compiler/argumentsObjectIterator03_ES6.ts (1 errors) ==== + + function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] { + let [x, y, z] = arguments; + ~~~~~~~~~ +!!! error TS2488: Type must have a '[Symbol.iterator]()' method that returns an iterator. + + return [z, y, x]; + } + + \ No newline at end of file diff --git a/tests/baselines/reference/argumentsObjectIterator03_ES6.js b/tests/baselines/reference/argumentsObjectIterator03_ES6.js new file mode 100644 index 00000000000..788887e86eb --- /dev/null +++ b/tests/baselines/reference/argumentsObjectIterator03_ES6.js @@ -0,0 +1,15 @@ +//// [argumentsObjectIterator03_ES6.ts] + +function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] { + let [x, y, z] = arguments; + + return [z, y, x]; +} + + + +//// [argumentsObjectIterator03_ES6.js] +function asReversedTuple(a, b, c) { + let [x, y, z] = arguments; + return [z, y, x]; +} diff --git a/tests/cases/compiler/argumentsObjectIterator01_ES5.ts b/tests/cases/compiler/argumentsObjectIterator01_ES5.ts new file mode 100644 index 00000000000..1813eb9a166 --- /dev/null +++ b/tests/cases/compiler/argumentsObjectIterator01_ES5.ts @@ -0,0 +1,9 @@ +//@target: ES5 + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let result = []; + for (let arg of arguments) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} \ No newline at end of file diff --git a/tests/cases/compiler/argumentsObjectIterator01_ES6.ts b/tests/cases/compiler/argumentsObjectIterator01_ES6.ts new file mode 100644 index 00000000000..4e566affa37 --- /dev/null +++ b/tests/cases/compiler/argumentsObjectIterator01_ES6.ts @@ -0,0 +1,9 @@ +//@target: ES6 + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let result = []; + for (let arg of arguments) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} \ No newline at end of file diff --git a/tests/cases/compiler/argumentsObjectIterator02_ES5.ts b/tests/cases/compiler/argumentsObjectIterator02_ES5.ts new file mode 100644 index 00000000000..b348765827e --- /dev/null +++ b/tests/cases/compiler/argumentsObjectIterator02_ES5.ts @@ -0,0 +1,12 @@ +//@target: ES5 + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let blah = arguments[Symbol.iterator]; + + let result = []; + for (let arg of blah()) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} + diff --git a/tests/cases/compiler/argumentsObjectIterator02_ES6.ts b/tests/cases/compiler/argumentsObjectIterator02_ES6.ts new file mode 100644 index 00000000000..10d5b01cc62 --- /dev/null +++ b/tests/cases/compiler/argumentsObjectIterator02_ES6.ts @@ -0,0 +1,12 @@ +//@target: ES6 + +function doubleAndReturnAsArray(x: number, y: number, z: number): [number, number, number] { + let blah = arguments[Symbol.iterator]; + + let result = []; + for (let arg of blah()) { + result.push(arg + arg); + } + return <[any, any, any]>result; +} + diff --git a/tests/cases/compiler/argumentsObjectIterator03_ES5.ts b/tests/cases/compiler/argumentsObjectIterator03_ES5.ts new file mode 100644 index 00000000000..8059ca3aa22 --- /dev/null +++ b/tests/cases/compiler/argumentsObjectIterator03_ES5.ts @@ -0,0 +1,8 @@ +//@target: ES5 + +function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] { + let [x, y, z] = arguments; + + return [z, y, x]; +} + diff --git a/tests/cases/compiler/argumentsObjectIterator03_ES6.ts b/tests/cases/compiler/argumentsObjectIterator03_ES6.ts new file mode 100644 index 00000000000..21b49885084 --- /dev/null +++ b/tests/cases/compiler/argumentsObjectIterator03_ES6.ts @@ -0,0 +1,8 @@ +//@target: ES6 + +function asReversedTuple(a: number, b: string, c: boolean): [boolean, string, number] { + let [x, y, z] = arguments; + + return [z, y, x]; +} +