UNPKG

forc

Version:

Clone of Clojure list comprehension

103 lines (79 loc) 2.4 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = pairs; var _typeChecks = require('./typeChecks'); var _marked = [pairs].map(regeneratorRuntime.mark); function pairs(iter) { var prev, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item; return regeneratorRuntime.wrap(function pairs$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: prev = undefined; _iteratorNormalCompletion = true; _didIteratorError = false; _iteratorError = undefined; _context.prev = 4; _iterator = iter[Symbol.iterator](); case 6: if (_iteratorNormalCompletion = (_step = _iterator.next()).done) { _context.next = 18; break; } item = _step.value; if ((0, _typeChecks.isUndefined)(prev)) { _context.next = 14; break; } _context.next = 11; return [prev, item]; case 11: prev = undefined; _context.next = 15; break; case 14: prev = item; case 15: _iteratorNormalCompletion = true; _context.next = 6; break; case 18: _context.next = 24; break; case 20: _context.prev = 20; _context.t0 = _context['catch'](4); _didIteratorError = true; _iteratorError = _context.t0; case 24: _context.prev = 24; _context.prev = 25; if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } case 27: _context.prev = 27; if (!_didIteratorError) { _context.next = 30; break; } throw _iteratorError; case 30: return _context.finish(27); case 31: return _context.finish(24); case 32: if ((0, _typeChecks.isUndefined)(prev)) { _context.next = 34; break; } throw new Error('Iterable pairs require an even number of forms (last key was "' + prev + '")'); case 34: case 'end': return _context.stop(); } } }, _marked[0], this, [[4, 20, 24, 32], [25,, 27, 31]]); }