2025-04-02 06:50:39 -04:00

34 lines
465 B
JavaScript

'use strict';
function reusify(Constructor) {
var head = new Constructor();
var tail = head;
function get() {
var current = head;
if (current.next) {
head = current.next;
} else {
head = new Constructor();
tail = head;
}
current.next = null;
return current;
}
function release(obj) {
tail.next = obj;
tail = obj;
}
return {
get: get,
release: release,
};
}
module.exports = reusify;