32 lines
808 B
Plaintext
32 lines
808 B
Plaintext
/*!
|
|
* Chai - compareByInspect utility
|
|
* Copyright(c) 2011-2016 Jake Luer <jake@alogicalparadox.com>
|
|
* MIT Licensed
|
|
*/
|
|
|
|
/*!
|
|
* Module dependencies
|
|
*/
|
|
|
|
var inspect = require('./inspect');
|
|
|
|
/**
|
|
* ### .compareByInspect(mixed, mixed)
|
|
*
|
|
* To be used as a compareFunction with Array.prototype.sort. Compares elements
|
|
* using inspect instead of default behavior of using toString so that Symbols
|
|
* and objects with irregular/missing toString can still be sorted without a
|
|
* TypeError.
|
|
*
|
|
* @param {Mixed} first element to compare
|
|
* @param {Mixed} second element to compare
|
|
* @returns {Number} -1 if 'a' should come before 'b'; otherwise 1
|
|
* @name compareByInspect
|
|
* @namespace Utils
|
|
* @api public
|
|
*/
|
|
|
|
module.exports = function compareByInspect(a, b) {
|
|
return inspect(a) < inspect(b) ? -1 : 1;
|
|
};
|