Playing with Set, it appears to be stable (ie items remain in the order they are seen in):
> [...new Set(["foo", "bar", "foo", "foo", "baz", "bar"])]
["foo", "bar", "baz"]
But I can't find any documentation that says it is guaranteed to be stable.