mirror of https://github.com/lukechilds/node.git
Browse Source
This commit adds proper type checking to makeCallback(). Anything other than undefined or a function will throw. PR-URL: https://github.com/iojs/io.js/pull/866 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>v1.8.0-commit
2 changed files with 32 additions and 1 deletions
@ -0,0 +1,27 @@ |
|||
var common = require('../common'); |
|||
var assert = require('assert'); |
|||
var fs = require('fs'); |
|||
|
|||
function test(cb) { |
|||
return function() { |
|||
// fs.stat() calls makeCallback() on its second argument
|
|||
fs.stat(__filename, cb); |
|||
}; |
|||
} |
|||
|
|||
// Verify the case where a callback function is provided
|
|||
assert.doesNotThrow(test(function() {})); |
|||
|
|||
// Passing undefined calls rethrow() internally, which is fine
|
|||
assert.doesNotThrow(test(undefined)); |
|||
|
|||
// Anything else should throw
|
|||
assert.throws(test(null)); |
|||
assert.throws(test(true)); |
|||
assert.throws(test(false)); |
|||
assert.throws(test(1)); |
|||
assert.throws(test(0)); |
|||
assert.throws(test('foo')); |
|||
assert.throws(test(/foo/)); |
|||
assert.throws(test([])); |
|||
assert.throws(test({})); |
Loading…
Reference in new issue