Reimplement java.lang.String with JS Strings.

I don't know how much this function is used, so it may be useless, but *hash << 5 - hash* may be faster than *Math.imul(31, hash)*