В карточке товара Wildberries рейтинг 4 из 5 рисуют строкой '★'.repeatify(4) + '☆'.repeatify(1). Старый виджет ждёт именно метод строки, а repeat в нём заменить нельзя.
Напишите installRepeatify(proto): она добавляет в объект proto метод repeatify(count). Метод возвращает строку this, повторённую count раз. Дробный count округляется вниз, 0 даёт пустую строку, отрицательный или бесконечный count бросает RangeError.
Два требования из-за соседних скриптов: метод не должен появляться в for...in (неперечисляемый), а если у proto уже есть свой repeatify, его не трогаем. String.prototype.repeat не используйте.
В работе: Рейтинг в карточке товара: 120 карточек в выдаче, у каждой строка из пяти звёзд.
Пример 1: четыре звезды
"call", "★", 4
"★★★★"
Пример 2: метод не перечисляется
"enum", "", 0
["function", false, 0]
installRepeatify — тест вызывает её сам. Таймеры и Date в тестах ненастоящие: время идёт по команде теста, поэтому setTimeout на 5 секунд проверяется мгновенно. Тестов 9: 2 открыты выше, остальные приходят после старта подхода. Лимит — 2 с на тест.
function installRepeatify(proto) // добавляет proto.repeatify(count)
Источник: Wildberries, задача «добавить repeatify в String.prototype», репозиторий кандидата. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.