devote, у меня была аналогичная мысль, но писать влом ) Кстати,
if ( !( v in execCache ) ) {
result[ result.length ] = execCache[ v ] = v;
}
===
if ( v in execCache ) continue;
result[ result.length ] = execCache[ v ] = v;
Кстати, кстати ^_^ если предполагается значительное "усечение" массива за счет повторов, то и времени на сортировку будет затрачено меньше.