src/js/hammer.js
function each(obj, iterator, context) {
    var i;

    if (!obj) {
        return;
    }

    if (obj.forEach) {
        obj.forEach(iterator, context);
    } else if (obj.length !== undefined) {
        i = 0;
        while (i < obj.length) {
            iterator.call(context, obj[i], i, obj);
            i++;
        }
    } else {
        for (i in obj) {
            obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);
        }
    }
}
function each(obj, iterator, context) {
    var i;

    if (!obj) {
        return;
    }

    if (obj.forEach) {
        obj.forEach(iterator, context);
    } else if (obj.length !== undefined) {
        i = 0;
        while (i < obj.length) {
            iterator.call(context, obj[i], i, obj);
            i++;
        }
    } else {
        for (i in obj) {
            obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);
        }
    }
}
function each ( obj , iterator , context ) { var i ; if ( ! obj ) { return ; } if ( obj . forEach ) { obj . forEach ( iterator , context ) ; } else if ( obj . length !== undefined ) { i = 0 ; while ( i < obj . length ) { iterator . call ( context , obj [ i ] , i , obj ) ; i ++ ; } } else { for ( i in obj ) { obj . hasOwnProperty ( i ) && iterator . call ( context , obj [ i ] , i , obj ) ; } } }
walk objects and arrays
@param {Object} obj
@param {Function} iterator
@param {Object} context
walk objects and arrays