_xReduce.js 718 B

123456789101112131415161718192021222324252627282930
  1. import _createReduce from "./_createReduce.js";
  2. import _xArrayReduce from "./_xArrayReduce.js";
  3. import bind from "../bind.js";
  4. function _xIterableReduce(xf, acc, iter) {
  5. var step = iter.next();
  6. while (!step.done) {
  7. acc = xf['@@transducer/step'](acc, step.value);
  8. if (acc && acc['@@transducer/reduced']) {
  9. acc = acc['@@transducer/value'];
  10. break;
  11. }
  12. step = iter.next();
  13. }
  14. return xf['@@transducer/result'](acc);
  15. }
  16. function _xMethodReduce(xf, acc, obj, methodName) {
  17. return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));
  18. }
  19. var _xReduce =
  20. /*#__PURE__*/
  21. _createReduce(_xArrayReduce, _xMethodReduce, _xIterableReduce);
  22. export default _xReduce;