| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | "use strict"function unique_pred(list, compare) {  var ptr = 1    , len = list.length    , a=list[0], b=list[0]  for(var i=1; i<len; ++i) {    b = a    a = list[i]    if(compare(a, b)) {      if(i === ptr) {        ptr++        continue      }      list[ptr++] = a    }  }  list.length = ptr  return list}function unique_eq(list) {  var ptr = 1    , len = list.length    , a=list[0], b = list[0]  for(var i=1; i<len; ++i, b=a) {    b = a    a = list[i]    if(a !== b) {      if(i === ptr) {        ptr++        continue      }      list[ptr++] = a    }  }  list.length = ptr  return list}function unique(list, compare, sorted) {  if(list.length === 0) {    return list  }  if(compare) {    if(!sorted) {      list.sort(compare)    }    return unique_pred(list, compare)  }  if(!sorted) {    list.sort()  }  return unique_eq(list)}module.exports = unique
 |