123456789101112131415161718192021222324252627282930313233 |
- '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
|