@@ -33,6 +33,7 @@ module.exports = (function() {
33
33
* Constructs a new ByteBuffer.
34
34
* @class The swiss army knife for binary data in JavaScript.
35
35
* @exports ByteBuffer
36
+ * @constructor
36
37
* @param {number= } capacity Initial capacity. Defaults to {@link ByteBuffer.DEFAULT_CAPACITY}.
37
38
* @param {boolean= } littleEndian Whether to use little or big endian byte order. Defaults to
38
39
* {@link ByteBuffer.DEFAULT_ENDIAN}.
@@ -109,7 +110,7 @@ module.exports = (function() {
109
110
* @const
110
111
* @expose
111
112
*/
112
- ByteBuffer . VERSION = "3.0.0-RC2 " ;
113
+ ByteBuffer . VERSION = "3.0.0" ;
113
114
114
115
/**
115
116
* Little endian constant that can be used instead of its boolean value. Evaluates to `true`.
@@ -305,8 +306,11 @@ module.exports = (function() {
305
306
}
306
307
}
307
308
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
+ }
310
314
bb = new ByteBuffer ( 0 , littleEndian , noAssert ) ;
311
315
if ( buffer . length > 0 ) { // Avoid references to more than one EMPTY_BUFFER
312
316
bb . buffer = buffer ;
@@ -3109,8 +3113,14 @@ module.exports = (function() {
3109
3113
3110
3114
/**
3111
3115
* 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
3114
3124
* @expose
3115
3125
*/
3116
3126
ByteBuffer . memcpy = memcpy ;
0 commit comments