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