Хорошо, вот у меня есть функция которая ищет виджеты одного модуля внутри него, я бы хотел для ускорения её работы развернуть рекурсию в цикл, но я слишком плохой программист для этого, может ты справишься? или это слишком сложно для тебя чтобы сделать это бесплатно?
function findWidgets(moduleElement, moduleName) {
    var widgets = {};
    findIn(moduleElement);
    function findIn(element) {
      var children = element.children;
      for (var i = 0; i < children.length; i++) {
        var child = children[i];
        var uiAttr = child.getAttribute('ui');
        var regExp = new RegExp(moduleName + ':(\\w+)');
        if (uiAttr === moduleName) continue;
        if (uiAttr && regExp.test(uiAttr)) {
          var widgetName = regExp.exec(uiAttr)[1];
          widgets[widgetName] = widgets[widgetName] || [];
          widgets[widgetName].push(child);
        }
        findIn(child);
      }
    }
    return widgets;
  }
напомню
