docs: function sum(O, defaultValue, _fn) {
              var i = void 0,
                  l = void 0,
                  tokenValue = void 0;
              if (isFunction(defaultValue) && typeof _fn === "undefined") {
                  _fn = defaultValue;
                  defaultValue = 0;
              }
              if (typeof defaultValue === "undefined") defaultValue = 0;
  
              if (isArray(O)) {
                  i = 0;
                  l = O.length;
                  for (; i < l; i++) {
                      if (typeof O[i] !== "undefined") {
                          if ((tokenValue = _fn.call(O[i], O[i])) === false) break;else if (typeof tokenValue !== "undefined") defaultValue += tokenValue;
                      }
                  }
                  return defaultValue;
              } else if (isObject(O)) {
                  for (i in O) {
                      if (typeof O[i] != "undefined") {
                          if ((tokenValue = _fn.call(O[i], O[i])) === false) break;else if (typeof tokenValue !== "undefined") defaultValue += tokenValue;
                      }
                  }
                  return defaultValue;
              } else {
                  console.error("argument error : ax5.util.sum - use Array or Object");
                  return defaultValue;
              }
          }