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
| 'use strict';
| var errorEx = require('error-ex');
| var fallback = require('./vendor/parse');
|
| var JSONError = errorEx('JSONError', {
| fileName: errorEx.append('in %s')
| });
|
| module.exports = function (x, reviver, filename) {
| if (typeof reviver === 'string') {
| filename = reviver;
| reviver = null;
| }
|
| try {
| try {
| return JSON.parse(x, reviver);
| } catch (err) {
| fallback.parse(x, {
| mode: 'json',
| reviver: reviver
| });
|
| throw err;
| }
| } catch (err) {
| var jsonErr = new JSONError(err);
|
| if (filename) {
| jsonErr.fileName = filename;
| }
|
| throw jsonErr;
| }
| };
|
|