diff --git a/doc/api/errors.md b/doc/api/errors.md
index e521796edd75a5..1afa622a9dc526 100644
--- a/doc/api/errors.md
+++ b/doc/api/errors.md
@@ -624,6 +624,12 @@ process. See [`child.send()`] and [`process.send()`] for more information.
The `'ERR_INVALID_OPT_VALUE'` error code is used generically to identify when
an invalid or unexpected value has been passed in an options object.
+
+### ERR_INVALID_REPL_EVAL_CONFIG
+
+Used when both `breakEvalOnSigint` and `eval` options are set
+in the REPL config, which is not supported.
+
### ERR_INVALID_SYNC_FORK_INPUT
diff --git a/lib/internal/errors.js b/lib/internal/errors.js
index 8bd7553c89fdf1..c080b3d2f5a2c6 100644
--- a/lib/internal/errors.js
+++ b/lib/internal/errors.js
@@ -129,6 +129,8 @@ E('ERR_INVALID_OPT_VALUE',
(name, value) => {
return `The value "${String(value)}" is invalid for option "${name}"`;
});
+E('ERR_INVALID_REPL_EVAL_CONFIG',
+ 'Cannot specify both "breakEvalOnSigint" and "eval" for REPL');
E('ERR_INVALID_SYNC_FORK_INPUT',
(value) => {
return 'Asynchronous forks do not support Buffer, Uint8Array or string' +
diff --git a/lib/repl.js b/lib/repl.js
index 670dbfbc871365..95da757cf2b5bd 100644
--- a/lib/repl.js
+++ b/lib/repl.js
@@ -56,6 +56,7 @@ const Console = require('console').Console;
const Module = require('module');
const domain = require('domain');
const debug = util.debuglog('repl');
+const errors = require('internal/errors');
const parentModule = module;
const replMap = new WeakMap();
@@ -138,7 +139,7 @@ function REPLServer(prompt,
if (breakEvalOnSigint && eval_) {
// Allowing this would not reflect user expectations.
// breakEvalOnSigint affects only the behaviour of the default eval().
- throw new Error('Cannot specify both breakEvalOnSigint and eval for REPL');
+ throw new errors.Error('ERR_INVALID_REPL_EVAL_CONFIG');
}
var self = this;
@@ -1021,7 +1022,8 @@ REPLServer.prototype.defineCommand = function(keyword, cmd) {
if (typeof cmd === 'function') {
cmd = {action: cmd};
} else if (typeof cmd.action !== 'function') {
- throw new Error('Bad argument, "action" command must be a function');
+ throw new errors.TypeError('ERR_INVALID_ARG_TYPE',
+ 'action', 'function', cmd.action);
}
this.commands[keyword] = cmd;
};