Skip to content
Permalink
Browse files

assert: use less read operations

This reduces the total amount of reads when using `assert.ok()` with
a falsy value. That increases the read performance significantly.

Also remove a comment that can not be addressed.

PR-URL: #27525
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
  • Loading branch information...
BridgeAR authored and Trott committed May 1, 2019
1 parent 0cd6028 commit d099f2f1248204585adf9965204b6efe1ad92b80
Showing with 2 additions and 7 deletions.
  1. +2 −7 lib/assert.js
@@ -172,8 +172,8 @@ function getCode(fd, line, column) {
let lines = 0;
// Prevent blocking the event loop by limiting the maximum amount of
// data that may be read.
let maxReads = 64; // bytesPerRead * maxReads = 512 kb
const bytesPerRead = 8192;
let maxReads = 32; // bytesPerRead * maxReads = 512 kb
const bytesPerRead = 16384;
// Use a single buffer up front that is reused until the call site is found.
let buffer = Buffer.allocUnsafe(bytesPerRead);
while (maxReads-- !== 0) {
@@ -619,11 +619,6 @@ function checkIsPromise(obj) {
// Accept native ES6 promises and promises that are implemented in a similar
// way. Do not accept thenables that use a function as `obj` and that have no
// `catch` handler.

// TODO: thenables are checked up until they have the correct methods,
// but according to documentation, the `then` method should receive
// the `fulfill` and `reject` arguments as well or it may be never resolved.

return isPromise(obj) ||
obj !== null && typeof obj === 'object' &&
typeof obj.then === 'function' &&

0 comments on commit d099f2f

Please sign in to comment.
You can’t perform that action at this time.