Boris Zbarsky:
I can live with this, but why is this better than just allowing [Unforgeable] on all operations and attributes and defining an "object valueOf(); /* returns self */ " on Location?
If we really do want to make all Location interface members be unforgeable, then moving the [Unforgeable] up to the interface seems like a nicer way to indicate that. It also means we don't have to pretend we really are defining a useful "valueOf" operation.