LINUX.ORG.RU
Ответ на: комментарий от wandrien

сходи по ссылке на гитхаб и посмотри версию в которой прикручен вышеприведённый сырец - по датам это было до репита?

зы. repeat() он как реализован кстати?

qulinxao3 ★★
() автор топика
Ответ на: комментарий от wandrien

ок: ок: https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects...

c заменной

    var rpt = '';
    for (var i = 0; i < count; i++) {
      rpt += str;
    }

на

    var rpt = ''; 
    for (;count;count >>= 1) {
      if (count & 1)  rpt+= str;
      str += str;
    }

если ещё и точить «как для серьёзной » - с выбором по условию некоторой опытным путём - меньше в лоб иначе «логарифмом».

Там складывание строк в цикле, если он больше 10.

Во 1, как бы для такого есть repeat.

Во 2, складывание строк в цикле на язычке с вм, это - оторванные яйца.

crutch_master складывание логарифм раз а не в лоб

qulinxao3 ★★
() автор топика
Последнее исправление: qulinxao3 (всего исправлений: 2)
Ответ на: комментарий от qulinxao3

зы. repeat() он как реализован кстати?

Хитро.

var str = "abcdefg0123456789".repeat(16 * 4 * 1024 * 512);
Не сожрёт 500 мб, пока не начнешь str трогать. Но, если сделать, например charAt или length, он своё возьмёт (но не больше, чем нужно).

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 3)
Ответ на: комментарий от crutch_master

типо ленивость/задержка реализации пока нет чтения свойства зависящего от значения (по хорошему get .length не обязательно создаёт полный объект, впрочем как и чтение - но это всё реализация-специфично)

ссыль? на внутреннюю (вероятнее всего сишную) реализацию .repeat(n) (имхо что-то подобное stl vector[])

qulinxao3 ★★
() автор топика
Ответ на: комментарий от qulinxao3

на внутреннюю (вероятнее всего сишную) реализацию .repeat(n) (имхо что-то подобное stl vector[])

Там на каком-то своём языке, который потом во что-то компилируется при сборке.
https://github.com/frida/v8/blob/master/src/builtins/string-repeat.tq

crutch_master ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.