Show More
Commit Description:
force log out when password change
Commit Description:
force log out when password change
References:
File last commit:
Show/Diff file:
Action:
node_modules/es5-ext/object/compare.js
| 39 lines
| 1.1 KiB
| application/javascript
| JavascriptLexer
|
r789 | "use strict"; | |||
var strCompare = require("../string/#/case-insensitive-compare") | ||||
, isObject = require("./is-object") | ||||
, isValue = require("./is-value") | ||||
, numIsNaN = require("../number/is-nan") | ||||
, resolve | ||||
, typeMap; | ||||
typeMap = { undefined: 0, object: 1, boolean: 2, string: 3, number: 4 }; | ||||
resolve = function (a) { | ||||
if (isObject(a)) { | ||||
if (typeof a.valueOf !== "function") return NaN; | ||||
a = a.valueOf(); | ||||
if (isObject(a)) { | ||||
if (typeof a.toString !== "function") return NaN; | ||||
a = a.toString(); | ||||
if (typeof a !== "string") return NaN; | ||||
} | ||||
} | ||||
return a; | ||||
}; | ||||
module.exports = function (val1, val2) { | ||||
if (val1 === val2) return 0; // Same | ||||
val1 = resolve(val1); | ||||
val2 = resolve(val2); | ||||
// eslint-disable-next-line eqeqeq | ||||
if (val1 == val2) return typeMap[typeof val1] - typeMap[typeof val2]; | ||||
if (!isValue(val1)) return -1; | ||||
if (!isValue(val2)) return 1; | ||||
if (typeof val1 === "string" || typeof val2 === "string") { | ||||
return strCompare.call(val1, val2); | ||||
} | ||||
if (numIsNaN(val1) && numIsNaN(val2)) return 0; // Jslint: ignore | ||||
return Number(val1) - Number(val2); | ||||
}; | ||||