1var test = require('tap').test 2var once = require('../once.js') 3 4test('once', function (t) { 5 var f = 0 6 function fn (g) { 7 t.equal(f, 0) 8 f ++ 9 return f + g + this 10 } 11 fn.ownProperty = {} 12 var foo = once(fn) 13 t.equal(fn.ownProperty, foo.ownProperty) 14 t.notOk(foo.called) 15 for (var i = 0; i < 1E3; i++) { 16 t.same(f, i === 0 ? 0 : 1) 17 var g = foo.call(1, 1) 18 t.ok(foo.called) 19 t.same(g, 3) 20 t.same(f, 1) 21 } 22 t.end() 23}) 24 25