t.byteLength-o)throw new RangeError(f("invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.",i*E));t=new c(t,o,i)}}return s(this,"_buffer",t),s(this,"_length",t.length),this}s(u,"BYTES_PER_ELEMENT",E);s(u,"name","BooleanArray");s(u,"from",function(r){var t,i,e,n,a,l,g,p,w;if(!y(this))throw new TypeError("invalid invocation. `this` context must be a constructor.");if(!P(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(i=arguments.length,i>1){if(e=arguments[1],!y(e))throw new TypeError(f("invalid argument. Second argument must be a function. Value: `%s`.",e));i>2&&(t=arguments[2])}if(S(r)){if(e){for(p=r.length,r.get&&r.set?g=Z("default"):g=Q("default"),n=new this(p),a=n._buffer,w=0;w=i))return v(t[r])});V(u.prototype,"buffer",function(){return this._buffer.buffer});V(u.prototype,"byteLength",function(){return this._buffer.byteLength});V(u.prototype,"byteOffset",function(){return this._buffer.byteOffset});s(u.prototype,"BYTES_PER_ELEMENT",u.BYTES_PER_ELEMENT);s(u.prototype,"copyWithin",function(r,t){if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return arguments.length===2?this._buffer.copyWithin(r,t):this._buffer.copyWithin(r,t,arguments[2]),this});s(u.prototype,"entries",function(){var r,t,i,e,n,a;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");return r=this,e=this._buffer,i=this._length,a=-1,t={},s(t,"next",l),s(t,"return",g),m&&s(t,m,p),t;function l(){return a+=1,n||a>=i?{done:!0}:{value:[a,v(e[a])],done:!1}}function g(w){return n=!0,arguments.length?{value:w,done:!0}:{done:!0}}function p(){return r.entries()}});s(u.prototype,"every",function(r,t){var i,e;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!y(r))throw new TypeError(f("invalid argument. First argument must be a function. Value: `%s`.",r));for(i=this._buffer,e=0;e1){if(!b(t))throw new TypeError(f("invalid argument. Second argument must be an integer. Value: `%s`.",t));if(t<0&&(t+=n,t<0&&(t=0)),arguments.length>2){if(!b(i))throw new TypeError(f("invalid argument. Third argument must be an integer. Value: `%s`.",i));i<0&&(i+=n,i<0&&(i=0)),i>n&&(i=n)}else i=n}else t=0,i=n;for(r?a=1:a=0,l=t;l=0;n--)if(e=v(i[n]),r.call(t,e,n,this))return e});s(u.prototype,"findLastIndex",function(r,t){var i,e,n;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!y(r))throw new TypeError(f("invalid argument. First argument must be a function. Value: `%s`.",r));for(i=this._buffer,n=this._length-1;n>=0;n--)if(e=v(i[n]),r.call(t,e,n,this))return n;return-1});s(u.prototype,"forEach",function(r,t){var i,e;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!y(r))throw new TypeError(f("invalid argument. First argument must be a function. Value: `%s`.",r));for(i=this._buffer,e=0;e=this._length))return v(this._buffer[r])});s(u.prototype,"includes",function(r,t){var i,e;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!_(r))throw new TypeError(f("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!b(t))throw new TypeError(f("invalid argument. Second argument must be an integer. Value: `%s`.",t));t<0&&(t+=this._length,t<0&&(t=0))}else t=0;for(i=this._buffer,e=t;e1){if(!b(t))throw new TypeError(f("invalid argument. Second argument must be an integer. Value: `%s`.",t));t<0&&(t+=this._length,t<0&&(t=0))}else t=0;for(i=this._buffer,e=t;e0){if(!j(r))throw new TypeError(f("invalid argument. First argument must be a string. Value: `%s`.",r))}else r=",";for(t=this._buffer,i=[],e=0;e=i?{done:!0}:{value:n,done:!1}}function l(p){return e=!0,arguments.length?{value:p,done:!0}:{done:!0}}function g(){return r.keys()}});s(u.prototype,"lastIndexOf",function(r,t){var i,e;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!_(r))throw new TypeError(f("invalid argument. First argument must be a boolean. Value: `%s`.",r));if(arguments.length>1){if(!b(t))throw new TypeError(f("invalid argument. Second argument must be an integer. Value: `%s`.",t));t>=this._length?t=this._length-1:t<0&&(t+=this._length)}else t=this._length-1;for(i=this._buffer,e=t;e>=0;e--)if(r===v(i[e]))return e;return-1});V(u.prototype,"length",function(){return this._length});s(u.prototype,"map",function(r,t){var i,e,n,a;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!y(r))throw new TypeError("invalid argument. First argument must be a function. Value: `%s`.",r);for(n=this._buffer,e=new this.constructor(this._length),i=e._buffer,a=0;a1)n=t,a=0;else{if(e===0)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");n=v(i[0]),a=1}for(;a1)n=t,a=e-1;else{if(e===0)throw new Error("invalid operation. If not provided an initial value, an array must contain at least one element.");n=v(i[e-1]),a=e-2}for(;a>=0;a--)n=r(n,v(i[a]),a,this);return n});s(u.prototype,"reverse",function(){var r,t,i,e,n,a;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");for(r=this._buffer,i=this._length,e=X(i/2),n=0;n1){if(i=arguments[1],!T(i))throw new TypeError(f("invalid argument. Index argument must be a nonnegative integer. Value: `%s`.",i))}else i=0;if(S(r)){if(a=r.length,i+a>this._length)throw new RangeError("invalid arguments. Target array lacks sufficient storage to accommodate source values.");if(h(r)?t=r._buffer:t=r,g=e.byteOffset+i*E,t.buffer===e.buffer&&t.byteOffsetg){for(n=new c(t.length),l=0;l=this._length)throw new RangeError(f("invalid argument. Index argument is out-of-bounds. Value: `%u`.",i));e[i]=r?1:0});s(u.prototype,"slice",function(r,t){var i,e,n,a,l,g;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(a=this._buffer,l=this._length,arguments.length===0)r=0,t=l;else{if(!b(r))throw new TypeError(f("invalid argument. First argument must be an integer. Value: `%s`.",r));if(r<0&&(r+=l,r<0&&(r=0)),arguments.length===1)t=l;else{if(!b(t))throw new TypeError(f("invalid argument. Second argument must be an integer. Value: `%s`.",t));t<0?(t+=l,t<0&&(t=0)):t>l&&(t=l)}}for(rn&&(t=n)}}return r>=n?(n=0,i=e.byteLength):r>=t?(n=0,i=e.byteOffset+r*E):(n=t-r,i=e.byteOffset+r*E),new this.constructor(e.buffer,i,n<0?0:n)});s(u.prototype,"toLocaleString",function(r,t){var i,e,n,a,l;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(arguments.length===0)e=[];else if(j(r)||J(r))e=r;else throw new TypeError(f("invalid argument. First argument must be a string or an array of strings. Value: `%s`.",r));if(arguments.length<2)i={};else if(q(t))i=t;else throw new TypeError(f("invalid argument. Options argument must be an object. Value: `%s`.",t));for(a=this._buffer,n=[],l=0;l=i?{done:!0}:{value:v(n[a]),done:!1}}function g(w){return e=!0,arguments.length?{value:w,done:!0}:{done:!0}}function p(){return t.values()}});s(u.prototype,"with",function(r,t){var i,e,n;if(!h(this))throw new TypeError("invalid invocation. `this` is not a boolean array.");if(!b(r))throw new TypeError(f("invalid argument. First argument must be an integer. Value: `%s`.",r));if(n=this._length,r<0&&(r+=n),r<0||r>=n)throw new RangeError(f("invalid argument. Index argument is out-of-bounds. Value: `%s`.",r));if(!_(t))throw new TypeError(f("invalid argument. Second argument must be a boolean. Value: `%s`.",t));return e=new this.constructor(this._buffer),i=e._buffer,t?i[r]=1:i[r]=0,e});Y.exports=u});var x=W();module.exports=x;
-/**
-* @license Apache-2.0
-*
-* Copyright (c) 2024 The Stdlib Authors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-//# sourceMappingURL=index.js.map
diff --git a/dist/index.js.map b/dist/index.js.map
deleted file mode 100644
index 7a970c3..0000000
--- a/dist/index.js.map
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "version": 3,
- "sources": ["../lib/from_iterator.js", "../lib/from_iterator_map.js", "../lib/from_array.js", "../lib/main.js", "../lib/index.js"],
- "sourcesContent": ["/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Boolean = require( '@stdlib/boolean-ctor' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @returns {Array} output array\n*/\nfunction fromIterator( it ) {\n\tvar out;\n\tvar v;\n\n\tout = [];\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\tout.push( Boolean( v.value ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIterator;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Boolean = require( '@stdlib/boolean-ctor' );\n\n\n// MAIN //\n\n/**\n* Returns an array of iterated values.\n*\n* @private\n* @param {Object} it - iterator\n* @param {Function} clbk - callback to invoke for each iterated value\n* @param {*} thisArg - invocation context\n* @returns {Array} output array\n*/\nfunction fromIteratorMap( it, clbk, thisArg ) {\n\tvar out;\n\tvar v;\n\tvar i;\n\n\tout = [];\n\ti = -1;\n\twhile ( true ) {\n\t\tv = it.next();\n\t\tif ( v.done ) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t\tout.push( Boolean( clbk.call( thisArg, v.value, i ) ) );\n\t}\n\treturn out;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromIteratorMap;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n// MODULES //\n\nvar Boolean = require( '@stdlib/boolean-ctor' );\n\n\n// MAIN //\n\n/**\n* Fills an output array with \"boolean\" values.\n*\n* @private\n* @param {Uint8Array} buf - output array\n* @param {Array} arr - input array\n* @returns {Uint8Array} output array\n*/\nfunction fromArray( buf, arr ) {\n\tvar len;\n\tvar i;\n\n\tlen = arr.length;\n\tfor ( i = 0; i < len; i++ ) {\n\t\tbuf[ i ] = Boolean( arr[ i ] );\n\t}\n\treturn buf;\n}\n\n\n// EXPORTS //\n\nmodule.exports = fromArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n/* eslint-disable no-restricted-syntax, no-invalid-this */\n\n'use strict';\n\n// MODULES //\n\nvar isNonNegativeInteger = require( '@stdlib/assert-is-nonnegative-integer' ).isPrimitive;\nvar isCollection = require( '@stdlib/assert-is-collection' );\nvar isArrayBuffer = require( '@stdlib/assert-is-arraybuffer' );\nvar isObject = require( '@stdlib/assert-is-object' );\nvar isFunction = require( '@stdlib/assert-is-function' );\nvar isBoolean = require( '@stdlib/assert-is-boolean' ).isPrimitive;\nvar isInteger = require( '@stdlib/assert-is-integer' ).isPrimitive;\nvar isString = require( '@stdlib/assert-is-string' ).isPrimitive;\nvar isStringArray = require( '@stdlib/assert-is-string-array' ).primitives;\nvar hasIteratorSymbolSupport = require( '@stdlib/assert-has-iterator-symbol-support' );\nvar ITERATOR_SYMBOL = require( '@stdlib/symbol-iterator' );\nvar setReadOnly = require( '@stdlib/utils-define-nonenumerable-read-only-property' );\nvar setReadOnlyAccessor = require( '@stdlib/utils-define-nonenumerable-read-only-accessor' );\nvar Uint8Array = require( '@stdlib/array-uint8' );\nvar Boolean = require( '@stdlib/boolean-ctor' );\nvar getter = require( '@stdlib/array-base-getter' );\nvar floor = require( '@stdlib/math-base-special-floor' );\nvar accessorGetter = require( '@stdlib/array-base-accessor-getter' );\nvar format = require( '@stdlib/string-format' );\nvar fromIterator = require( './from_iterator.js' );\nvar fromIteratorMap = require( './from_iterator_map.js' );\nvar fromArray = require( './from_array.js' );\n\n\n// VARIABLES //\n\nvar BYTES_PER_ELEMENT = Uint8Array.BYTES_PER_ELEMENT;\nvar HAS_ITERATOR_SYMBOL = hasIteratorSymbolSupport();\n\n\n// FUNCTIONS //\n\n/**\n* Returns a boolean indicating if a value is a `BooleanArray`.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a `BooleanArray`\n*/\nfunction isBooleanArray( value ) {\n\treturn (\n\t\ttypeof value === 'object' &&\n\t\tvalue !== null &&\n\t\tvalue.constructor.name === 'BooleanArray' &&\n\t\tvalue.BYTES_PER_ELEMENT === BYTES_PER_ELEMENT\n\t);\n}\n\n/**\n* Returns a boolean indicating if a value is a boolean typed array constructor.\n*\n* @private\n* @param {*} value - value to test\n* @returns {boolean} boolean indicating if a value is a boolean typed array constructor\n*/\nfunction isBooleanArrayConstructor( value ) {\n\treturn ( value === BooleanArray );\n}\n\n\n// MAIN //\n\n/**\n* Boolean array constructor.\n*\n* @constructor\n* @param {(NonNegativeInteger|Collection|ArrayBuffer|Iterable)} [arg] - length, typed array, array-like object, buffer, or an iterable\n* @param {NonNegativeInteger} [byteOffset=0] - byte offset\n* @param {NonNegativeInteger} [length] - view length\n* @throws {TypeError} if provided only a single argument, must provide a valid argument\n* @throws {TypeError} byte offset must be a nonnegative integer\n* @throws {RangeError} must provide sufficient memory to accommodate byte offset and view length requirements\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var arr = new BooleanArray( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var arr = new BooleanArray( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array-buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 16\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array-buffer' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 8\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array-buffer' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new BooleanArray( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nfunction BooleanArray() {\n\tvar byteOffset;\n\tvar nargs;\n\tvar buf;\n\tvar len;\n\tvar arg;\n\n\tnargs = arguments.length;\n\tif ( !(this instanceof BooleanArray) ) {\n\t\tif ( nargs === 0 ) {\n\t\t\treturn new BooleanArray();\n\t\t}\n\t\tif ( nargs === 1 ) {\n\t\t\treturn new BooleanArray( arguments[0] );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\treturn new BooleanArray( arguments[0], arguments[1] );\n\t\t}\n\t\treturn new BooleanArray( arguments[0], arguments[1], arguments[2] );\n\t}\n\t// Create the underlying data buffer...\n\tif ( nargs === 0 ) {\n\t\tbuf = new Uint8Array( 0 ); // backward-compatibility\n\t} else if ( nargs === 1 ) {\n\t\targ = arguments[ 0 ];\n\t\tif ( isNonNegativeInteger( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isCollection( arg ) ) {\n\t\t\tbuf = fromArray( new Uint8Array( arg.length ), arg );\n\t\t} else if ( isArrayBuffer( arg ) ) {\n\t\t\tbuf = new Uint8Array( arg );\n\t\t} else if ( isObject( arg ) ) {\n\t\t\tif ( HAS_ITERATOR_SYMBOL === false ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Environment lacks Symbol.iterator support. Must provide a length, ArrayBuffer, typed array, or array-like object. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tif ( !isFunction( arg[ ITERATOR_SYMBOL ] ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = arg[ ITERATOR_SYMBOL ]();\n\t\t\tif ( !isFunction( buf.next ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( fromIterator( buf ) );\n\t\t} else {\n\t\t\tthrow new TypeError( format( 'invalid argument. Must provide a length, ArrayBuffer, typed array, array-like object, or an iterable. Value: `%s`.', arg ) );\n\t\t}\n\t} else {\n\t\tbuf = arguments[ 0 ];\n\t\tif ( !isArrayBuffer( buf ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an ArrayBuffer. Value: `%s`.', buf ) );\n\t\t}\n\t\tbyteOffset = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( byteOffset ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Byte offset must be a nonnegative integer. Value: `%s`.', byteOffset ) );\n\t\t}\n\t\tif ( nargs === 2 ) {\n\t\t\tbuf = new Uint8Array( buf, byteOffset );\n\t\t} else {\n\t\t\tlen = arguments[ 2 ];\n\t\t\tif ( !isNonNegativeInteger( len ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Length must be a nonnegative integer. Value: `%s`.', len ) );\n\t\t\t}\n\t\t\tif ( (len*BYTES_PER_ELEMENT) > (buf.byteLength-byteOffset) ) {\n\t\t\t\tthrow new RangeError( format( 'invalid arguments. ArrayBuffer has insufficient capacity. Either decrease the array length or provide a bigger buffer. Minimum capacity: `%u`.', len*BYTES_PER_ELEMENT ) );\n\t\t\t}\n\t\t\tbuf = new Uint8Array( buf, byteOffset, len );\n\t\t}\n\t}\n\tsetReadOnly( this, '_buffer', buf );\n\tsetReadOnly( this, '_length', buf.length );\n\n\treturn this;\n}\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var nbytes = BooleanArray.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray, 'BYTES_PER_ELEMENT', BYTES_PER_ELEMENT );\n\n/**\n* Constructor name.\n*\n* @name name\n* @memberof BooleanArray\n* @readonly\n* @type {string}\n* @default 'BooleanArray'\n*\n* @example\n* var str = BooleanArray.name;\n* // returns 'BooleanArray'\n*/\nsetReadOnly( BooleanArray, 'name', 'BooleanArray' );\n\n/**\n* Creates a new boolean array from an array-like object or an iterable.\n*\n* @name from\n* @memberof BooleanArray\n* @type {Function}\n* @param {(Collection|Iterable)} src - array-like object or iterable\n* @param {Function} [clbk] - callback to invoke for each source element\n* @param {*} [thisArg] - context\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an array-like object or an iterable\n* @throws {TypeError} second argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.from( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* function clbk( v ) {\n* return !v;\n* }\n*\n* var arr = BooleanArray.from( [ true, false ], clbk );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\nsetReadOnly( BooleanArray, 'from', function from( src ) {\n\tvar thisArg;\n\tvar nargs;\n\tvar clbk;\n\tvar out;\n\tvar buf;\n\tvar tmp;\n\tvar get;\n\tvar len;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tnargs = arguments.length;\n\tif ( nargs > 1 ) {\n\t\tclbk = arguments[ 1 ];\n\t\tif ( !isFunction( clbk ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a function. Value: `%s`.', clbk ) );\n\t\t}\n\t\tif ( nargs > 2 ) {\n\t\t\tthisArg = arguments[ 2 ];\n\t\t}\n\t}\n\tif ( isCollection( src ) ) {\n\t\tif ( clbk ) {\n\t\t\tlen = src.length;\n\t\t\tif ( src.get && src.set ) {\n\t\t\t\tget = accessorGetter( 'default' );\n\t\t\t} else {\n\t\t\t\tget = getter( 'default' );\n\t\t\t}\n\t\t\tout = new this( len );\n\t\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tbuf[ i ] = Boolean( clbk.call( thisArg, get( src, i ), i ) );\n\t\t\t}\n\t\t\treturn out;\n\t\t}\n\t\treturn new this( src );\n\t}\n\tif ( isObject( src ) && HAS_ITERATOR_SYMBOL && isFunction( src[ ITERATOR_SYMBOL ] ) ) { // eslint-disable-line max-len\n\t\tbuf = src[ ITERATOR_SYMBOL ]();\n\t\tif ( !isFunction( buf.next ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n\t\t}\n\t\tif ( clbk ) {\n\t\t\ttmp = fromIteratorMap( buf, clbk, thisArg );\n\t\t} else {\n\t\t\ttmp = fromIterator( buf );\n\t\t}\n\t\tlen = tmp.length;\n\t\tout = new this( len );\n\t\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tbuf[ i ] = tmp[ i ];\n\t\t}\n\t\treturn out;\n\t}\n\tthrow new TypeError( format( 'invalid argument. First argument must be an array-like object or an iterable. Value: `%s`.', src ) );\n});\n\n/**\n* Creates a new boolean array from a variable number of arguments.\n*\n* @name of\n* @memberof BooleanArray\n* @type {Function}\n* @param {...*} element - array elements\n* @throws {TypeError} `this` context must be a constructor\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = BooleanArray.of( true, true, true, true );\n* // returns \n*\n* var len = arr.length;\n* // returns 4\n*/\nsetReadOnly( BooleanArray, 'of', function of() {\n\tvar args;\n\tvar i;\n\tif ( !isFunction( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` context must be a constructor.' );\n\t}\n\tif ( !isBooleanArrayConstructor( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\targs = [];\n\tfor ( i = 0; i < arguments.length; i++ ) {\n\t\targs.push( arguments[ i ] );\n\t}\n\treturn new this( args );\n});\n\n/**\n* Returns an array element located at integer position (index) `i`, with support for both nonnegative and negative integer indices.\n*\n* @name at\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide an integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.at( 0 );\n* // returns true\n*\n* v = arr.at( -1 );\n* // returns true\n*\n* v = arr.at( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'at', function at( idx ) {\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide an integer. Value: `%s`.', idx ) );\n\t}\n\tlen = this._length;\n\tbuf = this._buffer;\n\tif ( idx < 0 ) {\n\t\tidx += len;\n\t}\n\tif ( idx < 0 || idx >= len ) {\n\t\treturn;\n\t}\n\treturn Boolean( buf[ idx ] );\n});\n\n/**\n* Pointer to the underlying data buffer.\n*\n* @name buffer\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {ArrayBuffer}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var buf = arr.buffer;\n* // returns \n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'buffer', function get() {\n\treturn this._buffer.buffer;\n});\n\n/**\n* Size (in bytes) of the array.\n*\n* @name byteLength\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteLength = arr.byteLength;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteLength', function get() {\n\treturn this._buffer.byteLength;\n});\n\n/**\n* Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.\n*\n* @name byteOffset\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var byteOffset = arr.byteOffset;\n* // returns 0\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'byteOffset', function get() {\n\treturn this._buffer.byteOffset;\n});\n\n/**\n* Size (in bytes) of each array element.\n*\n* @name BYTES_PER_ELEMENT\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {PositiveInteger}\n* @default 1\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var nbytes = arr.BYTES_PER_ELEMENT;\n* // returns 1\n*/\nsetReadOnly( BooleanArray.prototype, 'BYTES_PER_ELEMENT', BooleanArray.BYTES_PER_ELEMENT );\n\n/**\n* Copies a sequence of elements within the array to the position starting at `target`.\n*\n* @name copyWithin\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} target - index at which to start copying elements\n* @param {integer} start - source index at which to copy elements from\n* @param {integer} [end] - source index at which to stop copying elements from\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 4 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n* arr.set( true, 3 );\n*\n* // Copy the first two elements to the last two elements:\n* arr.copyWithin( 2, 0, 2 );\n*\n* var v = arr.get( 2 );\n* // returns true\n*\n* v = arr.get( 3 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'copyWithin', function copyWithin( target, start ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\t// FIXME: prefer a functional `copyWithin` implementation which addresses lack of universal browser support (e.g., IE11 and Safari) or ensure that typed arrays are polyfilled\n\tif ( arguments.length === 2 ) {\n\t\tthis._buffer.copyWithin( target, start );\n\t} else {\n\t\tthis._buffer.copyWithin( target, start, arguments[2] );\n\t}\n\treturn this;\n});\n\n/**\n* Returns an iterator for iterating over array key-value pairs.\n*\n* @name entries\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var it = arr.entries();\n*\n* var v = it.next().value;\n* // returns [ 0, true ]\n*\n* v = it.next().value;\n* // returns [ 1, false ]\n*\n* v = it.next().value;\n* // returns [ 2, true ]\n*\n* var bool = it.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'entries', function entries() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar buf;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': [ i, Boolean( buf[ i ] ) ],\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.entries();\n\t}\n});\n\n/**\n* Tests whether all elements in an array pass a test implemented by a predicate function.\n*\n* @name every\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether all elements pass a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n*\n* var bool = arr.every( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'every', function every( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( !predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n});\n\n/**\n* Returns a modified typed array filled with a fill value.\n*\n* @name fill\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} value - fill value\n* @param {integer} [start=0] - starting index (inclusive)\n* @param {integer} [end] - ending index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean\n* @throws {TypeError} second argument must be an integer\n* @throws {TypeError} third argument must be an integer\n* @returns {BooleanArray} modified array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.fill( true, 1 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'fill', function fill( value, start, end ) {\n\tvar buf;\n\tvar len;\n\tvar val;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( start ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', start ) );\n\t\t}\n\t\tif ( start < 0 ) {\n\t\t\tstart += len;\n\t\t\tif ( start < 0 ) {\n\t\t\t\tstart = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length > 2 ) {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Third argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t} else {\n\t\t\tend = len;\n\t\t}\n\t} else {\n\t\tstart = 0;\n\t\tend = len;\n\t}\n\tif ( value ) {\n\t\tval = 1;\n\t} else {\n\t\tval = 0;\n\t}\n\tfor ( i = start; i < end; i++ ) {\n\t\tbuf[ i ] = val;\n\t}\n\treturn this;\n});\n\n/**\n* Returns a new array containing the elements of an array which pass a test implemented by a predicate function.\n*\n* @name filter\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - test function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} boolean array\n*\n* @example\n* function predicate( v ) {\n* return ( v === true );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.filter( predicate );\n* // returns \n*\n* var len = out.length;\n* // returns 2\n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'filter', function filter( predicate, thisArg ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\tvar v;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\tout.push( v );\n\t\t}\n\t}\n\treturn new this.constructor( out );\n});\n\n/**\n* Returns the first element in an array for which a predicate function returns a truthy value.\n*\n* @name find\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.find( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'find', function find( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the first element in an array for which a predicate function returns a truthy value.\n*\n* @name findIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findIndex( predicate );\n* // returns 0\n*/\nsetReadOnly( BooleanArray.prototype, 'findIndex', function findIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLast\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {(boolean|void)} array element or undefined\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLast( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'findLast', function findLast( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn v;\n\t\t}\n\t}\n});\n\n/**\n* Returns the index of the last element in an array for which a predicate function returns a truthy value.\n*\n* @name findLastIndex\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {integer} index or -1\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var v = arr.findLastIndex( predicate );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'findLastIndex', function findLastIndex( predicate, thisArg ) {\n\tvar buf;\n\tvar v;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = this._length-1; i >= 0; i-- ) {\n\t\tv = Boolean( buf[ i ] );\n\t\tif ( predicate.call( thisArg, v, i, this ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Invokes a function once for each array element.\n*\n* @name forEach\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - function to invoke\n* @param {*} [thisArg] - function invocation context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n*\n* @example\n* function log( v, i ) {\n* console.log( '%s: %s', i, v.toString() );\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.forEach( log );\n*/\nsetReadOnly( BooleanArray.prototype, 'forEach', function forEach( fcn, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', fcn ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tfcn.call( thisArg, Boolean( buf[ i ] ), i, this );\n\t}\n});\n\n/**\n* Returns an array element.\n*\n* @name get\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {NonNegativeInteger} idx - element index\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} must provide a nonnegative integer\n* @returns {(boolean|void)} array element\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 100 );\n* // returns undefined\n*/\nsetReadOnly( BooleanArray.prototype, 'get', function get( idx ) {\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isNonNegativeInteger( idx ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Must provide a nonnegative integer. Value: `%s`.', idx ) );\n\t}\n\tif ( idx >= this._length ) {\n\t\treturn;\n\t}\n\treturn Boolean( this._buffer[ idx ] );\n});\n\n/**\n* Returns a boolean indicating whether an array includes a provided value.\n*\n* @name includes\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - search element\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {boolean} boolean indicating whether an array includes a value\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var bool = arr.includes( true );\n* // returns true\n*\n* bool = arr.includes( false, 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'includes', function includes( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Returns the first index at which a given element can be found.\n*\n* @name indexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex=0] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( true, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.indexOf( true );\n* // returns 0\n*\n* idx = arr.indexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.indexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'indexOf', function indexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t\tif ( fromIndex < 0 ) {\n\t\t\t\tfromIndex = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfromIndex = 0;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i < this._length; i++ ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Returns a new string by concatenating all array elements.\n*\n* @name join\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {string} [separator=','] - element separator\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.join();\n* // returns 'true,false,true'\n*\n* str = arr.join( '|' );\n* // returns 'true|false|true'\n*/\nsetReadOnly( BooleanArray.prototype, 'join', function join( separator ) {\n\tvar buf;\n\tvar out;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length > 0 ) {\n\t\tif ( !isString( separator ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string. Value: `%s`.', separator ) );\n\t\t}\n\t} else {\n\t\tseparator = ',';\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( separator );\n});\n\n/**\n* Returns an iterator for iterating over each index key in a typed array.\n*\n* @name keys\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.keys();\n*\n* var v = iter.next().value;\n* // returns 0\n*\n* v = iter.next().value;\n* // returns 1\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'keys', function keys() {\n\tvar self;\n\tvar iter;\n\tvar len;\n\tvar FLG;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': i,\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.keys();\n\t}\n});\n\n/**\n* Returns the last index at which a given element can be found.\n*\n* @name lastIndexOf\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {boolean} searchElement - element to find\n* @param {integer} [fromIndex] - starting index (inclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a boolean value\n* @throws {TypeError} second argument must be an integer\n* @returns {integer} index or -1\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( true, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var idx = arr.lastIndexOf( true );\n* // returns 4\n*\n* idx = arr.lastIndexOf( false, 2 );\n* // returns -1\n*\n* idx = arr.lastIndexOf( false, -3 );\n* // returns -1\n*/\nsetReadOnly( BooleanArray.prototype, 'lastIndexOf', function lastIndexOf( searchElement, fromIndex ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isBoolean( searchElement ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a boolean. Value: `%s`.', searchElement ) );\n\t}\n\tif ( arguments.length > 1 ) {\n\t\tif ( !isInteger( fromIndex ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', fromIndex ) );\n\t\t}\n\t\tif ( fromIndex >= this._length ) {\n\t\t\tfromIndex = this._length - 1;\n\t\t} else if ( fromIndex < 0 ) {\n\t\t\tfromIndex += this._length;\n\t\t}\n\t} else {\n\t\tfromIndex = this._length - 1;\n\t}\n\tbuf = this._buffer;\n\tfor ( i = fromIndex; i >= 0; i-- ) {\n\t\tif ( searchElement === Boolean( buf[ i ] ) ) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n});\n\n/**\n* Number of array elements.\n*\n* @name length\n* @memberof BooleanArray.prototype\n* @readonly\n* @type {NonNegativeInteger}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var len = arr.length;\n* // returns 10\n*/\nsetReadOnlyAccessor( BooleanArray.prototype, 'length', function get() {\n\treturn this._length;\n});\n\n/**\n* Returns a new array with each element being the result of a provided callback function.\n*\n* @name map\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} fcn - callback function\n* @param {*} [thisArg] - callback function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} new boolean array\n*\n* @example\n* function invert( v ) {\n* return !v;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.map( invert );\n* // returns \n*\n* var z = out.get( 0 );\n* // returns false\n*\n* z = out.get( 1 );\n* // returns true\n*\n* z = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'map', function map( fcn, thisArg ) {\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( fcn ) ) {\n\t\tthrow new TypeError( 'invalid argument. First argument must be a function. Value: `%s`.', fcn );\n\t}\n\tbuf = this._buffer;\n\tout = new this.constructor( this._length );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\toutbuf[ i ] = Boolean( fcn.call( thisArg, Boolean( buf[ i ] ), i, this ) );\n\t}\n\treturn out;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduce\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduce( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduce', function reduce( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = 0;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ 0 ] );\n\t\ti = 1;\n\t}\n\tfor ( ; i < len; i++ ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.\n*\n* @name reduceRight\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} reducer - callback function\n* @param {*} [initialValue] - initial value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {Error} if not provided an initial value, the array must have at least one element\n* @returns {*} accumulated result\n*\n* @example\n* function reducer( acc, v ) {\n* if ( v ) {\n* return acc + 1;\n* }\n* return acc;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.reduceRight( reducer, 0 );\n* // returns 2\n*/\nsetReadOnly( BooleanArray.prototype, 'reduceRight', function reduceRight( reducer, initialValue ) {\n\tvar buf;\n\tvar len;\n\tvar acc;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( reducer ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', reducer ) );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length > 1 ) {\n\t\tacc = initialValue;\n\t\ti = len - 1;\n\t} else {\n\t\tif ( len === 0 ) {\n\t\t\tthrow new Error( 'invalid operation. If not provided an initial value, an array must contain at least one element.' );\n\t\t}\n\t\tacc = Boolean( buf[ len-1 ] );\n\t\ti = len - 2;\n\t}\n\tfor ( ; i >= 0; i-- ) {\n\t\tacc = reducer( acc, Boolean( buf[ i ] ), i, this );\n\t}\n\treturn acc;\n});\n\n/**\n* Reverses an array in-place.\n*\n* @name reverse\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.reverse();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'reverse', function reverse() {\n\tvar buf;\n\tvar tmp;\n\tvar len;\n\tvar N;\n\tvar i;\n\tvar j;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tN = floor( len / 2 );\n\tfor ( i = 0; i < N; i++ ) {\n\t\tj = len - i - 1;\n\t\ttmp = buf[ i ];\n\t\tbuf[ i ] = buf[ j ];\n\t\tbuf[ j ] = tmp;\n\t}\n\treturn this;\n});\n\n/**\n* Sets an array element.\n*\n* ## Notes\n*\n* - When provided a typed array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.\n*\n* In the other overlapping scenario,\n*\n* ```text\n* buf: ---------------------\n* src: ---------------------\n* ```\n*\n* by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values, as intended.\n*\n* @name set\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(Collection|BooleanArray|*)} value - value(s)\n* @param {NonNegativeInteger} [i=0] - element index at which to start writing values\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} index argument must be a nonnegative integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {RangeError} target array lacks sufficient storage to accommodate source values\n* @returns {void}\n*\n* @example\n* var arr = new BooleanArray( 10 );\n*\n* var v = arr.get( 0 );\n* // returns false\n*\n* arr.set( [ true, false ], 0 );\n*\n* v = arr.get( 0 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'set', function set( value ) {\n\tvar sbuf;\n\tvar idx;\n\tvar buf;\n\tvar tmp;\n\tvar N;\n\tvar i;\n\tvar j;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length > 1 ) {\n\t\tidx = arguments[ 1 ];\n\t\tif ( !isNonNegativeInteger( idx ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. Index argument must be a nonnegative integer. Value: `%s`.', idx ) );\n\t\t}\n\t} else {\n\t\tidx = 0;\n\t}\n\tif ( isCollection( value ) ) {\n\t\tN = value.length;\n\t\tif ( idx+N > this._length ) {\n\t\t\tthrow new RangeError( 'invalid arguments. Target array lacks sufficient storage to accommodate source values.' );\n\t\t}\n\t\tif ( isBooleanArray( value ) ) {\n\t\t\tsbuf = value._buffer; // eslint-disable-line no-underscore-dangle\n\t\t} else {\n\t\t\tsbuf = value;\n\t\t}\n\t\t// Check for overlapping memory...\n\t\tj = buf.byteOffset + (idx*BYTES_PER_ELEMENT);\n\t\tif (\n\t\t\tsbuf.buffer === buf.buffer &&\n\t\t\t(\n\t\t\t\tsbuf.byteOffset < j &&\n\t\t\t\tsbuf.byteOffset+sbuf.byteLength > j\n\t\t\t)\n\t\t) {\n\t\t\t// We need to copy source values...\n\t\t\ttmp = new Uint8Array( sbuf.length );\n\t\t\tfor ( i = 0; i < sbuf.length; i++ ) {\n\t\t\t\ttmp[ i ] = sbuf[ i ]; // TODO: handle accessor arrays\n\t\t\t}\n\t\t\tsbuf = tmp;\n\t\t}\n\t\tfor ( i = 0; i < N; idx++, i++ ) {\n\t\t\tbuf[ idx ] = ( sbuf[ i ] ) ? 1 : 0;\n\t\t}\n\t\treturn;\n\t}\n\tif ( idx >= this._length ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%u`.', idx ) );\n\t}\n\tbuf[ idx ] = ( value ) ? 1 : 0;\n});\n\n/**\n* Copies a portion of a typed array to a new typed array.\n*\n* @name slice\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be integer\n* @throws {TypeError} second argument must be integer\n* @returns {BooleanArray} boolean array\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var out = arr.slice();\n* // returns \n*\n* var len = out.length;\n* // returns 5\n*\n* var bool = out.get( 0 );\n* // returns true\n*\n* bool = out.get( len-1 );\n* // returns true\n*\n* out = arr.slice( 1, -2 );\n* // returns \n*\n* len = out.length;\n* // returns 2\n*\n* bool = out.get( 0 );\n* // returns false\n*\n* bool = out.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'slice', function slice( begin, end ) {\n\tvar outlen;\n\tvar outbuf;\n\tvar out;\n\tvar buf;\n\tvar len;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin < end ) {\n\t\toutlen = end - begin;\n\t} else {\n\t\toutlen = 0;\n\t}\n\tout = new this.constructor( outlen );\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < outlen; i++ ) {\n\t\toutbuf[ i ] = buf[ i+begin ];\n\t}\n\treturn out;\n});\n\n/**\n* Tests whether at least one element in an array passes a test implemented by a predicate function.\n*\n* @name some\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} predicate - predicate function\n* @param {*} [thisArg] - predicate function execution context\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {boolean} boolean indicating whether at least one element passes a test\n*\n* @example\n* function predicate( v ) {\n* return v === true;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( false, 0 );\n* arr.set( true, 1 );\n* arr.set( false, 2 );\n*\n* var bool = arr.some( predicate );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'some', function some( predicate, thisArg ) {\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isFunction( predicate ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', predicate ) );\n\t}\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( predicate.call( thisArg, Boolean( buf[ i ] ), i, this ) ) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n});\n\n/**\n* Sorts an array in-place.\n*\n* @name sort\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* arr.sort( compare );\n*\n* var v = arr.get( 0 );\n* // returns true\n*\n* v = arr.get( 1 );\n* // returns true\n*\n* v = arr.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'sort', function sort( compareFcn ) {\n\tvar buf;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tif ( arguments.length === 0 ) {\n\t\tbuf.sort();\n\t\treturn this;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\tbuf.sort( compare );\n\treturn this;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.\n*\n* @name subarray\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} [begin] - start index (inclusive)\n* @param {integer} [end] - end index (exclusive)\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {TypeError} second argument must be an integer\n* @returns {BooleanArray} subarray\n*\n* @example\n* var arr = new BooleanArray( 5 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n* arr.set( false, 3 );\n* arr.set( true, 4 );\n*\n* var subarr = arr.subarray();\n* // returns \n*\n* var len = subarr.length;\n* // returns 5\n*\n* var bool = subarr.get( 0 );\n* // returns true\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*\n* subarr = arr.subarray( 1, -2 );\n* // returns \n*\n* len = subarr.length;\n* // returns 2\n*\n* bool = subarr.get( 0 );\n* // returns false\n*\n* bool = subarr.get( len-1 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'subarray', function subarray( begin, end ) {\n\tvar offset;\n\tvar buf;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tbuf = this._buffer;\n\tlen = this._length;\n\tif ( arguments.length === 0 ) {\n\t\tbegin = 0;\n\t\tend = len;\n\t} else {\n\t\tif ( !isInteger( begin ) ) {\n\t\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', begin ) );\n\t\t}\n\t\tif ( begin < 0 ) {\n\t\t\tbegin += len;\n\t\t\tif ( begin < 0 ) {\n\t\t\t\tbegin = 0;\n\t\t\t}\n\t\t}\n\t\tif ( arguments.length === 1 ) {\n\t\t\tend = len;\n\t\t} else {\n\t\t\tif ( !isInteger( end ) ) {\n\t\t\t\tthrow new TypeError( format( 'invalid argument. Second argument must be an integer. Value: `%s`.', end ) );\n\t\t\t}\n\t\t\tif ( end < 0 ) {\n\t\t\t\tend += len;\n\t\t\t\tif ( end < 0 ) {\n\t\t\t\t\tend = 0;\n\t\t\t\t}\n\t\t\t} else if ( end > len ) {\n\t\t\t\tend = len;\n\t\t\t}\n\t\t}\n\t}\n\tif ( begin >= len ) {\n\t\tlen = 0;\n\t\toffset = buf.byteLength;\n\t} else if ( begin >= end ) {\n\t\tlen = 0;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t} else {\n\t\tlen = end - begin;\n\t\toffset = buf.byteOffset + ( begin*BYTES_PER_ELEMENT );\n\t}\n\treturn new this.constructor( buf.buffer, offset, ( len < 0 ) ? 0 : len );\n});\n\n/**\n* Serializes an array as a locale-specific string.\n*\n* @name toLocaleString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {(string|Array)} [locales] - locale identifier(s)\n* @param {Object} [options] - configuration options\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a string or an array of strings\n* @throws {TypeError} options argument must be an object\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toLocaleString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toLocaleString', function toLocaleString( locales, options ) {\n\tvar opts;\n\tvar loc;\n\tvar out;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( arguments.length === 0 ) {\n\t\tloc = [];\n\t} else if ( isString( locales ) || isStringArray( locales ) ) {\n\t\tloc = locales;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a string or an array of strings. Value: `%s`.', locales ) );\n\t}\n\tif ( arguments.length < 2 ) {\n\t\topts = {};\n\t} else if ( isObject( options ) ) {\n\t\topts = options;\n\t} else {\n\t\tthrow new TypeError( format( 'invalid argument. Options argument must be an object. Value: `%s`.', options ) );\n\t}\n\tbuf = this._buffer;\n\tout = [];\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tout.push( Boolean( buf[ i ] ).toLocaleString( loc, opts ) );\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns a new typed array containing the elements in reversed order.\n*\n* @name toReversed\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {BooleanArray} reversed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( false, 2 );\n*\n* var out = arr.toReversed();\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*\n* v = out.get( 1 );\n* // returns false\n*\n* v = out.get( 2 );\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'toReversed', function toReversed() {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ len - i - 1 ];\n\t}\n\treturn out;\n});\n\n/**\n* Returns a new typed array containing the elements in sorted order.\n*\n* @name toSorted\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {Function} [compareFcn] - comparison function\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be a function\n* @returns {BooleanArray} sorted array\n*\n* @example\n* function compare( a, b ) {\n* if ( a === false ) {\n* if ( b === false ) {\n* return 0;\n* }\n* return 1;\n* }\n* if ( b === true ) {\n* return 0;\n* }\n* return -1;\n* }\n*\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.sort( compare );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns true\n*\n* v = out.get( 1 );\n* // returns true\n*\n* v = out.get( 2 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'toSorted', function toSorted( compareFcn ) {\n\tvar outbuf;\n\tvar out;\n\tvar len;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tlen = this._length;\n\tout = new this.constructor( len );\n\tbuf = this._buffer;\n\toutbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tfor ( i = 0; i < len; i++ ) {\n\t\toutbuf[ i ] = buf[ i ];\n\t}\n\tif ( arguments.length === 0 ) {\n\t\toutbuf.sort();\n\t\treturn out;\n\t}\n\tif ( !isFunction( compareFcn ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be a function. Value: `%s`.', compareFcn ) );\n\t}\n\toutbuf.sort( compare );\n\treturn out;\n\n\t/**\n\t* Comparison function for sorting.\n\t*\n\t* @private\n\t* @param {boolean} a - first boolean value for comparison\n\t* @param {boolean} b - second boolean value for comparison\n\t* @returns {number} comparison result\n\t*/\n\tfunction compare( a, b ) {\n\t\treturn compareFcn( Boolean( a ), Boolean( b ) );\n\t}\n});\n\n/**\n* Serializes an array as a string.\n*\n* @name toString\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {string} string representation\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var str = arr.toString();\n* // returns 'true,false,true'\n*/\nsetReadOnly( BooleanArray.prototype, 'toString', function toString() {\n\tvar out;\n\tvar buf;\n\tvar i;\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tout = [];\n\tbuf = this._buffer;\n\tfor ( i = 0; i < this._length; i++ ) {\n\t\tif ( buf[i] ) {\n\t\t\tout.push( 'true' );\n\t\t} else {\n\t\t\tout.push( 'false' );\n\t\t}\n\t}\n\treturn out.join( ',' );\n});\n\n/**\n* Returns an iterator for iterating over each value in a typed array.\n*\n* @name values\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @throws {TypeError} `this` must be a boolean array\n* @returns {Iterator} iterator\n*\n* @example\n* var arr = new BooleanArray( 2 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n*\n* var iter = arr.values();\n*\n* var v = iter.next().value;\n* // returns true\n*\n* v = iter.next().value;\n* // returns false\n*\n* var bool = iter.next().done;\n* // returns true\n*/\nsetReadOnly( BooleanArray.prototype, 'values', function values() {\n\tvar iter;\n\tvar self;\n\tvar len;\n\tvar FLG;\n\tvar buf;\n\tvar i;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tself = this;\n\tbuf = this._buffer;\n\tlen = this._length;\n\n\t// Initialize an iteration index:\n\ti = -1;\n\n\t// Create an iterator protocol-compliant object:\n\titer = {};\n\tsetReadOnly( iter, 'next', next );\n\tsetReadOnly( iter, 'return', end );\n\n\tif ( ITERATOR_SYMBOL ) {\n\t\tsetReadOnly( iter, ITERATOR_SYMBOL, factory );\n\t}\n\treturn iter;\n\n\t/**\n\t* Returns an iterator protocol-compliant object containing the next iterated value.\n\t*\n\t* @private\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction next() {\n\t\ti += 1;\n\t\tif ( FLG || i >= len ) {\n\t\t\treturn {\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'value': Boolean( buf[ i ] ),\n\t\t\t'done': false\n\t\t};\n\t}\n\n\t/**\n\t* Finishes an iterator.\n\t*\n\t* @private\n\t* @param {*} [value] - value to return\n\t* @returns {Object} iterator protocol-compliant object\n\t*/\n\tfunction end( value ) {\n\t\tFLG = true;\n\t\tif ( arguments.length ) {\n\t\t\treturn {\n\t\t\t\t'value': value,\n\t\t\t\t'done': true\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\t'done': true\n\t\t};\n\t}\n\n\t/**\n\t* Returns a new iterator.\n\t*\n\t* @private\n\t* @returns {Iterator} iterator\n\t*/\n\tfunction factory() {\n\t\treturn self.values();\n\t}\n});\n\n/**\n* Returns a new typed array with the element at a provided index replaced with a provided value.\n*\n* @name with\n* @memberof BooleanArray.prototype\n* @type {Function}\n* @param {integer} index - element index\n* @param {boolean} value - new value\n* @throws {TypeError} `this` must be a boolean array\n* @throws {TypeError} first argument must be an integer\n* @throws {RangeError} index argument is out-of-bounds\n* @throws {TypeError} second argument must be a boolean\n* @returns {BooleanArray} new typed array\n*\n* @example\n* var arr = new BooleanArray( 3 );\n*\n* arr.set( true, 0 );\n* arr.set( false, 1 );\n* arr.set( true, 2 );\n*\n* var out = arr.with( 0, false );\n* // returns \n*\n* var v = out.get( 0 );\n* // returns false\n*/\nsetReadOnly( BooleanArray.prototype, 'with', function copyWith( index, value ) {\n\tvar buf;\n\tvar out;\n\tvar len;\n\n\tif ( !isBooleanArray( this ) ) {\n\t\tthrow new TypeError( 'invalid invocation. `this` is not a boolean array.' );\n\t}\n\tif ( !isInteger( index ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. First argument must be an integer. Value: `%s`.', index ) );\n\t}\n\tlen = this._length;\n\tif ( index < 0 ) {\n\t\tindex += len;\n\t}\n\tif ( index < 0 || index >= len ) {\n\t\tthrow new RangeError( format( 'invalid argument. Index argument is out-of-bounds. Value: `%s`.', index ) );\n\t}\n\tif ( !isBoolean( value ) ) {\n\t\tthrow new TypeError( format( 'invalid argument. Second argument must be a boolean. Value: `%s`.', value ) );\n\t}\n\tout = new this.constructor( this._buffer );\n\tbuf = out._buffer; // eslint-disable-line no-underscore-dangle\n\tif ( value ) {\n\t\tbuf[ index ] = 1;\n\t} else {\n\t\tbuf[ index ] = 0;\n\t}\n\treturn out;\n});\n\n\n// EXPORTS //\n\nmodule.exports = BooleanArray;\n", "/**\n* @license Apache-2.0\n*\n* Copyright (c) 2024 The Stdlib Authors.\n*\n* Licensed under the Apache License, Version 2.0 (the \"License\");\n* you may not use this file except in compliance with the License.\n* You may obtain a copy of the License at\n*\n* http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing, software\n* distributed under the License is distributed on an \"AS IS\" BASIS,\n* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n* See the License for the specific language governing permissions and\n* limitations under the License.\n*/\n\n'use strict';\n\n/**\n* Boolean array.\n*\n* @module @stdlib/array-bool\n*\n* @example\n* var BooleanArray = require( '@stdlib/array-bool' );\n*\n* var arr = new BooleanArray();\n* // returns \n*\n* var len = arr.length;\n* // returns 0\n*\n* @example\n* var BooleanArray = require( '@stdlib/array-bool' );\n*\n* var arr = new BooleanArray( 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var BooleanArray = require( '@stdlib/array-bool' );\n*\n* var arr = new BooleanArray( [ true, false ] );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array-buffer' );\n* var BooleanArray = require( '@stdlib/array-bool' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf );\n* // returns \n*\n* var len = arr.length;\n* // returns 16\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array-buffer' );\n* var BooleanArray = require( '@stdlib/array-bool' );\n*\n* var buf = new ArrayBuffer( 16 );\n* var arr = new BooleanArray( buf, 8 );\n* // returns \n*\n* var len = arr.length;\n* // returns 8\n*\n* @example\n* var ArrayBuffer = require( '@stdlib/array-buffer' );\n* var BooleanArray = require( '@stdlib/array-bool' );\n*\n* var buf = new ArrayBuffer( 32 );\n* var arr = new BooleanArray( buf, 8, 2 );\n* // returns \n*\n* var len = arr.length;\n* // returns 2\n*/\n\n// MODULES //\n\nvar main = require( './main.js' );\n\n\n// EXPORTS //\n\nmodule.exports = main;\n"],
- "mappings": "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",
- "names": ["require_from_iterator", "__commonJSMin", "exports", "module", "Boolean", "fromIterator", "it", "out", "v", "require_from_iterator_map", "__commonJSMin", "exports", "module", "Boolean", "fromIteratorMap", "it", "clbk", "thisArg", "out", "v", "i", "require_from_array", "__commonJSMin", "exports", "module", "Boolean", "fromArray", "buf", "arr", "len", "require_main", "__commonJSMin", "exports", "module", "isNonNegativeInteger", "isCollection", "isArrayBuffer", "isObject", "isFunction", "isBoolean", "isInteger", "isString", "isStringArray", "hasIteratorSymbolSupport", "ITERATOR_SYMBOL", "setReadOnly", "setReadOnlyAccessor", "Uint8Array", "Boolean", "getter", "floor", "accessorGetter", "format", "fromIterator", "fromIteratorMap", "fromArray", "BYTES_PER_ELEMENT", "HAS_ITERATOR_SYMBOL", "isBooleanArray", "value", "isBooleanArrayConstructor", "BooleanArray", "byteOffset", "nargs", "buf", "len", "arg", "src", "thisArg", "clbk", "out", "tmp", "get", "i", "args", "idx", "target", "start", "self", "iter", "FLG", "next", "end", "factory", "predicate", "val", "v", "fcn", "searchElement", "fromIndex", "separator", "outbuf", "reducer", "initialValue", "acc", "N", "j", "sbuf", "begin", "outlen", "compareFcn", "compare", "a", "b", "offset", "locales", "options", "opts", "loc", "index", "main"]
-}
diff --git a/docs/repl.txt b/docs/repl.txt
deleted file mode 100644
index 8bedabb..0000000
--- a/docs/repl.txt
+++ /dev/null
@@ -1,1266 +0,0 @@
-
-{{alias}}()
- A Boolean array.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var arr = new {{alias}}()
-
-
-
-{{alias}}( length )
- Creates a boolean array having a specified length.
-
- Parameters
- ----------
- length: integer
- Typed array length.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var arr = new {{alias}}( 10 )
-
- > var len = arr.length
- 10
-
-
-{{alias}}( booleanarray )
- Creates a boolean array from another boolean array.
-
- Parameters
- ----------
- booleanarray: BooleanArray
- Boolean array from which to generate another boolean array.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var arr1 = new {{alias}}( [ true, false, false, true ] )
-
- > var arr2 = new {{alias}}( arr1 )
-
- > var len = arr2.length
- 4
-
-
-{{alias}}( typedarray )
- Creates a boolean array from a typed array.
-
- Parameters
- ----------
- typedarray: TypedArray
- Typed array from which to generate boolean array.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var buf = new {{alias:@stdlib/array/uint8}}( [ 1, 0, 0, 1 ] )
-
- > var arr = new {{alias}}( buf )
-
- > var len = arr.length
- 4
-
-
-{{alias}}( obj )
- Creates a boolean array from an array-like object or iterable.
-
- Parameters
- ----------
- obj: Object
- Array-like object or iterable from which to generate a boolean array.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var arr1 = new {{alias}}( [ true, false, false, true ] )
-
- > var len = arr1.length
- 4
- > var arr2 = new {{alias}}( [ {}, null, '', 4 ] );
- > len = arr2.length
- 4
-
-
-{{alias}}( buffer[, byteOffset[, length]] )
- Returns a boolean array view of an ArrayBuffer.
-
- Parameters
- ----------
- buffer: ArrayBuffer
- Underlying ArrayBuffer.
-
- byteOffset: integer (optional)
- Integer byte offset specifying the location of the first typed array
- element. Default: 0.
-
- length: integer (optional)
- View length. If not provided, the view spans from the byteOffset to
- the end of the underlying ArrayBuffer.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var buf = new {{alias:@stdlib/array/buffer}}( 240 );
- > var arr1 = new {{alias}}( buf )
-
- > var len = arr1.length
- 240
- > var arr2 = new {{alias}}( buf, 8 )
-
- > len = arr2.length
- 232
- > var arr3 = new {{alias}}( buf, 8, 20 )
-
- > len = arr3.length
- 20
-
-
-{{alias}}.from( src[, clbk[, thisArg]] )
- Creates a new boolean array from an array-like object or an iterable.
-
- A callback function is provided two arguments:
-
- - value: source value.
- - index: source index.
-
- Parameters
- ----------
- src: ArrayLike|Iterable
- Source of array elements.
-
- clbk: Function (optional)
- Callback to invoke for each source element.
-
- thisArg: Any (optional)
- Callback execution context.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > function map( v ) { return !v };
- > var src = [ true, false ];
- > var arr = {{alias}}.from( src, map )
-
- > var len = arr.length
- 2
- > var v = arr.get( 0 )
- false
- > v = arr.get( 1 )
- true
-
-
-{{alias}}.of( element0[, element1[, ...elementN]] )
- Creates a new boolean array from a variable number of arguments.
-
- Parameters
- ----------
- element0: bool
- Array element.
-
- element1: bool (optional)
- Array element.
-
- elementN: ...bool (optional)
- Array elements.
-
- Returns
- -------
- out: BooleanArray
- A typed array.
-
- Examples
- --------
- > var arr = {{alias}}.of( true, false, false, true )
-
- > var len = arr.length
- 4
-
-
-{{alias}}.BYTES_PER_ELEMENT
- The size of each array element in bytes.
-
- Examples
- --------
- > var nbytes = {{alias}}.BYTES_PER_ELEMENT
- 1
-
-
-{{alias}}.name
- Typed array constructor name.
-
- Examples
- --------
- > var str = {{alias}}.name
- 'BooleanArray'
-
-
-{{alias}}.prototype.buffer
- Pointer to the underlying data buffer.
-
- Examples
- --------
- > var arr = new {{alias}}( 2 )
-
- > var buf = arr.buffer
-
-
-
-{{alias}}.prototype.byteLength
- Size of the array in bytes.
-
- Examples
- --------
- > var arr = new {{alias}}( 10 )
-
- > var nbytes = arr.byteLength
- 10
-
-
-{{alias}}.prototype.byteOffset
- Offset (in bytes) of the array from the start of its underlying
- ArrayBuffer.
-
- Examples
- --------
- > var arr = new {{alias}}( 10 )
-
- > var offset = arr.byteOffset
- 0
- > var buf = new {{alias:@stdlib/array/buffer}}( 240 );
- > arr = new {{alias}}( buf, 64 )
-
- > offset = arr.byteOffset
- 64
-
-
-{{alias}}.prototype.BYTES_PER_ELEMENT
- Size (in bytes) of each array element.
-
- Examples
- --------
- > var arr = new {{alias}}( 10 )
-
- > arr.BYTES_PER_ELEMENT
- 1
-
-
-{{alias}}.prototype.length
- The number of array elements.
-
- Examples
- --------
- > var arr = new {{alias}}( 10 )
-
- > var len = arr.length
- 10
-
-
-{{alias}}.prototype.at( i )
- Returns an array element located at integer position (index) `i`, with
- support for noth nonnegative and negative integer positions.
-
- If provided an index outside the array index range, the method returns
- `undefined`.
-
- Parameters
- ----------
- i: integer
- Element index.
-
- Returns
- -------
- out: boolean|void
- An array element.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, false, true ] )
-
- > var v = arr.at( 1 )
- false
- > v = arr.at( -1 )
- true
-
-
-{{alias}}.prototype.copyWithin( target, start[, end] )
- Copies a sequence of elements within the array starting at `start` and
- ending at `end` (non-inclusive) to the position starting at `target`.
-
- Parameters
- ----------
- target: integer
- Target start index position.
-
- start: integer
- Source start index position.
-
- end: integer (optional)
- Source end index position. Default: out.length.
-
- Returns
- -------
- out: BooleanArray
- Modified array.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, false, true ] )
-
- > arr.copyWithin( 0, 2 )
-
- > var v = arr.get( 0 )
- false
- > v = arr.get( 1 )
- true
-
-
-{{alias}}.prototype.entries()
- Returns an iterator for iterating over array key-value pairs.
-
- Returns
- -------
- iterator: Iterator
- Iterator for iterating over array key-value pairs.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var it = arr.entries();
- > var v = it.next().value
- [ 0, true ]
- > v = it.next().value
- [ 1, false ]
- > v = it.next().value
- [ 2, true ]
- > var bool = it.next().done
- true
-
-
-{{alias}}.prototype.every( predicate[, thisArg] )
- Returns a boolean indicating whether all elements in the array pass a test.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which tests array elements. If a predicate function
- returns a truthy value, an array element passes; otherwise, an array
- element fails.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- bool: boolean
- Boolean indicating whether all elements pass the test.
-
- Examples
- --------
- > function predicate( v ) { return v === true; };
- > var arr = new {{alias}}( [ true, true, true ] )
-
- > var bool = arr.every( predicate )
- true
-
-
-{{alias}}.prototype.fill( value[, start[, end]] )
- Returns a modified typed array filled with a fill value.
-
- Parameters
- ----------
- value: boolean
- Fill value.
-
- start: integer (optional)
- Start index. If less than zero, the start index is resolved relative to
- the last array element. Default: 0.
-
- end: integer (optional)
- End index (non-inclusive). If less than zero, the end index is resolved
- relative to the last array element. Default: out.length.
-
- Returns
- -------
- out: BooleanArray
- Modified array.
-
- Examples
- --------
- > var arr = new {{alias}}( 3 )
-
- > arr.fill( true );
- > var v = arr.get( 0 )
- true
- > v = arr.get( 1 )
- true
- > v = arr.get( 2 )
- true
-
-
-{{alias}}.prototype.filter( predicate[, thisArg] )
- Returns a new array containing the elements of an array which pass a test
- implemented by a predicate function.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- The returned array has the same data type as the host array.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which filters array elements. If a predicate function
- returns a truthy value, an array element is included in the output
- array; otherwise, an array element is not included in the output array.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- out: BooleanArray
- A new typed array.
-
- Examples
- --------
- > function predicate( v ) { return ( v === true ); };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var out = arr.filter( predicate )
-
- > var len = out.length
- 2
- > var v = out.get( 0 )
- true
- > v = out.get( 1 )
- true
-
-
-{{alias}}.prototype.find( predicate[, thisArg] )
- Returns the first element in an array for which a predicate function returns
- a truthy value.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- If a predicate function never returns a truthy value, the method returns
- `undefined`.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which tests array elements.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- out: boolean|void
- Array element or `undefined`.
-
- Examples
- --------
- > function predicate( v ) { return v === true; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var v = arr.find( predicate )
- true
-
-
-{{alias}}.prototype.findIndex( predicate[, thisArg] )
- Returns the index of the first element in an array for which a predicate
- function returns a truthy value.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- If a predicate function never returns a truthy value, the method returns
- `-1`.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which tests array elements.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- out: integer
- Array index or `-1`.
-
- Examples
- --------
- > function predicate( v ) { return v === true; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var idx = arr.findIndex( predicate )
- 0
-
-
-{{alias}}.prototype.findLast( predicate[, thisArg] )
- Returns the last element in an array for which a predicate function returns
- a truthy value.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- If a predicate function never returns a truthy value, the method returns
- `undefined`.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which tests array elements.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- out: boolean|void
- Array element or `undefined`.
-
- Examples
- --------
- > function predicate( v ) { return v === true; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var v = arr.findLast( predicate )
- true
-
-
-{{alias}}.prototype.findLastIndex( predicate[, thisArg] )
- Returns the index of the last element in an array for which a predicate
- function returns a truthy value.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- If a predicate function never returns a truthy value, the method returns
- `-1`.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which tests array elements.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- out: integer
- Array index or `-1`.
-
- Examples
- --------
- > function predicate( v ) { return v === true; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var idx = arr.findLastIndex( predicate )
- 2
-
-
-{{alias}}.prototype.forEach( clbk[, thisArg] )
- Invokes a function once for each array element.
-
- A callback function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- Parameters
- ----------
- clbk: Function
- Function to invoke for each array element.
-
- thisArg: Any (optional)
- Execution context.
-
- Examples
- --------
- > var str = '%';
- > function clbk( v ) { str += v.toString() + '%'; };
- > var arr = new {{alias}}( [ true, false, false, true ] )
-
- > arr.forEach( clbk );
- > str
- '%true%false%false%true%'
-
-
-{{alias}}.prototype.get( i )
- Returns an array element located at integer position (index) `i`.
-
- If provided an index outside the array index range, the method returns
- `undefined`.
-
- Parameters
- ----------
- i: integer
- Element index.
-
- Returns
- -------
- out: boolean|void
- Array element or `undefined`.
-
- Examples
- --------
- > var arr = new {{alias}}( 10 )
-
- > arr.set( true, 0 );
- > var v = arr.get( 0 )
- true
-
-
-{{alias}}.prototype.includes( searchElement[, fromIndex] )
- Returns a boolean indicating whether an array includes a provided value.
-
- Parameters
- ----------
- searchElement: boolean
- Search element.
-
- fromIndex: integer (optional)
- Array index at which to start the search. If provided a negative value,
- the method resolves the start index relative to the last array element.
- Default: 0.
-
- Returns
- -------
- bool: boolean
- Boolean indicating whether an array includes a search element.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true, true, true ] )
-
- > var bool = arr.includes( true )
- true
- > bool = arr.includes( false, 3 )
- false
-
-
-{{alias}}.prototype.indexOf( searchElement[, fromIndex] )
- Returns the first index at which a given element can be found.
-
- If method does not find a search element, the method returns `-1`.
-
- Parameters
- ----------
- searchElement: boolean
- Search element.
-
- fromIndex: integer (optional)
- Array index at which to start the search. If provided a negative value,
- the method resolves the start index relative to the last array element.
- Default: 0.
-
- Returns
- -------
- out: integer
- Array index or `-1`.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true, true, true ] )
-
- > var idx = arr.indexOf( true )
- 0
- > idx = arr.indexOf( false, 3 )
- -1
-
-
-{{alias}}.prototype.join( [separator] )
- Returns a new string by concatenating all array elements separated by a
- separator string.
-
- Parameters
- ----------
- separator: string (optional)
- Separator string. Default: ','.
-
- Returns
- -------
- out: string
- Array serialized as a string.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var str = arr.join()
- 'true,false,true'
- > str = arr.join( '|' )
- 'true|false|true'
-
-
-{{alias}}.prototype.keys()
- Returns an iterator for iterating over each index key in a typed array.
-
- Returns
- -------
- iterator: Iterator
- Iterator for iterating over array index keys.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false ] )
-
- > var it = arr.keys();
- > var v = it.next().value
- 0
- > v = it.next().value
- 1
- > v = it.next().done
- true
-
-
-{{alias}}.prototype.lastIndexOf( searchElement[, fromIndex] )
- Returns the last index at which a given element can be found.
-
- If method does not find a search element, the method returns `-1`.
-
- Parameters
- ----------
- searchElement: boolean
- Search element.
-
- fromIndex: integer (optional)
- Array index at which to start the search. If provided a negative value,
- the method resolves the start index relative to the last array element.
- Default: out.length-1.
-
- Returns
- -------
- out: integer
- Array index or `-1`.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, true, true, false, true ] )
-
- > var idx = arr.lastIndexOf( false )
- 3
- > idx = arr.lastIndexOf( false, 2 )
- -1
-
-
-{{alias}}.prototype.map( clbk[, thisArg] )
- Returns a new array with each element being the result of a provided
- callback function.
-
- A callback function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- The returned array has the same data type as the host array.
-
- Parameters
- ----------
- clbk: Function
- Function which maps array elements to elements in the new array.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- out: BooleanArray
- A new typed array.
-
- Examples
- --------
- > function invert( v ) { return !v; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var out = arr.map( invert )
-
- > var v = out.get( 0 )
- false
- > v = out.get( 1 )
- true
- > v = out.get( 2 )
- false
-
-
-{{alias}}.prototype.reduce( reducerFn[, initialValue] )
- Applies a provided function to each element of the array, in order, passing
- in the return value from the calculation on the preceding element and
- returning the accumulated result upon completion.
-
- A reducer function is provided the following arguments:
-
- - acc: accumulated result.
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- If provided an initial value, the method invokes a provided function with
- the initial value as the first argument and the first array element as the
- second argument.
-
- If not provided an initial value, the method invokes a provided function
- with the first array element as the first argument and the second array
- element as the second argument.
-
- Parameters
- ----------
- reducerFn: Function
- Function to apply to each array element.
-
- initialValue: any (optional)
- Initial accumulation value.
-
- Returns
- -------
- out: any
- Accumulated result.
-
- Examples
- --------
- > function reducer( acc, v ) { return ( acc && v ); };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var out = arr.reduce( reducer )
- false
-
-
-{{alias}}.prototype.reduceRight( reducerFn[, initialValue] )
- Applies a provided function to each element of the array, in reverse order,
- passing in the return value from the calculation on the preceding element
- and returning the accumulated result upon completion.
-
- A reducer function is provided the following arguments:
-
- - acc: accumulated result.
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- If provided an initial value, the method invokes a provided function with
- the initial value as the first argument and the last array element as the
- second argument.
-
- If not provided an initial value, the method invokes a provided function
- with the last array element as the first argument and the second-to-last
- array element as the second argument.
-
- Parameters
- ----------
- reducerFn: Function
- Function to apply to each array element.
-
- initialValue: any (optional)
- Initial accumulation value.
-
- Returns
- -------
- out: any
- Accumulated result.
-
- Examples
- --------
- > function reducer( acc, v ) { return ( acc && v ); };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var out = arr.reduceRight( reducer )
- false
-
-
-{{alias}}.prototype.reverse()
- Reverses the array *in-place*.
-
- This method mutates the array on which the method is invoked.
-
- Returns
- -------
- out: BooleanArray
- Modified array.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, false ] )
-
- > arr.reverse();
- > var v = arr.get( 0 )
- false
- > v = arr.get( 1 )
- false
- > v = arr.get( 2 )
- true
-
-
-{{alias}}.prototype.set( v[, i] )
- Sets one or more array elements.
-
- If provided a single argument, the method sets array elements starting at
- position (index) `i = 0`. To set elements starting elsewhere in the array,
- provide an index argument `i`.
-
- To set one or more array elements, provide an array-like object containing
- truthy and falsy values.
-
- Parameters
- ----------
- v: bool|BooleanArray|ArrayLikeObject
- Boolean value or Boolean value array.
-
- i: integer (optional)
- Array index at which to start setting elements. Default: 0.
-
- Examples
- --------
- > var arr = new {{alias}}( 2 )
-
- > arr.set( false );
- > var v = arr.get( 0 )
- false
- > arr.set( true, 1 );
- > v = arr.get( 1 )
- true
-
-
-{{alias}}.prototype.slice( [start[, end]] )
- Copies a portion of a typed array to a new typed array.
-
- Parameters
- ----------
- start: integer (optional)
- Start index. If less than zero, the start index is resolved relative to
- the last array element. Default: 0.
-
- end: integer (optional)
- End index (non-inclusive). If less than zero, the end index is resolved
- relative to the last array element. Default: out.length.
-
- Returns
- -------
- out: BooleanArray
- New typed array.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true, false, true ] )
-
- > var out = arr.slice( 1 )
-
- > var len = out.length
- 4
- > var v = out.get( 0 )
- false
- > v = out.get( 1 )
- true
-
-
-{{alias}}.prototype.some( predicate[, thisArg] )
- Returns a boolean indicating whether at least one element passes a test.
-
- A predicate function is provided the following arguments:
-
- - value: current array element.
- - index: current array element index.
- - arr: the array on which the method was called.
-
- Parameters
- ----------
- predicate: Function
- Predicate function which tests array elements. If a predicate function
- returns a truthy value, an array element passes; otherwise, an array
- element fails.
-
- thisArg: Any (optional)
- Execution context.
-
- Returns
- -------
- bool: boolean
- Boolean indicating whether at least one element passes the test.
-
- Examples
- --------
- > function predicate( v ) { return v === true; };
- > var arr = new {{alias}}( [ false, true, false ] )
-
- > var bool = arr.some( predicate )
- true
-
-
-{{alias}}.prototype.sort( [compareFunction] )
- Sorts an array in-place.
-
- A comparison function determines the order of the array elements. The
- function is provided two arguments:
-
- - a: first boolean value for comparison.
- - b: second boolean value for comparison.
-
- The function should return a value less than zero if `a` comes before `b`,
- a value greater than zero if `a` comes after `b`, and zero if `a` and `b`
- are equivalent.
-
- Parameters
- ----------
- compareFunction: Function (optional)
- Comparison function.
-
- Returns
- -------
- out: BooleanArray
- Modified array.
-
- Examples
- --------
- > function compare( a, b ) { return a === true ? -1 : 1; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > arr.sort( compare );
- > var v = arr.get( 0 )
- true
- > v = arr.get( 1 )
- true
- > v = arr.get( 2 )
- false
-
-
-{{alias}}.prototype.subarray( [begin[, end]] )
- Creates a new typed array view over the same underlying `ArrayBuffer` and
- with the same underlying data type as the host array.
-
- Parameters
- ----------
- begin: integer (optional)
- Start index. If less than zero, the start index is resolved relative to
- the last array element. Default: 0.
-
- end: integer (optional)
- End index (non-inclusive). If less than zero, the end index is resolved
- relative to the last array element. Default: out.length.
-
- Returns
- -------
- out: BooleanArray
- New typed array view.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true, false, true ] )
-
- > var out = arr.subarray( 1, 3 )
-
- > var len = out.length
- 2
- > var v = out.get( 0 )
- false
- > v = out.get( 1 )
- true
-
-
-{{alias}}.prototype.toLocaleString( [locales[, options]] )
- Serializes an array as a locale-specific string.
-
- Parameters
- ----------
- locales: string|Array (optional)
- Locale identifier(s).
-
- options: Object (optional)
- An object containing serialization options.
-
- Returns
- -------
- str: string
- Local-specific string.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var str = arr.toLocaleString()
- 'true,false,true'
-
-
-{{alias}}.prototype.toReversed()
- Returns a new typed array containing the elements in reversed order.
-
- Returns
- -------
- out: BooleanArray
- New typed array.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, false ] )
-
- > var out = arr.toReversed()
-
- > var v = out.get( 0 )
- false
- > v = out.get( 1 )
- false
- > v = out.get( 2 )
- true
-
-
-{{alias}}.prototype.toSorted( [compareFunction] )
- Returns a new typed array containing the elements in sorted order.
-
- A comparison function determines the order of the array elements. The
- function is provided two arguments:
-
- - a: first boolean value for comparison.
- - b: second boolean value for comparison.
-
- The function should return a value less than zero if `a` comes before `b`,
- a value greater than zero if `a` comes after `b`, and zero if `a` and `b`
- are equivalent.
-
- Parameters
- ----------
- compareFunction: Function (optional)
- Comparison function.
-
- Returns
- -------
- out: BooleanArray
- New typed array.
-
- Examples
- --------
- > function compare( a, b ) { return a === true ? -1 : 1; };
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var out = arr.toSorted( compare );
- > var v = out.get( 0 )
- true
- > v = out.get( 1 )
- true
- > v = out.get( 2 )
- false
-
-
-{{alias}}.prototype.toString()
- Serializes an array as a string.
-
- Returns
- -------
- out: string
- String serialization of the array.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var str = arr.toString()
- 'true,false,true'
-
-
-{{alias}}.prototype.values()
- Returns an iterator for iterating over each value in a typed array.
-
- Returns
- -------
- iterator: Iterator
- Iterator for iterating over array values.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false ] )
-
- > var it = arr.values();
- > var v = it.next().value
- true
- > v = it.next().value
- false
- > var bool = it.next().done
- true
-
-
-{{alias}}.prototype.with( index, value )
- Returns a new typed array with the element at a provided index replaced with
- a provided value.
-
- Parameters
- ----------
- index: integer
- Element index.
-
- value: boolean
- Element value.
-
- Returns
- -------
- out: BooleanArray
- New typed array.
-
- Examples
- --------
- > var arr = new {{alias}}( [ true, false, true ] )
-
- > var out = arr.with( 0, false )
-
- > var v = out.get( 0 )
- false
-
-
- See Also
- --------
diff --git a/docs/types/index.d.ts b/docs/types/index.d.ts
deleted file mode 100644
index 3acd0a2..0000000
--- a/docs/types/index.d.ts
+++ /dev/null
@@ -1,1525 +0,0 @@
-/* eslint-disable max-lines */
-
-/*
-* @license Apache-2.0
-*
-* Copyright (c) 2024 The Stdlib Authors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-
-// TypeScript Version: 4.1
-
-///
-
-import { Iterator as Iter, IterableIterator, TypedIterator } from '@stdlib/types/iter';
-import { ArrayLike, BooleanArray as BooleanArrayInterface } from '@stdlib/types/array';
-import ArrayBuffer = require( '@stdlib/array-buffer' );
-
-// Define a union type representing both iterable and non-iterable iterators:
-type Iterator = Iter | IterableIterator;
-
-/**
-* Locale-specific configuration options.
-*/
-interface LocaleOptions {
- /**
- * Configuration property.
- */
- [ key: string | symbol | number ]: T | undefined;
-}
-
-/**
-* Callback invoked for each element in a source object.
-*
-* @returns transformed value
-*/
-type FromNullary = ( this: U ) => boolean;
-
-/**
-* Callback invoked for each element in a source object.
-*
-* @param value - source element
-* @returns transformed value
-*/
-type FromUnary = ( this: U, value: boolean ) => boolean;
-
-/**
-* Callback invoked for each element in a source object.
-*
-* @param value - source element
-* @param index - source element index
-* @returns transformed value
-*/
-type FromBinary = ( this: U, value: boolean, index: number ) => boolean;
-
-/**
-* Callback invoked for each element in a source object.
-*
-* @param value - source element
-* @param index - source element index
-* @returns transformed value
-*/
-type FromCallback = FromNullary | FromUnary | FromBinary;
-
-/**
-* Checks whether an element in an array passes a test.
-*
-* @returns boolean indicating whether an element in an array passes a test
-*/
-type NullaryPredicate = ( this: U ) => boolean;
-
-/**
-* Checks whether an element in an array passes a test.
-*
-* @param value - current array element
-* @returns boolean indicating whether an element in an array passes a test
-*/
-type UnaryPredicate = ( this: U, value: boolean ) => boolean;
-
-/**
-* Checks whether an element in an array passes a test.
-*
-* @param value - current array element
-* @param index - current array element index
-* @returns boolean indicating whether an element in an array passes a test
-*/
-type BinaryPredicate = ( this: U, value: boolean, index: number ) => boolean;
-
-/**
-* Checks whether an element in an array passes a test.
-*
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns boolean indicating whether an element in an array passes a test
-*/
-type TernaryPredicate = ( this: U, value: boolean, index: number, arr: BooleanArray ) => boolean;
-
-/**
-* Checks whether an element in an array passes a test.
-*
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns boolean indicating whether an element in an array passes a test
-*/
-type Predicate = NullaryPredicate | UnaryPredicate | BinaryPredicate | TernaryPredicate;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @returns undefined
-*/
-type NullaryCallback = ( this: U ) => void;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @returns undefined
-*/
-type UnaryCallback = ( this: U, value: boolean ) => void;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @param index - current array element index
-* @returns undefined
-*/
-type BinaryCallback = ( this: U, value: boolean, index: number ) => void;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns undefined
-*/
-type TernaryCallback = ( this: U, value: boolean, index: number, arr: BooleanArray ) => void;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns undefined
-*/
-type Callback = NullaryCallback | UnaryCallback | BinaryCallback | TernaryCallback;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @returns returned value
-*/
-type NullaryMapFcn = ( this: U ) => any;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @returns returned value
-*/
-type UnaryMapFcn = ( this: U, value: boolean ) => any;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @param index - current array element index
-* @returns returned value
-*/
-type BinaryMapFcn = ( this: U, value: boolean, index: number ) => any;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns returned value
-*/
-type TernaryMapFcn = ( this: U, value: boolean, index: number, arr: BooleanArray ) => any;
-
-/**
-* Callback invoked for each element in an array.
-*
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns returned value
-*/
-type MapFcn = NullaryMapFcn | UnaryMapFcn | BinaryMapFcn | TernaryMapFcn;
-
-/**
-* Reducer function invoked for each element in an array.
-*
-* @returns accumulated result
-*/
-type NullaryReducer = () => U;
-
-/**
-* Reducer function invoked for each element in an array.
-*
-* @param acc - accumulated result
-* @returns accumulated result
-*/
-type UnaryReducer = ( acc: U ) => U;
-
-/**
-* Reducer function invoked for each element in an array.
-*
-* @param acc - accumulated result
-* @param value - current array element
-* @returns accumulated result
-*/
-type BinaryReducer = ( acc: U, value: boolean ) => U;
-
-/**
-* Reducer function invoked for each element in an array.
-*
-* @param acc - accumulated result
-* @param value - current array element
-* @param index - current array element index
-* @returns accumulated result
-*/
-type TernaryReducer = ( acc: U, value: boolean, index: number ) => U;
-
-/**
-* @param acc - accumulated result
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns accumulated result
-*/
-type QuaternaryReducer = ( acc: U, value: boolean, index: number, arr: BooleanArray ) => U;
-
-/**
-* Reducer function invoked for each element in an array.
-*
-* @param acc - accumulated result
-* @param value - current array element
-* @param index - current array element index
-* @param arr - array on which the method was called
-* @returns accumulated result
-*/
-type Reducer = NullaryReducer | UnaryReducer | BinaryReducer | TernaryReducer | QuaternaryReducer;
-
-/**
-* Comparator function.
-*
-* @param a - first boolean value for comparison
-* @param b - second boolean value for comparison
-* @returns number indicating comparison result
-*/
-type CompareFcn = ( a: boolean, b: boolean ) => number;
-
-/**
-* Class for creating a Boolean array.
-*/
-declare class BooleanArray implements BooleanArrayInterface {
- /**
- * Boolean array constructor.
- *
- * @param arg - length, typed array, array-like object, or buffer
- * @param byteOffset - byte offset (default: 0)
- * @param length - view length
- * @throws if provided only a single argument, must provide a valid argument
- * @throws byte offset must be a nonnegative integer
- * @throws must provide sufficient memory to accommodate byte offset and view length requirements
- * @returns boolean array
- *
- * @example
- * var arr = new BooleanArray();
- * // returns
- *
- * var len = arr.length;
- * // returns 0
- *
- * @example
- * var arr = new BooleanArray( 2 );
- * // returns
- *
- * var len = arr.length;
- * // returns 2
- *
- * @example
- * var arr = new BooleanArray( [ true, false ] );
- * // returns
- *
- * var len = arr.length;
- * // returns 2
- *
- * @example
- * var ArrayBuffer = require( '@stdlib/array-buffer' );
- *
- * var buf = new ArrayBuffer( 16 );
- * var arr = new BooleanArray( buf );
- * // returns
- *
- * var len = arr.length;
- * // returns 16
- *
- * @example
- * var ArrayBuffer = require( '@stdlib/array-buffer' );
- *
- * var buf = new ArrayBuffer( 16 );
- * var arr = new BooleanArray( buf, 8 );
- * // returns
- *
- * var len = arr.length;
- * // returns 8
- *
- * @example
- * var ArrayBuffer = require( '@stdlib/array-buffer' );
- *
- * var buf = new ArrayBuffer( 32 );
- * var arr = new BooleanArray( buf, 8, 2 );
- * // returns
- *
- * var len = arr.length;
- * // returns 2
- */
- constructor( arg?: number | ArrayLike | ArrayBuffer | Iterable, byteOffset?: number, length?: number );
-
- /**
- * Returns an array element located at integer position (index) `i`, with support for both nonnegative and negative integer indices.
- *
- * @param i - element index
- * @throws index argument must be an integer
- * @returns array element
- *
- * @example
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var v = arr.at( 0 );
- * // returns true
- *
- * v = arr.at( -1 );
- * // returns true
- *
- * v = arr.at( 100 );
- * // returns undefined
- */
- at( i: number ): boolean | void;
-
- /**
- * Pointer to the underlying data buffer.
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var buf = arr.buffer;
- * // returns
- */
- readonly buffer: ArrayBuffer;
-
- /**
- * Length (in bytes) of the array.
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var byteLength = arr.byteLength;
- * // returns 10
- */
- readonly byteLength: number;
-
- /**
- * Offset (in bytes) of the array from the start of its underlying `ArrayBuffer`.
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var byteOffset = arr.byteOffset;
- * // returns 0
- */
- readonly byteOffset: number;
-
- /**
- * Size (in bytes) of each array element.
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var nbytes = arr.BYTES_PER_ELEMENT;
- * // returns 1
- */
- readonly BYTES_PER_ELEMENT: 1;
-
- /**
- * Number of array elements.
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var len = arr.length;
- * // returns 10
- */
- readonly length: number;
-
- /**
- * Copies a sequence of elements within the array to the position starting at `target`.
- *
- * @param target - index at which to start copying elements
- * @param start - source index at which to copy elements from
- * @param end - source index at which to stop copying elements from
- * @returns modified array
- *
- * @example
- * var arr = new BooleanArray( 4 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( false, 2 );
- * arr.set( true, 3 );
- *
- * // Copy the first two elements to the last two elements:
- * arr.copyWithin( 2, 0, 2 );
- *
- * var v = arr.get( 2 );
- * // returns true
- *
- * v = arr.get( 3 );
- * // returns false
- */
- copyWithin( target: number, start: number, end?: number ): BooleanArray;
-
- /**
- * Returns an iterator for iterating over array key-value pairs.
- *
- * @returns iterator
- *
- * @example
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var it = arr.entries();
- *
- * var v = it.next().value;
- * // returns [ 0, true ]
- *
- * v = it.next().value;
- * // returns [ 1, false ]
- *
- * v = it.next().value;
- * // returns [ 2, true ]
- *
- * var bool = it.next().done;
- * // returns true
- */
- entries(): TypedIterator<[number, boolean]>;
-
- /**
- * Tests whether all elements in an array pass a test implemented by a predicate function.
- *
- * @param predicate - predicate function
- * @param thisArg - predicate function execution context
- * @returns boolean indicating whether all elements pass a test
- *
- * @example
- * function predicate( v ) {
- * return v === true;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( true, 1 );
- * arr.set( true, 2 );
- *
- * var bool = arr.every( predicate );
- * // returns true
- */
- every( predicate: Predicate, thisArg?: ThisParameterType> ): boolean;
-
- /**
- * Returns a modified typed array filled with a fill value.
- *
- * @param value - fill value
- * @param start - starting index (inclusive)
- * @param end - ending index (exclusive)
- * @returns modified typed array
- *
- * @example
- * var arr = new BooleanArray( 3 );
- *
- * arr.fill( true, 1 );
- *
- * var v = arr.get( 0 );
- * // returns false
- *
- * v = arr.get( 1 );
- * // returns true
- *
- * v = arr.get( 2 );
- * // returns true
- */
- fill( value: boolean, start?: number, end?: number ): BooleanArray;
-
- /**
- * Returns a new array containing the elements of an array which pass a test implemented by a predicate function.
- *
- * @param predicate - test function
- * @param thisArg - execution context
- * @returns new array containing elements which pass a test implemented by a predicate function
- *
- * @example
- * function predicate( v ) {
- * return ( v === true );
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var out = arr.filter( predicate );
- * // returns
- *
- * var len = out.length;
- * // returns 2
- *
- * var v = out.get( 0 );
- * // returns true
- *
- * v = out.get( 1 );
- * // returns true
- */
- filter( predicate: Predicate, thisArg?: ThisParameterType> ): BooleanArray;
-
- /**
- * Returns the first element in an array for which a predicate function returns a truthy value.
- *
- * @param predicate - predicate function
- * @param thisArg - predicate function execution context
- * @returns array element or undefined
- *
- * @example
- * function predicate( v ) {
- * return v === true;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var v = arr.find( predicate );
- * // returns true
- */
- find( predicate: Predicate, thisArg?: ThisParameterType> ): boolean | void;
-
- /**
- * Returns the index of the first element in an array for which a predicate function returns a truthy value.
- *
- * @param predicate - predicate function
- * @param thisArg - predicate function execution context
- * @returns array index or -1
- *
- * @example
- * function predicate( v ) {
- * return v === true;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var v = arr.findIndex( predicate );
- * // returns 0
- */
- findIndex( predicate: Predicate, thisArg?: ThisParameterType> ): number;
-
- /**
- * Returns the last element in an array for which a predicate function returns a truthy value.
- *
- * @param predicate - predicate function
- * @param thisArg - predicate function execution context
- * @returns array element or undefined
- *
- * @example
- * function predicate( v ) {
- * return v === true;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var v = arr.findLast( predicate );
- * // returns true
- */
- findLast( predicate: Predicate, thisArg?: ThisParameterType> ): boolean | void;
-
- /**
- * Returns the index of the last element in an array for which a predicate function returns a truthy value.
- *
- * @param predicate - predicate function
- * @param thisArg - predicate function execution context
- * @returns array index or -1
- *
- * @example
- * function predicate( v ) {
- * return v === true;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var v = arr.findLastIndex( predicate );
- * // returns 2
- */
- findLastIndex( predicate: Predicate, thisArg?: ThisParameterType> ): number;
-
- /**
- * Invokes a function once for each array element.
- *
- * @param fcn - function to invoke
- * @param thisArg - execution context
- * @returns undefined
- *
- * @example
- * function log( v, i ) {
- * console.log( '%s: %s', i, v.toString() );
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * arr.forEach( log );
- */
- forEach( fcn: Callback, thisArg?: ThisParameterType> ): void;
-
- /**
- * Returns an array element.
- *
- * @param i - element index
- * @throws index argument must be a nonnegative integer
- * @returns array element
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var v = arr.get( 0 );
- * // returns false
- *
- * arr.set( true, 0 );
- *
- * v = arr.get( 100 );
- * // returns undefined
- */
- get( i: number ): boolean | void;
-
- /**
- * Returns a boolean indicating whether an array includes a provided value.
- *
- * @param searchElement - element to search for
- * @param fromIndex - starting index (inclusive)
- * @returns boolean indicating whether an array includes a value
- *
- * @example
- * var arr = new BooleanArray( 5 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- * arr.set( true, 3 );
- * arr.set( true, 4 );
- *
- * var bool = arr.includes( true );
- * // returns true
- *
- * bool = arr.includes( false, 2 );
- * // returns false
- */
- includes( searchElement: boolean, fromIndex?: number ): boolean;
-
- /**
- * Returns the first index at which a given element can be found.
- *
- * @param searchElement - element to find
- * @param fromIndex - starting index (inclusive)
- * @returns index or -1
- *
- * @example
- * var arr = new BooleanArray( 5 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- * arr.set( true, 3 );
- * arr.set( true, 4 );
- *
- * var idx = arr.indexOf( true );
- * // returns 0
- *
- * idx = arr.indexOf( false, 2 );
- * // returns -1
- *
- * idx = arr.indexOf( false, -3 );
- * // returns -1
- */
- indexOf( searchElement: boolean, fromIndex?: number ): number;
-
- /**
- * Returns a new string by concatenating all array elements.
- *
- * @param separator - value separator (default: ',')
- * @returns string
- *
- * @example
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var str = arr.join();
- * // returns 'true,false,true'
- *
- * str = arr.join( '|' );
- * // returns 'true|false|true'
- */
- join( separator?: string ): string;
-
- /**
- * Returns an iterator for iterating over each index key in a typed array.
- *
- * @returns iterator
- *
- * @example
- * var arr = new BooleanArray( 2 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- *
- * var iter = arr.keys();
- *
- * var v = iter.next().value;
- * // returns 0
- *
- * v = iter.next().value;
- * // returns 1
- *
- * var bool = iter.next().done;
- * // returns true
- */
- keys(): TypedIterator;
-
- /**
- * Returns the last index at which a given element can be found.
- *
- * @param searchElement - element to find
- * @param fromIndex - index at which to start searching backward (inclusive)
- * @returns index or -1
- *
- * @example
- * var arr = new BooleanArray( 5 );
- *
- * arr.set( true, 0 );
- * arr.set( true, 1 );
- * arr.set( true, 2 );
- * arr.set( false, 3 );
- * arr.set( true, 4 );
- *
- * var idx = arr.lastIndexOf( true );
- * // returns 4
- *
- * idx = arr.lastIndexOf( false, 2 );
- * // returns -1
- *
- * idx = arr.lastIndexOf( false, -3 );
- * // returns -1
- */
- lastIndexOf( searchElement: boolean, fromIndex?: number ): number;
-
- /**
- * Returns a new array with each element being the result of a provided callback function.
- *
- * @param fcn - callback function
- * @param thisArg - callback function execution context
- * @returns new boolean array
- *
- * @example
- * function invert( v ) {
- * return !v;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var out = arr.map( invert );
- * // returns
- *
- * var v = out.get( 0 );
- * // returns false
- *
- * v = out.get( 1 );
- * // returns true
- *
- * v = out.get( 2 );
- * // returns false
- */
- map( fcn: MapFcn, thisArg?: ThisParameterType> ): BooleanArray;
-
- /**
- * Applies a provided callback function to each element of the array, in order, passing in the return value from the calculation on the preceding element and returning the accumulated result upon completion.
- *
- * @param reducer - callback function
- * @param initialValue - initial value
- * @returns accumulated result
- *
- * @example
- * function reducer( acc, v ) {
- * if ( v ) {
- * return acc + 1;
- * }
- * return acc;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var out = arr.reduce( reducer, 0 );
- * // returns 2
- */
- reduce( reducer: Reducer, initialValue?: U ): U;
-
- /**
- * Applies a provided callback function to each element of the array, in reverse order, passing in the return value from the calculation on the following element and returning the accumulated result upon completion.
- *
- * @param reducer - callback function
- * @param initialValue - initial value
- * @returns accumulated result
- *
- * @example
- * function reducer( acc, v ) {
- * if ( v ) {
- * return acc + 1;
- * }
- * return acc;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * var out = arr.reduceRight( reducer, 0 );
- * // returns 2
- */
- reduceRight( reducer: Reducer, initialValue?: U ): U;
-
- /**
- * Reverses an array in-place.
- *
- * @returns reversed array
- *
- * @example
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( false, 2 );
- *
- * var out = arr.reverse();
- * // returns
- *
- * var v = out.get( 0 );
- * // returns false
- *
- * v = out.get( 1 );
- * // returns false
- *
- * v = out.get( 2 );
- * // returns true
- */
- reverse(): BooleanArray;
-
- /**
- * Sets an array element.
- *
- * ## Notes
- *
- * - When provided a typed array, we must check whether the source array shares the same buffer as the target array and whether the underlying memory overlaps. In particular, we are concerned with the following scenario:
- *
- * ```text
- * buf: ---------------------
- * src: ---------------------
- * ```
- *
- * In the above, as we copy values from `src`, we will overwrite values in the `src` view, resulting in duplicated values copied into the end of `buf`, which is not intended. Hence, to avoid overwriting source values, we must **copy** source values to a temporary array.
- *
- * In the other overlapping scenario,
- *
- * ```text
- * buf: ---------------------
- * src: ---------------------
- * ```
- *
- * by the time we begin copying into the overlapping region, we are copying from the end of `src`, a non-overlapping region, which means we don't run the risk of copying copied values, rather than the original `src` values as intended.
- *
- *
- * @param value - value(s)
- * @param i - element index at which to start writing values (default: 0)
- * @throws index argument must be a nonnegative integer
- * @throws index argument is out-of-bounds
- * @throws target array lacks sufficient storage to accommodate source values
- *
- * @example
- * var arr = new BooleanArray( 10 );
- *
- * var v = arr.get( 0 );
- * // returns false
- *
- * arr.set( true, 0 );
- *
- * v = arr.get( 0 );
- * // returns true
- */
- set( value: ArrayLike | any, i?: number ): void;
-
- /**
- * Copies a portion of a typed array to a new typed array.
- *
- * @param start - starting index (inclusive)
- * @param end - ending index (exclusive)
- * @throws indices must be integers
- * @returns output array
- *
- * @example
- * var arr = new BooleanArray( 5 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- * arr.set( false, 3 );
- * arr.set( true, 4 );
- *
- * var out = arr.slice();
- * // returns
- *
- * var len = out.length;
- * // returns 5
- *
- * var bool = out.get( 0 );
- * // returns true
- *
- * bool = out.get( len-1 );
- * // returns true
- *
- * out = arr.slice( 1, -2 );
- * // returns
- *
- * len = out.length;
- * // returns 2
- *
- * bool = out.get( 0 );
- * // returns false
- *
- * bool = out.get( len-1 );
- * // returns true
- */
- slice( start?: number, end?: number ): BooleanArray;
-
- /**
- * Tests whether at least one element in an array passes a test implemented by a predicate function.
- *
- * @param predicate - predicate function
- * @param thisArg - predicate function execution context
- * @returns boolean indicating whether at least one element passes a test
- *
- * @example
- * function predicate( v ) {
- * return v === true;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( false, 0 );
- * arr.set( true, 1 );
- * arr.set( false, 2 );
- *
- * var bool = arr.some( predicate );
- * // returns true
- */
- some( predicate: Predicate, thisArg?: ThisParameterType> ): boolean;
-
- /**
- * Sorts an array in-place.
- *
- * @param compareFcn - comparison function
- * @returns sorted array
- *
- * @example
- * function compare( a, b ) {
- * if ( a === false ) {
- * if ( b === false ) {
- * return 0;
- * }
- * return 1;
- * }
- * if ( b === true ) {
- * return 0;
- * }
- * return -1;
- * }
- *
- * var arr = new BooleanArray( 3 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- *
- * arr.sort( compare );
- *
- * var v = arr.get( 0 );
- * // returns true
- *
- * v = arr.get( 1 );
- * // returns true
- *
- * v = arr.get( 2 );
- * // returns false
- */
- sort( compareFcn: CompareFcn ): BooleanArray;
-
- /**
- * Creates a new typed array view over the same underlying `ArrayBuffer` and with the same underlying data type as the host array.
- *
- * @param begin - starting index (inclusive)
- * @param end - ending index (exclusive)
- * @throws indices must be integers
- * @returns subarray
- *
- * @example
- * var arr = new BooleanArray( 5 );
- *
- * arr.set( true, 0 );
- * arr.set( false, 1 );
- * arr.set( true, 2 );
- * arr.set( false, 3 );
- * arr.set( true, 4 );
- *
- * var subarr = arr.subarray();
- * // returns
- *
- * var len = subarr.length;
- * // returns 5
- *
- * var bool = subarr.get( 0 );
- * // returns true
- *
- * bool = subarr.get( len-1 );
- * // returns true
- *
- * subarr = arr.subarray( 1, -2 );
- * // returns