util.js: Fix prefix_sort logic to not mutate input.

In prefix sort, shifting of objs list to iterate through the elements
caused the 'emoji_show_list' to be emptied each time it was passed as
argument for sorting.

This modifies prefix sort to prevent it from modifying the objs list passed
as argument - changed it to normal iteration rather than popping
the elements from objs list.
This commit is contained in:
Tejas Kasetty
2017-06-07 23:50:34 +05:30
committed by Tim Abbott
parent ccd880094e
commit 27009e9708

View File

@@ -241,10 +241,10 @@ exports.prefix_sort = function (query, objs, get_item) {
var beginswithCaseSensitive = [];
var beginswithCaseInsensitive = [];
var noMatch = [];
var obj = objs.shift();
while (obj) {
var item;
var obj;
var item;
for (var i = 0; i < objs.length; i += 1) {
obj = objs[i];
if (get_item) {
item = get_item(obj);
} else {
@@ -257,7 +257,6 @@ exports.prefix_sort = function (query, objs, get_item) {
} else {
noMatch.push(obj);
}
obj = objs.shift();
}
return { matches: beginswithCaseSensitive.concat(beginswithCaseInsensitive),
rest: noMatch };