@stdlib/esm
Version:
ES module distribution for Stdlib, a standard library for JavaScript and Node.js.
3 lines • 1.43 kB
JavaScript
// This file is a part of stdlib. License is Apache-2.0: http://www.apache.org/licenses/LICENSE-2.0
import r from"./../utils/define-nonenumerable-read-only-property.js";import e from"./../assert/is-function.js";import t from"./../assert/is-iterator-like.js";import o from"./../assert/has-own-property.js";import n from"./../symbol/iterator.js";var u=r,i=e,a=t,f=o,l=n;function s(r,e){var t,o;for(t=r.length,o=0;o<t;o++)if(r[o]===e)return!0;return!1}function p(){var r,e,t,o,n,v,m;if((t=arguments.length)<2)throw new Error("insufficient input arguments. Must provide two or more iterators.");for(r=[],m=0;m<t;m++){if(!a(arguments[m]))throw new TypeError("invalid argument. Must provide an iterator protocol-compliant object. Argument: `"+m+"`. Value: `"+arguments[m]+"`.");r.push(arguments[m])}if(n=[],u(o={},"next",d),u(o,"return",c),l){for(m=0;m<t;m++)if(!i(r[m][l])){v=!0;break}v||u(o,l,h)}return e=r[0],v=!1,m=0,o;function d(){var o;if(v)return{done:!0};for(;;)if((o=e.next()).done){if((m+=1)===t)return v=!0,f(o,"value")&&!1===s(n,o.value)?{value:o.value,done:!0}:{done:!0};if(e=r[m],f(o,"value")&&!1===s(n,o.value)){o=o.value,n.push(o);break}}else if(o=o.value,!1===s(n,o)){n.push(o);break}return{value:o,done:!1}}function c(r){return v=!0,arguments.length?{value:r,done:!0}:{done:!0}}function h(){var e,o;for(e=[],o=0;o<t;o++)e.push(r[o][l]());return p.apply(null,e)}}var v=p;export default v;
//# sourceMappingURL=union.js.map