michael@0: actual = ''; michael@0: expected = '3,6,9,12,15,18,'; michael@0: michael@0: function slice(a, b) michael@0: { michael@0: //return { x: a + ':' + b }; michael@0: return b; michael@0: } michael@0: michael@0: function f(index) michael@0: { michael@0: var length = 20; michael@0: michael@0: function get3() { michael@0: //appendToActual("get3 " + index); michael@0: if (length - index < 3) michael@0: return null; michael@0: return slice(index, index += 3); michael@0: } michael@0: michael@0: var bytes = null; michael@0: while (bytes = get3()) { michael@0: appendToActual(bytes); michael@0: } michael@0: } michael@0: michael@0: f(0); michael@0: michael@0: michael@0: assertEq(actual, expected)