| 'use strict'; | 
 | // Older verions of Node.js might not have `util.getSystemErrorName()`. | 
 | // In that case, fall back to a deprecated internal. | 
 | const util = require('util'); | 
 |  | 
 | let uv; | 
 |  | 
 | if (typeof util.getSystemErrorName === 'function') { | 
 | 	module.exports = util.getSystemErrorName; | 
 | } else { | 
 | 	try { | 
 | 		uv = process.binding('uv'); | 
 |  | 
 | 		if (typeof uv.errname !== 'function') { | 
 | 			throw new TypeError('uv.errname is not a function'); | 
 | 		} | 
 | 	} catch (err) { | 
 | 		console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err); | 
 | 		uv = null; | 
 | 	} | 
 |  | 
 | 	module.exports = code => errname(uv, code); | 
 | } | 
 |  | 
 | // Used for testing the fallback behavior | 
 | module.exports.__test__ = errname; | 
 |  | 
 | function errname(uv, code) { | 
 | 	if (uv) { | 
 | 		return uv.errname(code); | 
 | 	} | 
 |  | 
 | 	if (!(code < 0)) { | 
 | 		throw new Error('err >= 0'); | 
 | 	} | 
 |  | 
 | 	return `Unknown system error ${code}`; | 
 | } | 
 |  |