'use strict'; var MAX_PORTS = 65535; module.exports = DebugPortAllocator; function DebugPortAllocator() { this.ports = Object.create(null); this.length = 0; } DebugPortAllocator.prototype.nextAvailableStartingAt = function(starting) { while (this.ports[starting] === true) { starting++; } if (starting >= MAX_PORTS) { throw new Error('WorkerPool debug port limit reached: ' + starting + '>= ' + MAX_PORTS ); } this.ports[starting] = true; this.length++; return starting; }; DebugPortAllocator.prototype.releasePort = function(port) { delete this.ports[port]; this.length--; };