1. The tests could be a little stricter, what I have it just an example.
2. You're right, it should have been:
// if name is omitted
args.splice(0, 0, null);
// if deps is omitted
args.splice(1, 0, [])
// if fn is ommited
args.splice(2, 0, noop);
I'll edit the post when I get a chance