// if it's not enough data, we'll just call handle.readStart()
// again right away.
self.bytesRead += length;
- self._readableState.onread(null, buffer.slice(offset, end));
+
+ // Optimization: emit the original buffer with end points
+ if (self.ondata) self.ondata(buffer, offset, end);
+ else self._readableState.onread(null, buffer.slice(offset, end));
if (handle.reading && !self._readableState.reading) {
handle.reading = false;
self._destroy(errnoException(errno, 'read'));
}
- // Optimization: emit the original buffer with end points
- if (self.ondata) self.ondata(buffer, offset, end);
-
} else if (errno == 'EOF') {
debug('EOF');