>>> So hard to pronounce though! Why not UniqueString? It’s not quite as
>>> explicit but close enough.
>> Wouldn’t it be confusing to use UniqueString type for a string that is
>> *common* in order to save memory?
> I would interpret it as UniqueString(foo) means “give me the unique copy of
> string foo”. You use a unique copy so you can use the same string in many
> places without wasting memory, or excess time on string compares. It’s used
> in many places, but there is only one. (Maybe we should call it
> HighlanderString? OK, not serious.)
By definition, any string that has been uniqued is unique.
So, maybe we like “unique” or maybe we don’t. But if we like “unique”, it’s
strictly better than “uniqued”.
>> Personally, I like the AtomString proposal as it is close to the naming we
>> are used to and addresses the issue raised (atomic has a different meaning
>> with threading).
>> Also, I had never heard of interned strings before.
AtomicString has two features:
(1) You do comparison by pointer / object identity;
(2) You never allocate two objects for the same sequence of characters.
let a = Symbol(“The string of the past!”);
let b = Symbol(“The string of the past!”);
a == b; // false
a === b; // false
Today we call (1) “UniquedStringImpl” and (1) + (2) “AtomicStringImpl”.
If we rename (1) + (2) to “UniqueString” or “UniquedString”, we need a new name
for (1) alone.
webkit-dev mailing list