
committed by
Victor Berchet

parent
bf71b94bde
commit
f088e9ef15
15
tools/transpiler/spec/fixtures/facade.dart
vendored
15
tools/transpiler/spec/fixtures/facade.dart
vendored
@ -1,3 +1,16 @@
|
||||
import 'dart:collection';
|
||||
|
||||
class MapWrapper {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic iterable class to test for-of. Provides iteration of the given list.
|
||||
*/
|
||||
class IterableList extends IterableBase {
|
||||
List values;
|
||||
IterableList(values) {
|
||||
this.values = values;
|
||||
}
|
||||
Iterator get iterator => values.iterator;
|
||||
}
|
||||
|
17
tools/transpiler/spec/fixtures/facade.es6
vendored
17
tools/transpiler/spec/fixtures/facade.es6
vendored
@ -1,3 +1,18 @@
|
||||
export class MapWrapper {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic iterable class to test for-of. Provides iteration of the given array.
|
||||
*/
|
||||
export class IterableList {
|
||||
constructor(values) {
|
||||
this.values = values;
|
||||
}
|
||||
|
||||
*[Symbol.iterator]() {
|
||||
for (var value of this.values) {
|
||||
yield value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
51
tools/transpiler/spec/for_of_spec.js
Normal file
51
tools/transpiler/spec/for_of_spec.js
Normal file
@ -0,0 +1,51 @@
|
||||
import {describe, it, expect} from 'test_lib/test_lib';
|
||||
import {ListWrapper, MapWrapper} from 'facade/collection';
|
||||
import {IterableList} from './fixtures/facade';
|
||||
|
||||
export function main() {
|
||||
describe('for..of', function() {
|
||||
it('should iterate iterable', function() {
|
||||
var values = ['a', 'b', 'c'];
|
||||
var result = ListWrapper.create();
|
||||
for (var value of new IterableList(values)) {
|
||||
ListWrapper.push(result, value);
|
||||
}
|
||||
expect(result).toEqual(values);
|
||||
});
|
||||
|
||||
it('should iterate iterable without var declaration list', function() {
|
||||
var values = ['a', 'b', 'c'];
|
||||
var result = ListWrapper.create();
|
||||
var value;
|
||||
for (value of new IterableList(values)) {
|
||||
ListWrapper.push(result, value);
|
||||
}
|
||||
expect(value).toEqual('c');
|
||||
expect(result).toEqual(values);
|
||||
});
|
||||
|
||||
it('should iterate maps', function() {
|
||||
var values = [['a', 1], ['b', 2], ['c', 3]];
|
||||
var result = ListWrapper.create();
|
||||
var map = MapWrapper.createFromPairs(values);
|
||||
for (var [key, value] of MapWrapper.iterable(map)) {
|
||||
ListWrapper.push(result, [key, value]);
|
||||
}
|
||||
expect(result).toEqual(values);
|
||||
});
|
||||
|
||||
it('should iterate maps without var declaration list', function() {
|
||||
var values = [['a', 1], ['b', 2], ['c', 3]];
|
||||
var result = ListWrapper.create();
|
||||
var map = MapWrapper.createFromPairs(values);
|
||||
var key, value;
|
||||
for ([key, value] of MapWrapper.iterable(map)) {
|
||||
ListWrapper.push(result, [key, value]);
|
||||
}
|
||||
expect(key).toEqual('c');
|
||||
expect(value).toEqual(3);
|
||||
expect(result).toEqual(values);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user