27 lines
		
	
	
		
			595 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			595 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 'use strict';
 | |
| 
 | |
| const Stringify = require('./stringify');
 | |
| 
 | |
| 
 | |
| const internals = {};
 | |
| 
 | |
| 
 | |
| module.exports = class extends Error {
 | |
| 
 | |
|     constructor(args) {
 | |
| 
 | |
|         const msgs = args
 | |
|             .filter((arg) => arg !== '')
 | |
|             .map((arg) => {
 | |
| 
 | |
|                 return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : Stringify(arg);
 | |
|             });
 | |
| 
 | |
|         super(msgs.join(' ') || 'Unknown error');
 | |
| 
 | |
|         if (typeof Error.captureStackTrace === 'function') {            // $lab:coverage:ignore$
 | |
|             Error.captureStackTrace(this, exports.assert);
 | |
|         }
 | |
|     }
 | |
| };
 |