1'use strict';
2
3require('../common');
4const assert = require('assert');
5
6{
7  assert.strictEqual(JSON.stringify(Buffer.alloc(0)),
8                     '{"type":"Buffer","data":[]}');
9  assert.strictEqual(JSON.stringify(Buffer.from([1, 2, 3, 4])),
10                     '{"type":"Buffer","data":[1,2,3,4]}');
11}
12
13// issue GH-7849
14{
15  const buf = Buffer.from('test');
16  const json = JSON.stringify(buf);
17  const obj = JSON.parse(json);
18  const copy = Buffer.from(obj);
19
20  assert.deepStrictEqual(buf, copy);
21}
22
23// GH-5110
24{
25  const buffer = Buffer.from('test');
26  const string = JSON.stringify(buffer);
27
28  assert.strictEqual(string, '{"type":"Buffer","data":[116,101,115,116]}');
29
30  function receiver(key, value) {
31    return value && value.type === 'Buffer' ? Buffer.from(value.data) : value;
32  }
33
34  assert.deepStrictEqual(buffer, JSON.parse(string, receiver));
35}
36