@@ -33,6 +33,7 @@ module.exports = (function() {
3333 * Constructs a new ByteBuffer.
3434 * @class The swiss army knife for binary data in JavaScript.
3535 * @exports ByteBuffer
36+ * @constructor
3637 * @param {number= } capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.
3738 * @param {boolean= } littleEndian Whether to use little or big endian byte order. Defaults to
3839 * {@link ByteBuffer.DEFAULT_ENDIAN}.
@@ -109,7 +110,7 @@ module.exports = (function() {
109110 * @const
110111 * @expose
111112 */
112- ByteBuffer . VERSION = "3.0.0-RC2 " ;
113+ ByteBuffer . VERSION = "3.0.0" ;
113114
114115 /**
115116 * Little endian constant that can be used instead of its boolean value. Evaluates to `true`.
@@ -305,8 +306,11 @@ module.exports = (function() {
305306 }
306307 }
307308 buffer = b ;
308- } else if ( ! ( buffer instanceof Buffer ) )
309- throw ( new TypeError ( "Illegal buffer" ) ) ;
309+ } else if ( ! ( buffer instanceof Buffer ) ) { // Create from octets if it is an error, otherwise fail
310+ if ( Object . prototype . toString . call ( buffer ) !== "[object Array]" )
311+ throw ( new TypeError ( "Illegal buffer" ) ) ;
312+ buffer = new Buffer ( buffer ) ;
313+ }
310314 bb = new ByteBuffer ( 0 , littleEndian , noAssert ) ;
311315 if ( buffer . length > 0 ) { // Avoid references to more than one EMPTY_BUFFER
312316 bb . buffer = buffer ;
@@ -3109,8 +3113,14 @@ module.exports = (function() {
31093113
31103114 /**
31113115 * node-memcpy. This is an optional binding dependency and may not be present.
3112- * @type {?function(!(Buffer|ArrayBuffer|Uint8Array), number|!(Buffer|ArrayBuffer), (!(Buffer|ArrayBuffer|Uint8Array)|number)=, number=, number=):number }
3113- * @see https://npmjs.org/package/memcpy
3116+ * @function
3117+ * @param {!(Buffer|ArrayBuffer|Uint8Array) } target Destination
3118+ * @param {number|!(Buffer|ArrayBuffer) } targetStart Destination start, defaults to 0.
3119+ * @param {(!(Buffer|ArrayBuffer|Uint8Array)|number)= } source Source
3120+ * @param {number= } sourceStart Source start, defaults to 0.
3121+ * @param {number= } sourceEnd Source end, defaults to capacity.
3122+ * @returns {number } Number of bytes copied
3123+ * @throws {Error } If any index is out of bounds
31143124 * @expose
31153125 */
31163126 ByteBuffer . memcpy = memcpy ;
0 commit comments