mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-10 19:07:49 +00:00
Cleanup _.isError and add more tests.
This commit is contained in:
59
lodash.js
59
lodash.js
@@ -6106,19 +6106,19 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if `value` is a date.
|
* Checks if `value` is a `Date` object.
|
||||||
*
|
*
|
||||||
* @static
|
* @static
|
||||||
* @memberOf _
|
* @memberOf _
|
||||||
* @category Objects
|
* @category Objects
|
||||||
* @param {*} value The value to check.
|
* @param {*} value The value to check.
|
||||||
* @returns {boolean} Returns `true` if `value` is a date, else `false`.
|
* @returns {boolean} Returns `true` if `value` is a date object, else `false`.
|
||||||
* @example
|
* @example
|
||||||
*
|
*
|
||||||
* _.isDate(new Date);
|
* _.isDate(new Date);
|
||||||
* // => true
|
* // => true
|
||||||
*
|
*
|
||||||
* _.isDate('Wed May 23 2012');
|
* _.isDate('Mon April 23 2012');
|
||||||
* // => false
|
* // => false
|
||||||
*/
|
*/
|
||||||
function isDate(value) {
|
function isDate(value) {
|
||||||
@@ -6257,6 +6257,27 @@
|
|||||||
return baseIsEqual(value, other, callback);
|
return baseIsEqual(value, other, callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,
|
||||||
|
* `SyntaxError`, `TypeError`, or `URIError` object.
|
||||||
|
*
|
||||||
|
* @static
|
||||||
|
* @memberOf _
|
||||||
|
* @category Objects
|
||||||
|
* @param {*} value The value to check.
|
||||||
|
* @returns {boolean} Returns `true` if `value` is an error object, else `false`.
|
||||||
|
* @example
|
||||||
|
*
|
||||||
|
* _.isError(new Error);
|
||||||
|
* // => true
|
||||||
|
*
|
||||||
|
* _.isError(Error);
|
||||||
|
* // => false
|
||||||
|
*/
|
||||||
|
function isError(value) {
|
||||||
|
return value && typeof value == 'object' && toString.call(value) == errorClass || false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if `value` is, or can be coerced to, a finite number.
|
* Checks if `value` is, or can be coerced to, a finite number.
|
||||||
*
|
*
|
||||||
@@ -6398,7 +6419,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if `value` is a number.
|
* Checks if `value` is a `Number` primitive or object.
|
||||||
*
|
*
|
||||||
* Note: `NaN` is considered a number. See the [ES5 spec](http://es5.github.io/#x8.5)
|
* Note: `NaN` is considered a number. See the [ES5 spec](http://es5.github.io/#x8.5)
|
||||||
* for more details.
|
* for more details.
|
||||||
@@ -6469,13 +6490,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if `value` is a regular expression.
|
* Checks if `value` is a `RegExp` object.
|
||||||
*
|
*
|
||||||
* @static
|
* @static
|
||||||
* @memberOf _
|
* @memberOf _
|
||||||
* @category Objects
|
* @category Objects
|
||||||
* @param {*} value The value to check.
|
* @param {*} value The value to check.
|
||||||
* @returns {boolean} Returns `true` if `value` is a regular expression, else `false`.
|
* @returns {boolean} Returns `true` if `value` is a regexp object, else `false`.
|
||||||
* @example
|
* @example
|
||||||
*
|
*
|
||||||
* _.isRegExp(/abc/);
|
* _.isRegExp(/abc/);
|
||||||
@@ -6491,7 +6512,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if `value` is a string.
|
* Checks if `value` is a `String` primitive or object.
|
||||||
*
|
*
|
||||||
* @static
|
* @static
|
||||||
* @memberOf _
|
* @memberOf _
|
||||||
@@ -6531,28 +6552,6 @@
|
|||||||
return typeof value == 'undefined';
|
return typeof value == 'undefined';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if `value` is an instance of a native `Error` class.
|
|
||||||
*
|
|
||||||
* @static
|
|
||||||
* @memberOf _
|
|
||||||
* @category Objects
|
|
||||||
* @param {*} value The value to check.
|
|
||||||
* @returns {boolean} Returns `true` if `value` is an instance of a native `Error`, else `false`.
|
|
||||||
* @example
|
|
||||||
*
|
|
||||||
* _.isError(new Error);
|
|
||||||
* // => true
|
|
||||||
*
|
|
||||||
* _.isError('string');
|
|
||||||
* // => false
|
|
||||||
*/
|
|
||||||
function isError(value) {
|
|
||||||
var type = typeof value;
|
|
||||||
return value && type == 'object' && toString.call(value) == errorClass ||
|
|
||||||
false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an array of the own enumerable property names of `object`.
|
* Creates an array of the own enumerable property names of `object`.
|
||||||
*
|
*
|
||||||
@@ -8388,6 +8387,7 @@
|
|||||||
lodash.isElement = isElement;
|
lodash.isElement = isElement;
|
||||||
lodash.isEmpty = isEmpty;
|
lodash.isEmpty = isEmpty;
|
||||||
lodash.isEqual = isEqual;
|
lodash.isEqual = isEqual;
|
||||||
|
lodash.isError = isError;
|
||||||
lodash.isFinite = isFinite;
|
lodash.isFinite = isFinite;
|
||||||
lodash.isFunction = isFunction;
|
lodash.isFunction = isFunction;
|
||||||
lodash.isNaN = isNaN;
|
lodash.isNaN = isNaN;
|
||||||
@@ -8398,7 +8398,6 @@
|
|||||||
lodash.isRegExp = isRegExp;
|
lodash.isRegExp = isRegExp;
|
||||||
lodash.isString = isString;
|
lodash.isString = isString;
|
||||||
lodash.isUndefined = isUndefined;
|
lodash.isUndefined = isUndefined;
|
||||||
lodash.isError = isError;
|
|
||||||
lodash.kebabCase = kebabCase;
|
lodash.kebabCase = kebabCase;
|
||||||
lodash.lastIndexOf = lastIndexOf;
|
lodash.lastIndexOf = lastIndexOf;
|
||||||
lodash.mixin = mixin;
|
lodash.mixin = mixin;
|
||||||
|
|||||||
211
test/test.js
211
test/test.js
@@ -270,6 +270,7 @@
|
|||||||
"'_array': [1, 2, 3],",
|
"'_array': [1, 2, 3],",
|
||||||
"'_boolean': new Boolean(false),",
|
"'_boolean': new Boolean(false),",
|
||||||
"'_date': new Date,",
|
"'_date': new Date,",
|
||||||
|
"'_errors': [new Error, new EvalError, new RangeError, new ReferenceError, new SyntaxError, new TypeError, new URIError]",
|
||||||
"'_function': function() {},",
|
"'_function': function() {},",
|
||||||
"'_nan': NaN,",
|
"'_nan': NaN,",
|
||||||
"'_null': null,",
|
"'_null': null,",
|
||||||
@@ -277,8 +278,7 @@
|
|||||||
"'_object': { 'a': 1, 'b': 2, 'c': 3 },",
|
"'_object': { 'a': 1, 'b': 2, 'c': 3 },",
|
||||||
"'_regexp': /x/,",
|
"'_regexp': /x/,",
|
||||||
"'_string': new String('a'),",
|
"'_string': new String('a'),",
|
||||||
"'_undefined': undefined,",
|
"'_undefined': undefined",
|
||||||
"'_error': new Error(),",
|
|
||||||
'})'
|
'})'
|
||||||
].join('\n')));
|
].join('\n')));
|
||||||
}
|
}
|
||||||
@@ -1621,7 +1621,7 @@
|
|||||||
|
|
||||||
test('should ignore primitive `prototype` arguments and use an empty object instead', 1, function() {
|
test('should ignore primitive `prototype` arguments and use an empty object instead', 1, function() {
|
||||||
var primitives = [true, null, 1, 'a', undefined],
|
var primitives = [true, null, 1, 'a', undefined],
|
||||||
expected = _.map(primitives, function() { return true; });
|
expected = _.map(primitives, _.constant(true));
|
||||||
|
|
||||||
var actual = _.map(primitives, function(value, index) {
|
var actual = _.map(primitives, function(value, index) {
|
||||||
return _.isPlainObject(index ? _.create(value) : _.create());
|
return _.isPlainObject(index ? _.create(value) : _.create());
|
||||||
@@ -2397,7 +2397,7 @@
|
|||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
test('should return `true` for empty or falsey collections', 1, function() {
|
test('should return `true` for empty or falsey collections', 1, function() {
|
||||||
var expected = _.map(empties, function() { return true; });
|
var expected = _.map(empties, _.constant(true));
|
||||||
|
|
||||||
var actual = _.map(empties, function(value) {
|
var actual = _.map(empties, function(value) {
|
||||||
try {
|
try {
|
||||||
@@ -3979,7 +3979,7 @@
|
|||||||
strictEqual(_.isArguments(args), true);
|
strictEqual(_.isArguments(args), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non `arguments` objects', 9, function() {
|
test('should return `false` for non `arguments` objects', 10, function() {
|
||||||
var expected = _.map(falsey, _.constant(false));
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -3989,9 +3989,10 @@
|
|||||||
strictEqual(_.isArguments([1, 2, 3]), false);
|
strictEqual(_.isArguments([1, 2, 3]), false);
|
||||||
strictEqual(_.isArguments(true), false);
|
strictEqual(_.isArguments(true), false);
|
||||||
strictEqual(_.isArguments(new Date), false);
|
strictEqual(_.isArguments(new Date), false);
|
||||||
|
strictEqual(_.isArguments(new Error), false);
|
||||||
strictEqual(_.isArguments(_), false);
|
strictEqual(_.isArguments(_), false);
|
||||||
strictEqual(_.isArguments({ '0': 1, 'callee': _.noop, 'length': 1 }), false);
|
strictEqual(_.isArguments({ '0': 1, 'callee': _.noop, 'length': 1 }), false);
|
||||||
strictEqual(_.isArguments(0), false);
|
strictEqual(_.isArguments(1), false);
|
||||||
strictEqual(_.isArguments(/x/), false);
|
strictEqual(_.isArguments(/x/), false);
|
||||||
strictEqual(_.isArguments('a'), false);
|
strictEqual(_.isArguments('a'), false);
|
||||||
|
|
||||||
@@ -4019,7 +4020,7 @@
|
|||||||
strictEqual(_.isArray([1, 2, 3]), true);
|
strictEqual(_.isArray([1, 2, 3]), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non arrays', 9, function() {
|
test('should return `false` for non arrays', 10, function() {
|
||||||
var expected = _.map(falsey, _.constant(false));
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4029,9 +4030,10 @@
|
|||||||
strictEqual(_.isArray(args), false);
|
strictEqual(_.isArray(args), false);
|
||||||
strictEqual(_.isArray(true), false);
|
strictEqual(_.isArray(true), false);
|
||||||
strictEqual(_.isArray(new Date), false);
|
strictEqual(_.isArray(new Date), false);
|
||||||
|
strictEqual(_.isArray(new Error), false);
|
||||||
strictEqual(_.isArray(_), false);
|
strictEqual(_.isArray(_), false);
|
||||||
strictEqual(_.isArray({ '0': 1, 'length': 1 }), false);
|
strictEqual(_.isArray({ '0': 1, 'length': 1 }), false);
|
||||||
strictEqual(_.isArray(0), false);
|
strictEqual(_.isArray(1), false);
|
||||||
strictEqual(_.isArray(/x/), false);
|
strictEqual(_.isArray(/x/), false);
|
||||||
strictEqual(_.isArray('a'), false);
|
strictEqual(_.isArray('a'), false);
|
||||||
|
|
||||||
@@ -4062,7 +4064,7 @@
|
|||||||
strictEqual(_.isBoolean(new Boolean(false)), true);
|
strictEqual(_.isBoolean(new Boolean(false)), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non booleans', 9, function() {
|
test('should return `false` for non booleans', 10, function() {
|
||||||
var expected = _.map(falsey, function(value) { return value === false; });
|
var expected = _.map(falsey, function(value) { return value === false; });
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4072,9 +4074,10 @@
|
|||||||
strictEqual(_.isBoolean(args), false);
|
strictEqual(_.isBoolean(args), false);
|
||||||
strictEqual(_.isBoolean([1, 2, 3]), false);
|
strictEqual(_.isBoolean([1, 2, 3]), false);
|
||||||
strictEqual(_.isBoolean(new Date), false);
|
strictEqual(_.isBoolean(new Date), false);
|
||||||
|
strictEqual(_.isBoolean(new Error), false);
|
||||||
strictEqual(_.isBoolean(_), false);
|
strictEqual(_.isBoolean(_), false);
|
||||||
strictEqual(_.isBoolean({ 'a': 1 }), false);
|
strictEqual(_.isBoolean({ 'a': 1 }), false);
|
||||||
strictEqual(_.isBoolean(0), false);
|
strictEqual(_.isBoolean(1), false);
|
||||||
strictEqual(_.isBoolean(/x/), false);
|
strictEqual(_.isBoolean(/x/), false);
|
||||||
strictEqual(_.isBoolean('a'), false);
|
strictEqual(_.isBoolean('a'), false);
|
||||||
|
|
||||||
@@ -4102,7 +4105,7 @@
|
|||||||
strictEqual(_.isDate(new Date), true);
|
strictEqual(_.isDate(new Date), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non dates', 9, function() {
|
test('should return `false` for non dates', 10, function() {
|
||||||
var expected = _.map(falsey, _.constant(false));
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4112,9 +4115,10 @@
|
|||||||
strictEqual(_.isDate(args), false);
|
strictEqual(_.isDate(args), false);
|
||||||
strictEqual(_.isDate([1, 2, 3]), false);
|
strictEqual(_.isDate([1, 2, 3]), false);
|
||||||
strictEqual(_.isDate(true), false);
|
strictEqual(_.isDate(true), false);
|
||||||
|
strictEqual(_.isDate(new Error), false);
|
||||||
strictEqual(_.isDate(_), false);
|
strictEqual(_.isDate(_), false);
|
||||||
strictEqual(_.isDate({ 'a': 1 }), false);
|
strictEqual(_.isDate({ 'a': 1 }), false);
|
||||||
strictEqual(_.isDate(0), false);
|
strictEqual(_.isDate(1), false);
|
||||||
strictEqual(_.isDate(/x/), false);
|
strictEqual(_.isDate(/x/), false);
|
||||||
strictEqual(_.isDate('a'), false);
|
strictEqual(_.isDate('a'), false);
|
||||||
|
|
||||||
@@ -4136,6 +4140,8 @@
|
|||||||
QUnit.module('lodash.isElement');
|
QUnit.module('lodash.isElement');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
|
var args = arguments;
|
||||||
|
|
||||||
function Element() {
|
function Element() {
|
||||||
this.nodeType = 1;
|
this.nodeType = 1;
|
||||||
}
|
}
|
||||||
@@ -4164,6 +4170,27 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should return `false` for non elements', 11, function() {
|
||||||
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
|
var actual = _.map(falsey, function(value, index) {
|
||||||
|
return index ? _.isElement(value) : _.isElement();
|
||||||
|
});
|
||||||
|
|
||||||
|
strictEqual(_.isElement(args), false);
|
||||||
|
strictEqual(_.isElement([1, 2, 3]), false);
|
||||||
|
strictEqual(_.isElement(true), false);
|
||||||
|
strictEqual(_.isElement(new Date), false);
|
||||||
|
strictEqual(_.isElement(new Error), false);
|
||||||
|
strictEqual(_.isElement(_), false);
|
||||||
|
strictEqual(_.isElement({ 'a': 1 }), false);
|
||||||
|
strictEqual(_.isElement(1), false);
|
||||||
|
strictEqual(_.isElement(/x/), false);
|
||||||
|
strictEqual(_.isElement('a'), false);
|
||||||
|
|
||||||
|
deepEqual(actual, expected);
|
||||||
|
});
|
||||||
|
|
||||||
test('should work with elements from another realm', 1, function() {
|
test('should work with elements from another realm', 1, function() {
|
||||||
if (_._element) {
|
if (_._element) {
|
||||||
strictEqual(_.isElement(_._element), true);
|
strictEqual(_.isElement(_._element), true);
|
||||||
@@ -4172,7 +4199,7 @@
|
|||||||
skipTest();
|
skipTest();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}());
|
}(1, 2, 3));
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@@ -4296,7 +4323,7 @@
|
|||||||
var primitive,
|
var primitive,
|
||||||
object = { 'toString': function() { return primitive; } },
|
object = { 'toString': function() { return primitive; } },
|
||||||
values = [true, null, 1, 'a', undefined],
|
values = [true, null, 1, 'a', undefined],
|
||||||
expected = _.map(values, function() { return false; });
|
expected = _.map(values, _.constant(false));
|
||||||
|
|
||||||
var actual = _.map(values, function(value) {
|
var actual = _.map(values, function(value) {
|
||||||
primitive = value;
|
primitive = value;
|
||||||
@@ -4661,7 +4688,7 @@
|
|||||||
actual = [];
|
actual = [];
|
||||||
|
|
||||||
_.each(falsey, function(value) {
|
_.each(falsey, function(value) {
|
||||||
actual.push(_.isEqual('a', 'b', function() { return value; }));
|
actual.push(_.isEqual('a', 'b', _.constant(value)));
|
||||||
});
|
});
|
||||||
|
|
||||||
deepEqual(actual, expected);
|
deepEqual(actual, expected);
|
||||||
@@ -4769,6 +4796,60 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.isError');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var args = arguments;
|
||||||
|
|
||||||
|
test('should return `true` for error objects', 1, function() {
|
||||||
|
var errors = [new Error, new EvalError, new RangeError, new ReferenceError, new SyntaxError, new TypeError, new URIError],
|
||||||
|
expected = _.map(errors, _.constant(true));
|
||||||
|
|
||||||
|
var actual = _.map(errors, function(error) {
|
||||||
|
return _.isError(error) === true;
|
||||||
|
});
|
||||||
|
|
||||||
|
deepEqual(actual, expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should return `false` for non-error objects', 10, function() {
|
||||||
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
|
var actual = _.map(falsey, function(value, index) {
|
||||||
|
return index ? _.isError(value) : _.isError();
|
||||||
|
});
|
||||||
|
|
||||||
|
strictEqual(_.isError(args), false);
|
||||||
|
strictEqual(_.isError([1, 2, 3]), false);
|
||||||
|
strictEqual(_.isError(true), false);
|
||||||
|
strictEqual(_.isError(new Date), false);
|
||||||
|
strictEqual(_.isError(_), false);
|
||||||
|
strictEqual(_.isError({ 'a': 1 }), false);
|
||||||
|
strictEqual(_.isError(1), false);
|
||||||
|
strictEqual(_.isError(/x/), false);
|
||||||
|
strictEqual(_.isError('a'), false);
|
||||||
|
|
||||||
|
deepEqual(actual, expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('should work with an error object from another realm', 1, function() {
|
||||||
|
if (_._object) {
|
||||||
|
var expected = _.map(_._errors, _.constant(true));
|
||||||
|
|
||||||
|
var actual = _.map(_._errors, function(error) {
|
||||||
|
return _.isError(error) === true;
|
||||||
|
});
|
||||||
|
|
||||||
|
deepEqual(actual, expected);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skipTest();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}(1, 2, 3));
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.isFinite');
|
QUnit.module('lodash.isFinite');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
@@ -4786,12 +4867,13 @@
|
|||||||
strictEqual(_.isFinite(-Infinity), false);
|
strictEqual(_.isFinite(-Infinity), false);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non-numeric values', 8, function() {
|
test('should return `false` for non-numeric values', 9, function() {
|
||||||
strictEqual(_.isFinite(null), false);
|
strictEqual(_.isFinite(null), false);
|
||||||
strictEqual(_.isFinite(undefined), false);
|
strictEqual(_.isFinite(undefined), false);
|
||||||
strictEqual(_.isFinite([]), false);
|
strictEqual(_.isFinite([]), false);
|
||||||
strictEqual(_.isFinite(true), false);
|
strictEqual(_.isFinite(true), false);
|
||||||
strictEqual(_.isFinite(new Date), false);
|
strictEqual(_.isFinite(new Date), false);
|
||||||
|
strictEqual(_.isFinite(new Error), false);
|
||||||
strictEqual(_.isFinite(''), false);
|
strictEqual(_.isFinite(''), false);
|
||||||
strictEqual(_.isFinite(' '), false);
|
strictEqual(_.isFinite(' '), false);
|
||||||
strictEqual(_.isFinite('2px'), false);
|
strictEqual(_.isFinite('2px'), false);
|
||||||
@@ -4824,7 +4906,7 @@
|
|||||||
strictEqual(_.isFunction(_), true);
|
strictEqual(_.isFunction(_), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non functions', 9, function() {
|
test('should return `false` for non functions', 10, function() {
|
||||||
var expected = _.map(falsey, _.constant(false));
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4835,8 +4917,9 @@
|
|||||||
strictEqual(_.isFunction([1, 2, 3]), false);
|
strictEqual(_.isFunction([1, 2, 3]), false);
|
||||||
strictEqual(_.isFunction(true), false);
|
strictEqual(_.isFunction(true), false);
|
||||||
strictEqual(_.isFunction(new Date), false);
|
strictEqual(_.isFunction(new Date), false);
|
||||||
|
strictEqual(_.isFunction(new Error), false);
|
||||||
strictEqual(_.isFunction({ 'a': 1 }), false);
|
strictEqual(_.isFunction({ 'a': 1 }), false);
|
||||||
strictEqual(_.isFunction(0), false);
|
strictEqual(_.isFunction(1), false);
|
||||||
strictEqual(_.isFunction(/x/), false);
|
strictEqual(_.isFunction(/x/), false);
|
||||||
strictEqual(_.isFunction('a'), false);
|
strictEqual(_.isFunction('a'), false);
|
||||||
|
|
||||||
@@ -4865,7 +4948,7 @@
|
|||||||
strictEqual(_.isNaN(new Number(NaN)), true);
|
strictEqual(_.isNaN(new Number(NaN)), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non NaNs', 10, function() {
|
test('should return `false` for non NaNs', 11, function() {
|
||||||
var expected = _.map(falsey, function(value) { return value !== value; });
|
var expected = _.map(falsey, function(value) { return value !== value; });
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4876,9 +4959,10 @@
|
|||||||
strictEqual(_.isNaN([1, 2, 3]), false);
|
strictEqual(_.isNaN([1, 2, 3]), false);
|
||||||
strictEqual(_.isNaN(true), false);
|
strictEqual(_.isNaN(true), false);
|
||||||
strictEqual(_.isNaN(new Date), false);
|
strictEqual(_.isNaN(new Date), false);
|
||||||
|
strictEqual(_.isNaN(new Error), false);
|
||||||
strictEqual(_.isNaN(_), false);
|
strictEqual(_.isNaN(_), false);
|
||||||
strictEqual(_.isNaN({ 'a': 1 }), false);
|
strictEqual(_.isNaN({ 'a': 1 }), false);
|
||||||
strictEqual(_.isNaN(0), false);
|
strictEqual(_.isNaN(1), false);
|
||||||
strictEqual(_.isNaN(/x/), false);
|
strictEqual(_.isNaN(/x/), false);
|
||||||
strictEqual(_.isNaN('a'), false);
|
strictEqual(_.isNaN('a'), false);
|
||||||
|
|
||||||
@@ -4906,7 +4990,7 @@
|
|||||||
strictEqual(_.isNull(null), true);
|
strictEqual(_.isNull(null), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non nulls', 10, function() {
|
test('should return `false` for non nulls', 11, function() {
|
||||||
var expected = _.map(falsey, function(value) { return value === null; });
|
var expected = _.map(falsey, function(value) { return value === null; });
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4917,9 +5001,10 @@
|
|||||||
strictEqual(_.isNull([1, 2, 3]), false);
|
strictEqual(_.isNull([1, 2, 3]), false);
|
||||||
strictEqual(_.isNull(true), false);
|
strictEqual(_.isNull(true), false);
|
||||||
strictEqual(_.isNull(new Date), false);
|
strictEqual(_.isNull(new Date), false);
|
||||||
|
strictEqual(_.isNull(new Error), false);
|
||||||
strictEqual(_.isNull(_), false);
|
strictEqual(_.isNull(_), false);
|
||||||
strictEqual(_.isNull({ 'a': 1 }), false);
|
strictEqual(_.isNull({ 'a': 1 }), false);
|
||||||
strictEqual(_.isNull(0), false);
|
strictEqual(_.isNull(1), false);
|
||||||
strictEqual(_.isNull(/x/), false);
|
strictEqual(_.isNull(/x/), false);
|
||||||
strictEqual(_.isNull('a'), false);
|
strictEqual(_.isNull('a'), false);
|
||||||
|
|
||||||
@@ -4948,7 +5033,7 @@
|
|||||||
strictEqual(_.isNumber(new Number(0)), true);
|
strictEqual(_.isNumber(new Number(0)), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non numbers', 9, function() {
|
test('should return `false` for non numbers', 10, function() {
|
||||||
var expected = _.map(falsey, function(value) { return typeof value == 'number'; });
|
var expected = _.map(falsey, function(value) { return typeof value == 'number'; });
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -4959,6 +5044,7 @@
|
|||||||
strictEqual(_.isNumber([1, 2, 3]), false);
|
strictEqual(_.isNumber([1, 2, 3]), false);
|
||||||
strictEqual(_.isNumber(true), false);
|
strictEqual(_.isNumber(true), false);
|
||||||
strictEqual(_.isNumber(new Date), false);
|
strictEqual(_.isNumber(new Date), false);
|
||||||
|
strictEqual(_.isNumber(new Error), false);
|
||||||
strictEqual(_.isNumber(_), false);
|
strictEqual(_.isNumber(_), false);
|
||||||
strictEqual(_.isNumber({ 'a': 1 }), false);
|
strictEqual(_.isNumber({ 'a': 1 }), false);
|
||||||
strictEqual(_.isNumber(/x/), false);
|
strictEqual(_.isNumber(/x/), false);
|
||||||
@@ -4988,11 +5074,12 @@
|
|||||||
(function() {
|
(function() {
|
||||||
var args = arguments;
|
var args = arguments;
|
||||||
|
|
||||||
test('should return `true` for objects', 10, function() {
|
test('should return `true` for objects', 11, function() {
|
||||||
strictEqual(_.isObject(args), true);
|
strictEqual(_.isObject(args), true);
|
||||||
strictEqual(_.isObject([1, 2, 3]), true);
|
strictEqual(_.isObject([1, 2, 3]), true);
|
||||||
strictEqual(_.isObject(new Boolean(false)), true);
|
strictEqual(_.isObject(new Boolean(false)), true);
|
||||||
strictEqual(_.isObject(new Date), true);
|
strictEqual(_.isObject(new Date), true);
|
||||||
|
strictEqual(_.isObject(new Error), true);
|
||||||
strictEqual(_.isObject(_), true);
|
strictEqual(_.isObject(_), true);
|
||||||
strictEqual(_.isObject({ 'a': 1 }), true);
|
strictEqual(_.isObject({ 'a': 1 }), true);
|
||||||
strictEqual(_.isObject(new Number(0)), true);
|
strictEqual(_.isObject(new Number(0)), true);
|
||||||
@@ -5142,7 +5229,7 @@
|
|||||||
strictEqual(_.isRegExp(RegExp('x')), true);
|
strictEqual(_.isRegExp(RegExp('x')), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non regexes', 9, function() {
|
test('should return `false` for non regexes', 10, function() {
|
||||||
var expected = _.map(falsey, _.constant(false));
|
var expected = _.map(falsey, _.constant(false));
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -5153,9 +5240,10 @@
|
|||||||
strictEqual(_.isRegExp([1, 2, 3]), false);
|
strictEqual(_.isRegExp([1, 2, 3]), false);
|
||||||
strictEqual(_.isRegExp(true), false);
|
strictEqual(_.isRegExp(true), false);
|
||||||
strictEqual(_.isRegExp(new Date), false);
|
strictEqual(_.isRegExp(new Date), false);
|
||||||
|
strictEqual(_.isRegExp(new Error), false);
|
||||||
strictEqual(_.isRegExp(_), false);
|
strictEqual(_.isRegExp(_), false);
|
||||||
strictEqual(_.isRegExp({ 'a': 1 }), false);
|
strictEqual(_.isRegExp({ 'a': 1 }), false);
|
||||||
strictEqual(_.isRegExp(0), false);
|
strictEqual(_.isRegExp(1), false);
|
||||||
strictEqual(_.isRegExp('a'), false);
|
strictEqual(_.isRegExp('a'), false);
|
||||||
|
|
||||||
deepEqual(actual, expected);
|
deepEqual(actual, expected);
|
||||||
@@ -5183,7 +5271,7 @@
|
|||||||
strictEqual(_.isString(new String('a')), true);
|
strictEqual(_.isString(new String('a')), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non strings', 9, function() {
|
test('should return `false` for non strings', 10, function() {
|
||||||
var expected = _.map(falsey, function(value) { return value === ''; });
|
var expected = _.map(falsey, function(value) { return value === ''; });
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
@@ -5194,9 +5282,10 @@
|
|||||||
strictEqual(_.isString([1, 2, 3]), false);
|
strictEqual(_.isString([1, 2, 3]), false);
|
||||||
strictEqual(_.isString(true), false);
|
strictEqual(_.isString(true), false);
|
||||||
strictEqual(_.isString(new Date), false);
|
strictEqual(_.isString(new Date), false);
|
||||||
|
strictEqual(_.isString(new Error), false);
|
||||||
strictEqual(_.isString(_), false);
|
strictEqual(_.isString(_), false);
|
||||||
strictEqual(_.isString({ '0': 1, 'length': 1 }), false);
|
strictEqual(_.isString({ '0': 1, 'length': 1 }), false);
|
||||||
strictEqual(_.isString(0), false);
|
strictEqual(_.isString(1), false);
|
||||||
strictEqual(_.isString(/x/), false);
|
strictEqual(_.isString(/x/), false);
|
||||||
|
|
||||||
deepEqual(actual, expected);
|
deepEqual(actual, expected);
|
||||||
@@ -5224,20 +5313,21 @@
|
|||||||
strictEqual(_.isUndefined(undefined), true);
|
strictEqual(_.isUndefined(undefined), true);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should return `false` for non `undefined` values', 10, function() {
|
test('should return `false` for non `undefined` values', 11, function() {
|
||||||
var expected = _.map(falsey, function(value) { return value === undefined; });
|
var expected = _.map(falsey, function(value) { return value === undefined; });
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
var actual = _.map(falsey, function(value, index) {
|
||||||
return _.isUndefined(value);
|
return index ? _.isUndefined(value) : _.isUndefined();
|
||||||
});
|
});
|
||||||
|
|
||||||
strictEqual(_.isUndefined(args), false);
|
strictEqual(_.isUndefined(args), false);
|
||||||
strictEqual(_.isUndefined([1, 2, 3]), false);
|
strictEqual(_.isUndefined([1, 2, 3]), false);
|
||||||
strictEqual(_.isUndefined(true), false);
|
strictEqual(_.isUndefined(true), false);
|
||||||
strictEqual(_.isUndefined(new Date), false);
|
strictEqual(_.isUndefined(new Date), false);
|
||||||
|
strictEqual(_.isUndefined(new Error), false);
|
||||||
strictEqual(_.isUndefined(_), false);
|
strictEqual(_.isUndefined(_), false);
|
||||||
strictEqual(_.isUndefined({ 'a': 1 }), false);
|
strictEqual(_.isUndefined({ 'a': 1 }), false);
|
||||||
strictEqual(_.isUndefined(0), false);
|
strictEqual(_.isUndefined(1), false);
|
||||||
strictEqual(_.isUndefined(/x/), false);
|
strictEqual(_.isUndefined(/x/), false);
|
||||||
strictEqual(_.isUndefined('a'), false);
|
strictEqual(_.isUndefined('a'), false);
|
||||||
|
|
||||||
@@ -5256,60 +5346,13 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.isError');
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var args = arguments;
|
|
||||||
|
|
||||||
test('should return `true` for `Error` instances', 7, function() {
|
|
||||||
strictEqual(_.isError(new Error()), true);
|
|
||||||
strictEqual(_.isError(new EvalError()), true);
|
|
||||||
strictEqual(_.isError(new RangeError()), true);
|
|
||||||
strictEqual(_.isError(new ReferenceError()), true);
|
|
||||||
strictEqual(_.isError(new SyntaxError()), true);
|
|
||||||
strictEqual(_.isError(new TypeError()), true);
|
|
||||||
strictEqual(_.isError(new URIError()), true);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('should return `false` for non `Error` instances', 10, function() {
|
|
||||||
var expected = _.map(falsey, function(value) { return false; });
|
|
||||||
|
|
||||||
var actual = _.map(falsey, function(value, index) {
|
|
||||||
return _.isError(value);
|
|
||||||
});
|
|
||||||
|
|
||||||
strictEqual(_.isError(args), false);
|
|
||||||
strictEqual(_.isError([1, 2, 3]), false);
|
|
||||||
strictEqual(_.isError(true), false);
|
|
||||||
strictEqual(_.isError(new Date), false);
|
|
||||||
strictEqual(_.isError(_), false);
|
|
||||||
strictEqual(_.isError({ 'a': 1 }), false);
|
|
||||||
strictEqual(_.isError(0), false);
|
|
||||||
strictEqual(_.isError(/x/), false);
|
|
||||||
strictEqual(_.isError('a'), false);
|
|
||||||
|
|
||||||
deepEqual(actual, expected);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('should work with an `Error` from another realm', 1, function() {
|
|
||||||
if (_._error) {
|
|
||||||
strictEqual(_.isError(_._error), true);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
skipTest();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}(1, 2, 3));
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('isType checks');
|
QUnit.module('isType checks');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
test('should return `false` for subclassed values', 8, function() {
|
test('should return `false` for subclassed values', 8, function() {
|
||||||
var funcs = [
|
var funcs = [
|
||||||
'isArray', 'isBoolean', 'isDate', 'isFunction',
|
'isArray', 'isBoolean', 'isDate', 'isError',
|
||||||
'isNumber', 'isRegExp', 'isString', 'isError'
|
'isFunction', 'isNumber', 'isRegExp', 'isString'
|
||||||
];
|
];
|
||||||
|
|
||||||
_.each(funcs, function(methodName) {
|
_.each(funcs, function(methodName) {
|
||||||
@@ -6895,9 +6938,9 @@
|
|||||||
var array = [1, 0, 1];
|
var array = [1, 0, 1];
|
||||||
|
|
||||||
test('should always return two groups of elements', 3, function() {
|
test('should always return two groups of elements', 3, function() {
|
||||||
deepEqual(_.partition([], function(value) { return value; }), [[], []]);
|
deepEqual(_.partition([], _.identity), [[], []]);
|
||||||
deepEqual(_.partition(array, function(value) { return true; }), [array, []]);
|
deepEqual(_.partition(array, _.constant(true)), [array, []]);
|
||||||
deepEqual(_.partition(array, function(value) { return false; }), [[], array]);
|
deepEqual(_.partition(array, _.constant(false)), [[], array]);
|
||||||
});
|
});
|
||||||
|
|
||||||
test('should use `_.identity` when no `callback` is provided', 1, function() {
|
test('should use `_.identity` when no `callback` is provided', 1, function() {
|
||||||
@@ -8853,7 +8896,7 @@
|
|||||||
|
|
||||||
asyncTest('subsequent calls should return the result of the first call', 5, function() {
|
asyncTest('subsequent calls should return the result of the first call', 5, function() {
|
||||||
if (!(isRhino && isModularize)) {
|
if (!(isRhino && isModularize)) {
|
||||||
var throttled = _.throttle(function(value) { return value; }, 32),
|
var throttled = _.throttle(_.identity, 32),
|
||||||
result = [throttled('a'), throttled('b')];
|
result = [throttled('a'), throttled('b')];
|
||||||
|
|
||||||
deepEqual(result, ['a', 'a']);
|
deepEqual(result, ['a', 'a']);
|
||||||
|
|||||||
Reference in New Issue
Block a user