| Server IP : 159.203.156.69 / Your IP : 216.73.216.37 Web Server : nginx/1.24.0 System : Linux main-ubuntu 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/tanviranik.com/node_modules/reusify/ |
Upload File : |
'use strict'
var test = require('tape')
var reusify = require('./')
test('reuse objects', function (t) {
t.plan(6)
function MyObject () {
t.pass('constructor called')
this.next = null
}
var instance = reusify(MyObject)
var obj = instance.get()
t.notEqual(obj, instance.get(), 'two instance created')
t.notOk(obj.next, 'next must be null')
instance.release(obj)
// the internals keeps a hot copy ready for reuse
// putting this one back in the queue
instance.release(instance.get())
// comparing the old one with the one we got
// never do this in real code, after release you
// should never reuse that instance
t.equal(obj, instance.get(), 'instance must be reused')
})
test('reuse more than 2 objects', function (t) {
function MyObject () {
t.pass('constructor called')
this.next = null
}
var instance = reusify(MyObject)
var obj = instance.get()
var obj2 = instance.get()
var obj3 = instance.get()
t.notOk(obj.next, 'next must be null')
t.notOk(obj2.next, 'next must be null')
t.notOk(obj3.next, 'next must be null')
t.notEqual(obj, obj2)
t.notEqual(obj, obj3)
t.notEqual(obj3, obj2)
instance.release(obj)
instance.release(obj2)
instance.release(obj3)
// skip one
instance.get()
var obj4 = instance.get()
var obj5 = instance.get()
var obj6 = instance.get()
t.equal(obj4, obj)
t.equal(obj5, obj2)
t.equal(obj6, obj3)
t.end()
})