diff --git a/src/types.js b/src/types.js index ddbf13d..501934f 100644 --- a/src/types.js +++ b/src/types.js @@ -26,7 +26,7 @@ module.exports = function enforce(type, value) { } default: { - if (value instanceof type) return + if (value.constructor.toString().match(/function (.*?)\(/)[1] === type.name) return } } diff --git a/test/types.js b/test/types.js index 4b6c123..fe1d149 100644 --- a/test/types.js +++ b/test/types.js @@ -1,7 +1,7 @@ var assert = require('assert') var enforceType = require('../src/types') -function CustomType() {} +function CustomType() { return "ensure non-greedy match".toUpperCase() } var types = ['Array', 'Boolean', 'Buffer', 'Number', 'String', CustomType] var values = [[], true, new Buffer(1), 1234, 'foobar', new CustomType()]