Skip to content

Commit 15be3ff

Browse files
committed
assert: better enforce and range calls.
1 parent 7b91815 commit 15be3ff

File tree

1 file changed

+33
-14
lines changed

1 file changed

+33
-14
lines changed

lib/assert.js

+33-14
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ function throws(func, expected, message) {
152152
let thrown = false;
153153
let err = null;
154154

155-
enforce(typeof func === 'function', 'func', 'function', throws);
155+
enforce(typeof func === 'function', 'func', 'function');
156156

157157
try {
158158
func();
@@ -192,7 +192,7 @@ function doesNotThrow(func, expected, message) {
192192
let thrown = false;
193193
let err = null;
194194

195-
enforce(typeof func === 'function', 'func', 'function', doesNotThrow);
195+
enforce(typeof func === 'function', 'func', 'function');
196196

197197
try {
198198
func();
@@ -235,7 +235,7 @@ async function rejects(func, expected, message) {
235235
let err = null;
236236

237237
if (typeof func !== 'function')
238-
enforce(isPromise(func), 'func', 'promise', rejects);
238+
enforce(isPromise(func), 'func', 'promise');
239239

240240
try {
241241
if (isPromise(func))
@@ -279,7 +279,7 @@ async function doesNotReject(func, expected, message) {
279279
let err = null;
280280

281281
if (typeof func !== 'function')
282-
enforce(isPromise(func), 'func', 'promise', doesNotReject);
282+
enforce(isPromise(func), 'func', 'promise');
283283

284284
try {
285285
if (isPromise(func))
@@ -380,8 +380,8 @@ function bufferEqual(actual, expected, enc, message) {
380380

381381
expected = bufferize(actual, expected, enc);
382382

383-
enforce(isBuffer(actual), 'actual', 'buffer', bufferEqual);
384-
enforce(isBuffer(expected), 'expected', 'buffer', bufferEqual);
383+
enforce(isBuffer(actual), 'actual', 'buffer');
384+
enforce(isBuffer(expected), 'expected', 'buffer');
385385

386386
if (actual !== expected && !actual.equals(expected)) {
387387
if (isError(message))
@@ -408,8 +408,8 @@ function notBufferEqual(actual, expected, enc, message) {
408408

409409
expected = bufferize(actual, expected, enc);
410410

411-
enforce(isBuffer(actual), 'actual', 'buffer', notBufferEqual);
412-
enforce(isBuffer(expected), 'expected', 'buffer', notBufferEqual);
411+
enforce(isBuffer(actual), 'actual', 'buffer');
412+
enforce(isBuffer(expected), 'expected', 'buffer');
413413

414414
if (actual === expected || actual.equals(expected)) {
415415
if (isError(message))
@@ -425,20 +425,39 @@ function notBufferEqual(actual, expected, enc, message) {
425425
}
426426
}
427427

428-
function enforce(value, name, type, func) {
428+
function enforce(value, name, type) {
429429
if (!value) {
430-
const err = new TypeError(`"${name}" must be a(n) ${type}.`);
430+
let msg;
431+
432+
if (name == null) {
433+
msg = 'Invalid type for parameter.';
434+
} else {
435+
if (type == null)
436+
msg = `Invalid type for "${name}".`;
437+
else
438+
msg = `"${name}" must be a(n) ${type}.`;
439+
}
440+
441+
const err = new TypeError(msg);
442+
431443
if (Error.captureStackTrace)
432-
Error.captureStackTrace(err, func || enforce);
444+
Error.captureStackTrace(err, enforce);
445+
433446
throw err;
434447
}
435448
}
436449

437-
function range(value, name, func) {
450+
function range(value, name) {
438451
if (!value) {
439-
const err = new RangeError(`"${name}" is out of range.`);
452+
const msg = name != null
453+
? `"${name}" is out of range.`
454+
: 'Parameter is out of range.';
455+
456+
const err = new RangeError(msg);
457+
440458
if (Error.captureStackTrace)
441-
Error.captureStackTrace(err, func || range);
459+
Error.captureStackTrace(err, range);
460+
442461
throw err;
443462
}
444463
}

0 commit comments

Comments
 (0)