I see two WTFs: That this is injected directly into the page (rather than using something like Firefox's own extension support), and having a size restriction at all, let alone having stuff fall off the other end of the array when you hit that restriction.
But the rest of it, I'm not sure. Without that size restriction, this is just a really inefficient implementation of a set, which is a useful abstract data type. Doing it like this means that it could be replaced by something else, like a hash, without changing any code that depends on it, assuming said code doesn't directly access the underlying StuckArray.
That the "StuckArray" is exposed publicly isn't that much of an issue for me, either. JavaScript doesn't have anything like "protected" -- it's either public or it's hidden entirely, either by closure tricks or native code. But if it's really hidden in that way, it seems like you wouldn't be able to do any sort of inheritance.
I suppose you're right -- it might be better to simply extend or modify an array. On the other hand, you wouldn't be able to use the 'new Stuck()' syntax anymore. That's not entirely bad -- forcing people to call a constructor without the 'new' is a lot more flexible in the long run.