GeezerVison is showing github.com — assert: use isError instead of instanceof in innerOk · nodejs/node@063f46d
File tree
Expand file treeCollapse file tree
Open diff view settings
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: lib/assert.js +1-1Lines changed: 1 addition & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
@@ -393,7 +393,7 @@ function innerOk(fn, argLen, value, message) { |
393 | 393 | } else if (message == null) { |
394 | 394 | generatedMessage = true; |
395 | 395 | message = getErrMessage(message, fn); |
396 | | - } else if (message instanceof Error) { |
| 396 | + } else if (isError(message)) { |
397 | 397 | throw message; |
398 | 398 | } |
399 | 399 |
|
|
Collapse file
Copy file name to clipboardExpand all lines: test/parallel/test-assert.js +10Lines changed: 10 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -55,6 +55,16 @@ assert.throws(() => a.ok(false), a.AssertionError, 'ok(false)'); |
55 | 55 | assert.ok(threw, 'Error: ok(false)'); |
56 | 56 | } |
57 | 57 |
|
| 58 | +// Errors created in different contexts are handled as any other custom error |
| 59 | +{ |
| 60 | + const context = vm.createContext(); |
| 61 | + const error = vm.runInContext('new SyntaxError("custom error")', context); |
| 62 | + |
| 63 | + assert.throws(() => assert(false, error), { |
| 64 | + message: 'custom error', |
| 65 | + name: 'SyntaxError' |
| 66 | + }); |
| 67 | +} |
58 | 68 |
|
59 | 69 | a(true); |
60 | 70 | a('test', 'ok(\'test\')'); |
|