Подстрока Javascript является виртуальной?

Если у нас есть огромная строка с именемstr1скажем, 5 миллионов символов, а затемstr2 = str1.substr(5555, 100) чтобыstr2 длиной 100 символов и является подстрокойstr1 начиная с 5555 (или любой другой случайно выбранной позиции).

Как хранит JavaScriptstr2 внутри? Копируется ли содержимое строки или новая строка является виртуальной, и сохраняются только ссылки на исходную строку и значения для позиции и размера?

Я знаю, что это зависит от реализации, стандарт ECMAScript (вероятно) не определяет, чтоs под капотом реализации строки. Но я хочу узнать от одного эксперта, который знает V8 или SpiderMonkey изнутри достаточно хорошо, чтобы прояснить это.

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос