Thanks for sharing that! One of the things I've started thinking about is the slow-ish performance of splice. I wonder if another optimization would be to mark all the duplicate items with some default value like undefined or null in one pass.
var foo = [1, 3, 4, 3, 5, 6, 7, 7, 8];
var foo = [1, 3, 4, undefined, 5, 6, 7, undefined, 8];
In the second pass, we create a new array made up all the the non-undefined/non-null items. This would result in us never having to call splice repeatedly on arrays with a lot of duplicate items. We would just run through the array twice: once to identify & mark duplicates, once to create a new array with the non-duplicate values.