From 057108646d67e75fbbfdd9d2f9651b96a2b896ee Mon Sep 17 00:00:00 2001 From: Jason Freeman Date: Tue, 24 Feb 2015 11:31:42 -0800 Subject: [PATCH] More tests --- tests/baselines/reference/for-of19.js | 41 ++++++++++++++++++ tests/baselines/reference/for-of19.types | 41 ++++++++++++++++++ tests/baselines/reference/for-of20.js | 41 ++++++++++++++++++ tests/baselines/reference/for-of20.types | 41 ++++++++++++++++++ tests/baselines/reference/for-of21.js | 41 ++++++++++++++++++ tests/baselines/reference/for-of21.types | 41 ++++++++++++++++++ tests/baselines/reference/for-of22.js | 42 +++++++++++++++++++ tests/baselines/reference/for-of22.types | 42 +++++++++++++++++++ tests/baselines/reference/for-of23.js | 41 ++++++++++++++++++ tests/baselines/reference/for-of23.types | 41 ++++++++++++++++++ .../es6/for-ofStatements/for-of19.ts | 17 ++++++++ .../es6/for-ofStatements/for-of20.ts | 17 ++++++++ .../es6/for-ofStatements/for-of21.ts | 17 ++++++++ .../es6/for-ofStatements/for-of22.ts | 18 ++++++++ .../es6/for-ofStatements/for-of23.ts | 17 ++++++++ 15 files changed, 498 insertions(+) create mode 100644 tests/baselines/reference/for-of19.js create mode 100644 tests/baselines/reference/for-of19.types create mode 100644 tests/baselines/reference/for-of20.js create mode 100644 tests/baselines/reference/for-of20.types create mode 100644 tests/baselines/reference/for-of21.js create mode 100644 tests/baselines/reference/for-of21.types create mode 100644 tests/baselines/reference/for-of22.js create mode 100644 tests/baselines/reference/for-of22.types create mode 100644 tests/baselines/reference/for-of23.js create mode 100644 tests/baselines/reference/for-of23.types create mode 100644 tests/cases/conformance/es6/for-ofStatements/for-of19.ts create mode 100644 tests/cases/conformance/es6/for-ofStatements/for-of20.ts create mode 100644 tests/cases/conformance/es6/for-ofStatements/for-of21.ts create mode 100644 tests/cases/conformance/es6/for-ofStatements/for-of22.ts create mode 100644 tests/cases/conformance/es6/for-ofStatements/for-of23.ts diff --git a/tests/baselines/reference/for-of19.js b/tests/baselines/reference/for-of19.js new file mode 100644 index 0000000000..eefb9339f1 --- /dev/null +++ b/tests/baselines/reference/for-of19.js @@ -0,0 +1,41 @@ +//// [for-of19.ts] +for (var v of new FooIterator) { + v; +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} + +//// [for-of19.js] +for (var v of new FooIterator) { + v; +} +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var FooIterator = (function () { + function FooIterator() { + } + FooIterator.prototype.next = function () { + return { + value: new Foo, + done: false + }; + }; + FooIterator.prototype[Symbol.iterator] = function () { + return this; + }; + return FooIterator; +})(); diff --git a/tests/baselines/reference/for-of19.types b/tests/baselines/reference/for-of19.types new file mode 100644 index 0000000000..49172b09d8 --- /dev/null +++ b/tests/baselines/reference/for-of19.types @@ -0,0 +1,41 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of19.ts === +for (var v of new FooIterator) { +>v : Foo +>new FooIterator : FooIterator +>FooIterator : typeof FooIterator + + v; +>v : Foo +} + +class Foo { } +>Foo : Foo + +class FooIterator { +>FooIterator : FooIterator + + next() { +>next : () => { value: Foo; done: boolean; } + + return { +>{ value: new Foo, done: false } : { value: Foo; done: boolean; } + + value: new Foo, +>value : Foo +>new Foo : Foo +>Foo : typeof Foo + + done: false +>done : boolean + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol + + return this; +>this : FooIterator + } +} diff --git a/tests/baselines/reference/for-of20.js b/tests/baselines/reference/for-of20.js new file mode 100644 index 0000000000..39b1081954 --- /dev/null +++ b/tests/baselines/reference/for-of20.js @@ -0,0 +1,41 @@ +//// [for-of20.ts] +for (let v of new FooIterator) { + v; +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} + +//// [for-of20.js] +for (let v of new FooIterator) { + v; +} +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var FooIterator = (function () { + function FooIterator() { + } + FooIterator.prototype.next = function () { + return { + value: new Foo, + done: false + }; + }; + FooIterator.prototype[Symbol.iterator] = function () { + return this; + }; + return FooIterator; +})(); diff --git a/tests/baselines/reference/for-of20.types b/tests/baselines/reference/for-of20.types new file mode 100644 index 0000000000..e967869fbd --- /dev/null +++ b/tests/baselines/reference/for-of20.types @@ -0,0 +1,41 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of20.ts === +for (let v of new FooIterator) { +>v : Foo +>new FooIterator : FooIterator +>FooIterator : typeof FooIterator + + v; +>v : Foo +} + +class Foo { } +>Foo : Foo + +class FooIterator { +>FooIterator : FooIterator + + next() { +>next : () => { value: Foo; done: boolean; } + + return { +>{ value: new Foo, done: false } : { value: Foo; done: boolean; } + + value: new Foo, +>value : Foo +>new Foo : Foo +>Foo : typeof Foo + + done: false +>done : boolean + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol + + return this; +>this : FooIterator + } +} diff --git a/tests/baselines/reference/for-of21.js b/tests/baselines/reference/for-of21.js new file mode 100644 index 0000000000..c11514b192 --- /dev/null +++ b/tests/baselines/reference/for-of21.js @@ -0,0 +1,41 @@ +//// [for-of21.ts] +for (const v of new FooIterator) { + v; +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} + +//// [for-of21.js] +for (var v of new FooIterator) { + v; +} +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var FooIterator = (function () { + function FooIterator() { + } + FooIterator.prototype.next = function () { + return { + value: new Foo, + done: false + }; + }; + FooIterator.prototype[Symbol.iterator] = function () { + return this; + }; + return FooIterator; +})(); diff --git a/tests/baselines/reference/for-of21.types b/tests/baselines/reference/for-of21.types new file mode 100644 index 0000000000..362f92577e --- /dev/null +++ b/tests/baselines/reference/for-of21.types @@ -0,0 +1,41 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of21.ts === +for (const v of new FooIterator) { +>v : Foo +>new FooIterator : FooIterator +>FooIterator : typeof FooIterator + + v; +>v : Foo +} + +class Foo { } +>Foo : Foo + +class FooIterator { +>FooIterator : FooIterator + + next() { +>next : () => { value: Foo; done: boolean; } + + return { +>{ value: new Foo, done: false } : { value: Foo; done: boolean; } + + value: new Foo, +>value : Foo +>new Foo : Foo +>Foo : typeof Foo + + done: false +>done : boolean + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol + + return this; +>this : FooIterator + } +} diff --git a/tests/baselines/reference/for-of22.js b/tests/baselines/reference/for-of22.js new file mode 100644 index 0000000000..d38accb6cd --- /dev/null +++ b/tests/baselines/reference/for-of22.js @@ -0,0 +1,42 @@ +//// [for-of22.ts] +v; +for (var v of new FooIterator) { + +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} + +//// [for-of22.js] +v; +for (var v of new FooIterator) { +} +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var FooIterator = (function () { + function FooIterator() { + } + FooIterator.prototype.next = function () { + return { + value: new Foo, + done: false + }; + }; + FooIterator.prototype[Symbol.iterator] = function () { + return this; + }; + return FooIterator; +})(); diff --git a/tests/baselines/reference/for-of22.types b/tests/baselines/reference/for-of22.types new file mode 100644 index 0000000000..bb2d5569bf --- /dev/null +++ b/tests/baselines/reference/for-of22.types @@ -0,0 +1,42 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of22.ts === +v; +>v : Foo + +for (var v of new FooIterator) { +>v : Foo +>new FooIterator : FooIterator +>FooIterator : typeof FooIterator + +} + +class Foo { } +>Foo : Foo + +class FooIterator { +>FooIterator : FooIterator + + next() { +>next : () => { value: Foo; done: boolean; } + + return { +>{ value: new Foo, done: false } : { value: Foo; done: boolean; } + + value: new Foo, +>value : Foo +>new Foo : Foo +>Foo : typeof Foo + + done: false +>done : boolean + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol + + return this; +>this : FooIterator + } +} diff --git a/tests/baselines/reference/for-of23.js b/tests/baselines/reference/for-of23.js new file mode 100644 index 0000000000..943c5b6cec --- /dev/null +++ b/tests/baselines/reference/for-of23.js @@ -0,0 +1,41 @@ +//// [for-of23.ts] +for (const v of new FooIterator) { + const v = 0; // new scope +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} + +//// [for-of23.js] +for (var v of new FooIterator) { + const v = 0; // new scope +} +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +var FooIterator = (function () { + function FooIterator() { + } + FooIterator.prototype.next = function () { + return { + value: new Foo, + done: false + }; + }; + FooIterator.prototype[Symbol.iterator] = function () { + return this; + }; + return FooIterator; +})(); diff --git a/tests/baselines/reference/for-of23.types b/tests/baselines/reference/for-of23.types new file mode 100644 index 0000000000..b490616edc --- /dev/null +++ b/tests/baselines/reference/for-of23.types @@ -0,0 +1,41 @@ +=== tests/cases/conformance/es6/for-ofStatements/for-of23.ts === +for (const v of new FooIterator) { +>v : Foo +>new FooIterator : FooIterator +>FooIterator : typeof FooIterator + + const v = 0; // new scope +>v : number +} + +class Foo { } +>Foo : Foo + +class FooIterator { +>FooIterator : FooIterator + + next() { +>next : () => { value: Foo; done: boolean; } + + return { +>{ value: new Foo, done: false } : { value: Foo; done: boolean; } + + value: new Foo, +>value : Foo +>new Foo : Foo +>Foo : typeof Foo + + done: false +>done : boolean + + }; + } + [Symbol.iterator]() { +>Symbol.iterator : symbol +>Symbol : SymbolConstructor +>iterator : symbol + + return this; +>this : FooIterator + } +} diff --git a/tests/cases/conformance/es6/for-ofStatements/for-of19.ts b/tests/cases/conformance/es6/for-ofStatements/for-of19.ts new file mode 100644 index 0000000000..ff80b2690e --- /dev/null +++ b/tests/cases/conformance/es6/for-ofStatements/for-of19.ts @@ -0,0 +1,17 @@ +//@target: ES6 +for (var v of new FooIterator) { + v; +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/for-ofStatements/for-of20.ts b/tests/cases/conformance/es6/for-ofStatements/for-of20.ts new file mode 100644 index 0000000000..615f514937 --- /dev/null +++ b/tests/cases/conformance/es6/for-ofStatements/for-of20.ts @@ -0,0 +1,17 @@ +//@target: ES6 +for (let v of new FooIterator) { + v; +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/for-ofStatements/for-of21.ts b/tests/cases/conformance/es6/for-ofStatements/for-of21.ts new file mode 100644 index 0000000000..4e4621034e --- /dev/null +++ b/tests/cases/conformance/es6/for-ofStatements/for-of21.ts @@ -0,0 +1,17 @@ +//@target: ES6 +for (const v of new FooIterator) { + v; +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/for-ofStatements/for-of22.ts b/tests/cases/conformance/es6/for-ofStatements/for-of22.ts new file mode 100644 index 0000000000..10a96502cd --- /dev/null +++ b/tests/cases/conformance/es6/for-ofStatements/for-of22.ts @@ -0,0 +1,18 @@ +//@target: ES6 +v; +for (var v of new FooIterator) { + +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} \ No newline at end of file diff --git a/tests/cases/conformance/es6/for-ofStatements/for-of23.ts b/tests/cases/conformance/es6/for-ofStatements/for-of23.ts new file mode 100644 index 0000000000..81227cd066 --- /dev/null +++ b/tests/cases/conformance/es6/for-ofStatements/for-of23.ts @@ -0,0 +1,17 @@ +//@target: ES6 +for (const v of new FooIterator) { + const v = 0; // new scope +} + +class Foo { } +class FooIterator { + next() { + return { + value: new Foo, + done: false + }; + } + [Symbol.iterator]() { + return this; + } +} \ No newline at end of file