child_process: define EACCES as a runtime error

Access permission on the target child is currently thrown
as an exception. Bring this under the runtime error definition,
much like ENOENT and friends.

PR-URL: https://github.com/nodejs/node/pull/19294
Fixes: https://github.com/nodejs/help/issues/990
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Prince John Wesley <princejohnwesley@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This commit is contained in:
Gireesh Punathil 2018-03-12 14:02:40 +05:30
parent a1a409a8ca
commit 11b6c0de41

View File

@ -33,6 +33,7 @@ const { isUint8Array } = require('internal/util/types');
const spawn_sync = process.binding('spawn_sync');
const {
UV_EACCES,
UV_EAGAIN,
UV_EINVAL,
UV_EMFILE,
@ -315,7 +316,8 @@ ChildProcess.prototype.spawn = function(options) {
var err = this._handle.spawn(options);
// Run-time errors should emit an error, not throw an exception.
if (err === UV_EAGAIN ||
if (err === UV_EACCES ||
err === UV_EAGAIN ||
err === UV_EMFILE ||
err === UV_ENFILE ||
err === UV_ENOENT) {