| 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
 
 
  |