File tree Expand file tree Collapse file tree 2 files changed +27
-4
lines changed Expand file tree Collapse file tree 2 files changed +27
-4
lines changed Original file line number Diff line number Diff line change @@ -20,6 +20,10 @@ var useFromArrayBuffer = useArrayBuffer && (Buffer.prototype instanceof Uint8Arr
2020
2121module . exports = function toBuffer ( data , encoding ) {
2222 if ( Buffer . isBuffer ( data ) ) {
23+ if ( data . constructor && ! ( 'isBuffer' in data ) ) {
24+ // probably a SlowBuffer
25+ return Buffer . from ( data ) ;
26+ }
2327 return data ;
2428 }
2529
@@ -93,9 +97,9 @@ module.exports = function toBuffer(data, encoding) {
9397 if (
9498 isArr || (
9599 Buffer . isBuffer ( data )
96- && data . constructor
97- && typeof data . constructor . isBuffer === 'function'
98- && data . constructor . isBuffer ( data )
100+ && data . constructor
101+ && typeof data . constructor . isBuffer === 'function'
102+ && data . constructor . isBuffer ( data )
99103 )
100104 ) {
101105 return Buffer . from ( data ) ;
Original file line number Diff line number Diff line change @@ -5,12 +5,31 @@ var availableTypedArrays = require('available-typed-arrays')();
55var forEach = require ( 'for-each' ) ;
66var typedArrayBuffer = require ( 'typed-array-buffer' ) ;
77var SafeBuffer = require ( 'safe-buffer' ) . Buffer ;
8+ var SlowBuffer = require ( 'buffer' ) . SlowBuffer ;
89
910var toBuffer = require ( '../' ) ;
1011var fixtures = require ( './fixtures.json' ) ;
1112
1213test ( 'buffer returns buffer' , function ( t ) {
13- t . deepEqual ( toBuffer ( new Buffer ( 'hi' ) ) , new Buffer ( 'hi' ) ) ;
14+ var result = toBuffer ( new Buffer ( 'hi' ) ) ;
15+
16+ t . deepEqual ( result , new Buffer ( 'hi' ) ) ;
17+ t . ok ( result instanceof Buffer , 'is a Buffer' ) ;
18+ t . notOk ( result instanceof SlowBuffer , 'not a SlowBuffer' ) ;
19+
20+ t . end ( ) ;
21+ } ) ;
22+
23+ test ( 'SlowBuffer returns Buffer' , { skip : SlowBuffer . name === 'deprecated' } , function ( t ) {
24+ var slow = new SlowBuffer ( 2 ) ;
25+ slow [ 0 ] = 7 ;
26+ slow [ 1 ] = 8 ;
27+ var result = toBuffer ( slow ) ;
28+
29+ t . deepEqual ( result , new Buffer ( [ 7 , 8 ] ) ) ;
30+ t . ok ( result instanceof Buffer , 'is a Buffer' ) ;
31+ t . notOk ( result instanceof SlowBuffer , 'not a SlowBuffer' ) ;
32+
1433 t . end ( ) ;
1534} ) ;
1635
You can’t perform that action at this time.
0 commit comments