undefined; this.size = 0; this.callback = callback; this.buffers = null; this.buffer = null; this.pos = 0; this.encoding = encoding; this.err = null; this.signal = undefined; } read() { let buffer; let offset; let length; if (this.signal?.aborted) { return this.close(new AbortError()); } if (this.size === 0) { buffer = Buffer.allocUnsafeSlow(kReadFileUnknownBufferLength); offset = 0; length = kReadFileUnknownBufferLength; this.buffer = buffer; } else { buffer = this.buffer; offset = this.pos; length = MathMin(kReadFileBufferLength, this.size - this.pos); } const req = new FSReqCallback(); req.oncomplete = readFileAfterRead; req.context = this; read(this.fd, buffer, offset, length, -1, req); } close(err) { if (this.isUserFd) { process.nextTick(function tick(context) { ReflectApply(readFileAfterClose, { context }, [null]); }, this); return; } const req = new FSReqCallback(); req.oncomplete = readFileAfterClose; req.context = this; this.err = err; close(this.fd, req); } } module.exports = ReadFileContext;