aboutsummaryrefslogtreecommitdiff
path: root/node_modules/reusify/reusify.js
diff options
context:
space:
mode:
authorMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
committerMinteck <nekostarfan@gmail.com>2021-08-24 14:41:48 +0200
commitd25e11bee6ca5ca523884da132d18e1400e077b9 (patch)
tree8af39fde19f7ed640a60fb397c7edd647dff1c4c /node_modules/reusify/reusify.js
downloadkartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.gz
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.tar.bz2
kartik-iridium-d25e11bee6ca5ca523884da132d18e1400e077b9.zip
Initial commit
Diffstat (limited to 'node_modules/reusify/reusify.js')
-rw-r--r--node_modules/reusify/reusify.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/node_modules/reusify/reusify.js b/node_modules/reusify/reusify.js
new file mode 100644
index 0000000..e6f36f3
--- /dev/null
+++ b/node_modules/reusify/reusify.js
@@ -0,0 +1,33 @@
+'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