00001 var baseGetTag = require('./_baseGetTag'), 00002 isObjectLike = require('./isObjectLike'), 00003 isPlainObject = require('./isPlainObject'); 00004 00006 var domExcTag = '[object DOMException]', 00007 errorTag = '[object Error]'; 00008 00027 function isError(value) { 00028 if (!isObjectLike(value)) { 00029 return false; 00030 } 00031 var tag = baseGetTag(value); 00032 return tag == errorTag || tag == domExcTag || 00033 (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value)); 00034 } 00035 00036 module.exports = isError;