forked from codesandbox/codesandbox-client
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnode-buffer-slow.ts
More file actions
63 lines (55 loc) · 1.91 KB
/
node-buffer-slow.ts
File metadata and controls
63 lines (55 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import assert from '../../harness/wrapped-assert';
import * as buffer from 'buffer';
const SlowBuffer = buffer.SlowBuffer,
ones = [1, 1, 1, 1];
// BFS: Changed deepEqual -> equal on toJSON.
function equalCheck(b1: Buffer, b2: Buffer | number[]) {
if (!Buffer.isBuffer(b2)) {
b2 = new Buffer(b2);
}
assert.equal(JSON.stringify(b1), JSON.stringify(b2));
}
export default function() {
// should create a Buffer
var sb = new SlowBuffer(4);
assert(sb instanceof Buffer);
assert.strictEqual(sb.length, 4);
sb.fill(1);
equalCheck(sb, ones);
// BFS: Do not support.
// underlying ArrayBuffer should have the same length
//assert.strictEqual(sb.buffer.byteLength, 4);
// should work without new
sb = (<any> SlowBuffer)(4);
assert(sb instanceof Buffer);
assert.strictEqual(sb.length, 4);
sb.fill(1);
equalCheck(sb, ones);
// should work with edge cases
assert.strictEqual(new SlowBuffer(0).length, 0);
// BFS: I don't do pooling like Node.
/*try {
assert.strictEqual(SlowBuffer(buffer.kMaxLength).length, buffer.kMaxLength);
} catch (e) {
assert.equal(e.message, 'Invalid array buffer length');
}*/
// should work with number-coercible values
assert.strictEqual(new SlowBuffer('6').length, 6);
assert.strictEqual(new SlowBuffer(<any> true).length, 1);
// should create zero-length buffer if parameter is not a number
assert.strictEqual(new (<any> SlowBuffer)().length, 0);
assert.strictEqual(new SlowBuffer(NaN).length, 0);
assert.strictEqual(new SlowBuffer(<any>{}).length, 0);
assert.strictEqual(new SlowBuffer('string').length, 0);
// should throw with invalid length
assert.throws(function() {
new SlowBuffer(Infinity);
}, 'invalid Buffer length');
assert.throws(function() {
new SlowBuffer(-1);
}, 'invalid Buffer length');
// BFS: No kMaxLength.
/*assert.throws(function() {
new SlowBuffer(buffer.kMaxLength + 1);
}, 'invalid Buffer length');*/
};