blob: c618360dfaeb566df98f8da62f057c0c3be775b5 [file] [log] [blame]
var test = require('tap').test
var once = require('../once.js')
test('once', function (t) {
var f = 0
function fn (g) {
t.equal(f, 0)
f ++
return f + g + this
}
fn.ownProperty = {}
var foo = once(fn)
t.equal(fn.ownProperty, foo.ownProperty)
t.notOk(foo.called)
for (var i = 0; i < 1E3; i++) {
t.same(f, i === 0 ? 0 : 1)
var g = foo.call(1, 1)
t.ok(foo.called)
t.same(g, 3)
t.same(f, 1)
}
t.end()
})