@@ -28,80 +28,55 @@ assert.strictEqual(0, Buffer.from('hello', 'utf8').slice(0, 0).length);
28
28
assert . strictEqual ( 0 , Buffer ( 'hello' , 'utf8' ) . slice ( 0 , 0 ) . length ) ;
29
29
30
30
const buf = Buffer . from ( '0123456789' , 'utf8' ) ;
31
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 10 , 10 ) ,
32
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
33
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 20 , 10 ) ,
34
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
35
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 20 , - 10 ) ,
36
- Buffer . from ( '' , 'utf8' ) ) ) ;
37
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( ) ,
38
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
39
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 ) ,
40
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
41
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , 0 ) ,
42
- Buffer . from ( '' , 'utf8' ) ) ) ;
43
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( undefined ) ,
44
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
45
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 'foobar' ) ,
46
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
47
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( undefined , undefined ) ,
48
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
31
+ const expectedSameBufs = [
32
+ [ buf . slice ( - 10 , 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
33
+ [ buf . slice ( - 20 , 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
34
+ [ buf . slice ( - 20 , - 10 ) , Buffer . from ( '' , 'utf8' ) ] ,
35
+ [ buf . slice ( ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
36
+ [ buf . slice ( 0 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
37
+ [ buf . slice ( 0 , 0 ) , Buffer . from ( '' , 'utf8' ) ] ,
38
+ [ buf . slice ( undefined ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
39
+ [ buf . slice ( 'foobar' ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
40
+ [ buf . slice ( undefined , undefined ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
41
+ [ buf . slice ( 2 ) , Buffer . from ( '23456789' , 'utf8' ) ] ,
42
+ [ buf . slice ( 5 ) , Buffer . from ( '56789' , 'utf8' ) ] ,
43
+ [ buf . slice ( 10 ) , Buffer . from ( '' , 'utf8' ) ] ,
44
+ [ buf . slice ( 5 , 8 ) , Buffer . from ( '567' , 'utf8' ) ] ,
45
+ [ buf . slice ( 8 , - 1 ) , Buffer . from ( '8' , 'utf8' ) ] ,
46
+ [ buf . slice ( - 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
47
+ [ buf . slice ( 0 , - 9 ) , Buffer . from ( '0' , 'utf8' ) ] ,
48
+ [ buf . slice ( 0 , - 10 ) , Buffer . from ( '' , 'utf8' ) ] ,
49
+ [ buf . slice ( 0 , - 1 ) , Buffer . from ( '012345678' , 'utf8' ) ] ,
50
+ [ buf . slice ( 2 , - 2 ) , Buffer . from ( '234567' , 'utf8' ) ] ,
51
+ [ buf . slice ( 0 , 65536 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
52
+ [ buf . slice ( 65536 , 0 ) , Buffer . from ( '' , 'utf8' ) ] ,
53
+ [ buf . slice ( - 5 , - 8 ) , Buffer . from ( '' , 'utf8' ) ] ,
54
+ [ buf . slice ( - 5 , - 3 ) , Buffer . from ( '56' , 'utf8' ) ] ,
55
+ [ buf . slice ( - 10 , 10 ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
56
+ [ buf . slice ( '0' , '1' ) , Buffer . from ( '0' , 'utf8' ) ] ,
57
+ [ buf . slice ( '-5' , '10' ) , Buffer . from ( '56789' , 'utf8' ) ] ,
58
+ [ buf . slice ( '-10' , '10' ) , Buffer . from ( '0123456789' , 'utf8' ) ] ,
59
+ [ buf . slice ( '-10' , '-5' ) , Buffer . from ( '01234' , 'utf8' ) ] ,
60
+ [ buf . slice ( '-10' , '-0' ) , Buffer . from ( '' , 'utf8' ) ] ,
61
+ [ buf . slice ( '111' ) , Buffer . from ( '' , 'utf8' ) ] ,
62
+ [ buf . slice ( '0' , '-111' ) , Buffer . from ( '' , 'utf8' ) ]
63
+ ] ;
49
64
50
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 2 ) ,
51
- Buffer . from ( '23456789' , 'utf8' ) ) ) ;
52
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 5 ) ,
53
- Buffer . from ( '56789' , 'utf8' ) ) ) ;
54
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 10 ) ,
55
- Buffer . from ( '' , 'utf8' ) ) ) ;
56
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 5 , 8 ) ,
57
- Buffer . from ( '567' , 'utf8' ) ) ) ;
58
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 8 , - 1 ) ,
59
- Buffer . from ( '8' , 'utf8' ) ) ) ;
60
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 10 ) ,
61
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
62
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - 9 ) ,
63
- Buffer . from ( '0' , 'utf8' ) ) ) ;
64
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - 10 ) ,
65
- Buffer . from ( '' , 'utf8' ) ) ) ;
66
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - 1 ) ,
67
- Buffer . from ( '012345678' , 'utf8' ) ) ) ;
68
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 2 , - 2 ) ,
69
- Buffer . from ( '234567' , 'utf8' ) ) ) ;
70
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , 65536 ) ,
71
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
72
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 65536 , 0 ) ,
73
- Buffer . from ( '' , 'utf8' ) ) ) ;
74
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 5 , - 8 ) ,
75
- Buffer . from ( '' , 'utf8' ) ) ) ;
76
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 5 , - 3 ) ,
77
- Buffer . from ( '56' , 'utf8' ) ) ) ;
78
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - 10 , 10 ) ,
79
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
80
- for ( let i = 0 , s = buf ; i < buf . length ; ++ i ) {
81
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( i ) , s . slice ( i ) ) ) ;
82
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , i ) , s . slice ( 0 , i ) ) ) ;
83
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( - i ) , s . slice ( - i ) ) ) ;
84
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( 0 , - i ) , s . slice ( 0 , - i ) ) ) ;
65
+ for ( let i = 0 , s = buf . toString ( ) ; i < buf . length ; ++ i ) {
66
+ expectedSameBufs . push (
67
+ [ buf . slice ( i ) , Buffer . from ( s . slice ( i ) ) ] ,
68
+ [ buf . slice ( 0 , i ) , Buffer . from ( s . slice ( 0 , i ) ) ] ,
69
+ [ buf . slice ( - i ) , Buffer . from ( s . slice ( - i ) ) ] ,
70
+ [ buf . slice ( 0 , - i ) , Buffer . from ( s . slice ( 0 , - i ) ) ]
71
+ ) ;
85
72
}
86
73
74
+ expectedSameBufs . forEach ( ( [ buf1 , buf2 ] ) => {
75
+ assert . strictEqual ( 0 , Buffer . compare ( buf1 , buf2 ) ) ;
76
+ } ) ;
77
+
87
78
const utf16Buf = Buffer . from ( '0123456789' , 'utf16le' ) ;
88
79
assert . deepStrictEqual ( utf16Buf . slice ( 0 , 6 ) , Buffer . from ( '012' , 'utf16le' ) ) ;
89
-
90
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '0' , '1' ) ,
91
- Buffer . from ( '0' , 'utf8' ) ) ) ;
92
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-5' , '10' ) ,
93
- Buffer . from ( '56789' , 'utf8' ) ) ) ;
94
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-10' , '10' ) ,
95
- Buffer . from ( '0123456789' , 'utf8' ) ) ) ;
96
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-10' , '-5' ) ,
97
- Buffer . from ( '01234' , 'utf8' ) ) ) ;
98
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '-10' , '-0' ) ,
99
- Buffer . from ( '' , 'utf8' ) ) ) ;
100
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '111' ) ,
101
- Buffer . from ( '' , 'utf8' ) ) ) ;
102
- assert . strictEqual ( 0 , Buffer . compare ( buf . slice ( '0' , '-111' ) ,
103
- Buffer . from ( '' , 'utf8' ) ) ) ;
104
-
105
80
// try to slice a zero length Buffer
106
81
// see https://github.com/joyent/node/issues/5881
107
82
assert . doesNotThrow ( ( ) => Buffer . alloc ( 0 ) . slice ( 0 , 1 ) ) ;
0 commit comments