actual = '';
expected = '3,6,9,12,15,18,';

function slice(a, b)
{
  //return { x: a + ':' + b };
  return b;
}

function f()
{
  var length = 20;
  var index = 0;

  function get3() {
    //appendToActual("get3 " + index);
    if (length - index < 3)
      return null;
    return slice(index, index += 3);
  }

  var bytes = null;
  while (bytes = get3()) {
    appendToActual(bytes);
  }
}

f();


assertEq(actual, expected)