/*! * Chai - compareByInspect utility * Copyright(c) 2011-2016 Jake Luer * 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; };