  function work () {
    var packet = packets.shift()
    var done = completeParse

    if (packet) {
      that._handlePacket(packet, nextTickWork)
    } else {
      completeParse = null
      done()
    }
  }
The product does not properly control the amount of recursion which takes place,  consuming excessive resources, such as allocated memory or the program stack.