Search code examples
javascriptprogramming-languageswebkitv8string-interning

Do common JavaScript implementations use string interning?


Do common JavaScript engines, such as V8 and WebKit's JavaScriptCore, use string interning for JavaScript strings? Or do they actually keep multiple instances of identical strings in memory?


Solution

  • Yes. In general any literal string, identifier, or other constant string in JS source is interned. However implementation details (exactly what is interned for instance) varies, as well as when the interning occurs.

    Note that a string value is not the same as a String Object though, String Objects are not interned because that would be fundamentally incorrect behaviour.