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); }); }); }