add: res.write(itemSuffix); 
context: HopObject.prototype.loop_macro = function(param) {    if (!param.skin) {        return;    }    var items = param.collection ? this[param.collection] : this;    if (!items || !items.size || items.size() < 1) {        return;    }    // set default values    var min = 0, max = items.size();    var pagesize = max;    if (param.limit) {        var n = parseInt(param.limit, 10);        if (!isNaN(n)) {            pagesize = n;        }        var pagenr = parseInt(req.data.page, 10);        if (isNaN(pagenr)) {            pagenr = 0;        }        min = Math.min(max, pagenr * pagesize);        max = Math.min(max, min + pagesize);    }    if (param.sort) {        var allitems = items.list();        var test = allitems[0][param.sort];        if (!test || isNaN(test)) {            var Sorter = String.Sorter;        } else {            var Sorter = Number.Sorter;        }        allitems.sort(new Sorter(param.sort, Sorter[param.order.toUpperCase()]));        var itemlist = allitems.slice(min, max);    } else {        var itemlist = items.list(min, max);    }    var skinParam = {};    for (var i=0; i<itemlist.length; i+=1) {        skinParam.index = pagenr * pagesize + i + 1;        itemlist[i].renderSkin(param.skin, skinParam);    }    return;};
meta: 2504	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/2504/c38a093d5c82e770eb1903e22e64c471b609d5a7/HopObject.js/buggy/core/HopObject.js