| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 | | module.exports = function createCustomError(name, message) { |  |     // use Object.create(), because some VMs prevent setting line/column otherwise |  |     // (iOS Safari 10 even throws an exception) |  |     var error = Object.create(SyntaxError.prototype); |  |     var errorStack = new Error(); |  |   |  |     error.name = name; |  |     error.message = message; |  |   |  |     Object.defineProperty(error, 'stack', { |  |         get: function() { |  |             return (errorStack.stack || '').replace(/^(.+\n){1,3}/, name + ': ' + message + '\n'); |  |         } |  |     }); |  |   |  |     return error; |  | }; | 
 |