| /** |
| * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/> |
| * Build: `lodash modularize exports="node" -o ./compat/` |
| * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/> |
| * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE> |
| * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors |
| * Available under MIT license <http://lodash.com/license> |
| */ |
| |
| /** |
| * Used by `sortBy` to compare transformed `collection` elements, stable sorting |
| * them in ascending order. |
| * |
| * @private |
| * @param {Object} a The object to compare to `b`. |
| * @param {Object} b The object to compare to `a`. |
| * @returns {number} Returns the sort order indicator of `1` or `-1`. |
| */ |
| function compareAscending(a, b) { |
| var ac = a.criteria, |
| bc = b.criteria, |
| index = -1, |
| length = ac.length; |
| |
| while (++index < length) { |
| var value = ac[index], |
| other = bc[index]; |
| |
| if (value !== other) { |
| if (value > other || typeof value == 'undefined') { |
| return 1; |
| } |
| if (value < other || typeof other == 'undefined') { |
| return -1; |
| } |
| } |
| } |
| // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications |
| // that causes it, under certain circumstances, to return the same value for |
| // `a` and `b`. See https://github.com/jashkenas/underscore/pull/1247 |
| // |
| // This also ensures a stable sort in V8 and other engines. |
| // See http://code.google.com/p/v8/issues/detail?id=90 |
| return a.index - b.index; |
| } |
| |
| module.exports = compareAscending; |