326466-01.js (1092B)
1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 //----------------------------------------------------------------------------- 7 var BUGNUMBER = 326466; 8 var summary = 'Implement Pythonic generators and iteration protocol support'; 9 var actual; 10 var expect; 11 12 printBugNumber(BUGNUMBER); 13 printStatus (summary); 14 15 function* fib() 16 { 17 var a = 0, b = 1; 18 19 while (true) 20 { 21 yield a; 22 var t = a; 23 a = b; 24 b += t; 25 } 26 } 27 28 var g = fib(); 29 30 expect = '[object Generator]'; 31 actual = g.toString(); 32 reportCompare(expect, actual, summary); 33 34 var actual = []; 35 var expect = [0, 1, 1, 2, 3, 5, 8, 13]; 36 actual.push(g.next().value); 37 actual.push(g.next().value); 38 actual.push(g.next().value); 39 actual.push(g.next().value); 40 actual.push(g.next().value); 41 actual.push(g.next().value); 42 actual.push(g.next().value); 43 actual.push(g.next().value); 44 reportCompare(expect.join(), actual.join(), summary);