'use strict' var toString = ({}).toString var hasOwnProp = ({}).hasOwnProperty var utils = { noop: function noop() {}, isString: function isString(str) { return typeof str === 'string' }, forEach: function forEach(obj, fn) { for (var key in obj) { if (hasOwnProp.call(obj, key)) { fn(key, obj[key]) } } }, assign: function assign (dest, methods) { utils.forEach(methods, function (key, val) { dest[key] = val }) } } function checkType(type) { return function _checkType(val) { return toString.call(val) === '[object ' + type + ']' } } // add isRegExp, isArray ['RegExp', 'Array'].forEach(function addIsChecks(type) { utils['is' + type] = checkType(type) }) module.exports = utils