michael@0: actual = ''; michael@0: expected = '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,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() michael@0: { michael@0: var length = 20; michael@0: var index = 0; 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); 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(); michael@0: michael@0: michael@0: assertEq(actual, expected)