code: function forAll(val, handler, reverse) {
    if (!reverse) {
      if (isArray(val) || isString(val)) {
        for (var i = 0; i < val.length; i++) {
          if (handler(val[i], i) === false) {
            break;
          }
        }
      } else if (isObject(val)) {
        for (var _i2 = 0, _Object$keys = Object.keys(val); _i2 < _Object$keys.length; _i2++) {
          var key = _Object$keys[_i2];
  
          if (handler(val[key], key) === false) {
            break;
          }
        }
      } else if (Number.isInteger(val)) {
        for (var _i3 = 0; _i3 < val; _i3++) {
          if (handler(_i3, _i3) === false) {
            break;
          }
        }
      }
    } else {
      if (isArray(val) || isString(val)) {
        for (var _i4 = val.length - 1; _i4 >= 0; _i4--) {
          if (handler(val[_i4], _i4) === false) {
            break;
          }
        }
      } else if (isObject(val)) {
        var keys = Object.keys(val);
        keys.reverse();
  
        for (var _i5 = 0, _keys = keys; _i5 < _keys.length; _i5++) {
          var _key = _keys[_i5];
  
          if (handler(val[_key], _key) === false) {
            break;
          }
        }
      } else if (Number.isInteger(val)) {
        for (var _i6 = val - 1; _i6 >= 0; _i6--) {
          if (handler(_i6, _i6) === false) {
            break;
          }
        }
      }
    }
  }
docs: loop for all type