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
| var test = require('tape');
| var Parser = require('../');
|
| var expected = [
| [ [], '' ],
| [ [], 'Hello' ],
| [ [], 'This"is' ],
| [ [], '\r\n\f\t\\/"' ],
| [ [], 'Λάμβδα' ],
| [ [], '\\' ],
| [ [], '/' ],
| [ [], '"' ],
| [ [ 0 ], 0 ],
| [ [ 1 ], 1 ],
| [ [ 2 ], -1 ],
| [ [], [ 0, 1, -1 ] ],
| [ [ 0 ], 1 ],
| [ [ 1 ], 1.1 ],
| [ [ 2 ], -1.1 ],
| [ [ 3 ], -1 ],
| [ [], [ 1, 1.1, -1.1, -1 ] ],
| [ [ 0 ], -1 ],
| [ [], [ -1 ] ],
| [ [ 0 ], -0.1 ],
| [ [], [ -0.1 ] ],
| [ [ 0 ], 6.02e+23 ],
| [ [], [ 6.02e+23 ] ],
| [ [ 0 ], '7161093205057351174' ],
| [ [], [ '7161093205057351174'] ]
| ];
|
| test('primitives', function (t) {
| t.plan(25);
|
| var p = new Parser();
| p.onValue = function (value) {
| var keys = this.stack
| .slice(1)
| .map(function (item) { return item.key })
| .concat(this.key !== undefined ? this.key : [])
| ;
| t.deepEqual(
| [ keys, value ],
| expected.shift()
| );
| };
|
| p.write('"""Hello""This\\"is""\\r\\n\\f\\t\\\\\\/\\""');
| p.write('"\\u039b\\u03ac\\u03bc\\u03b2\\u03b4\\u03b1"');
| p.write('"\\\\"');
| p.write('"\\/"');
| p.write('"\\""');
| p.write('[0,1,-1]');
| p.write('[1.0,1.1,-1.1,-1.0][-1][-0.1]');
| p.write('[6.02e23]');
| p.write('[7161093205057351174]');
| });
|
|