— Same surface api, delete needs same overhaul as has just got
— I'm building the index array on has at the same time I'm checking if all chars exist
— Apart from all the other cruft I ranted about, you can see how seperation helps
— However, delete is expensive if we're also deleting unused characters
— Maybe instead of deleting or splicing, you can simply set the element to undefined or null
—
if (this.strings[i] === null) {
continue;
}