Skip to content

Commit 331ea59

Browse files
author
Ruben Bridgewater
committed
Improve the parser
1 parent 7922d4e commit 331ea59

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

lib/parsers/javascript.js

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,6 @@
22

33
var util = require('util');
44

5-
function Packet(type, size) {
6-
this.type = type;
7-
this.size = +size;
8-
}
9-
105
function ReplyParser(return_buffers) {
116
this.name = exports.name;
127
this.return_buffers = return_buffers;
@@ -23,7 +18,10 @@ function IncompleteReadBuffer(message) {
2318
util.inherits(IncompleteReadBuffer, Error);
2419

2520
ReplyParser.prototype._parseResult = function (type) {
26-
var start, end, offset, packetHeader;
21+
var start = 0,
22+
end = 0,
23+
offset = 0,
24+
packetHeader = 0;
2725

2826
if (type === 43 || type === 45) { // + or -
2927
// up to the delimiter
@@ -62,14 +60,14 @@ ReplyParser.prototype._parseResult = function (type) {
6260
// buffer in memory
6361
offset = this._offset - 1;
6462

65-
packetHeader = new Packet(type, this.parseHeader());
63+
packetHeader = this.parseHeader();
6664

6765
// packets with a size of -1 are considered null
68-
if (packetHeader.size === -1) {
66+
if (packetHeader === -1) {
6967
return null;
7068
}
7169

72-
end = this._offset + packetHeader.size;
70+
end = this._offset + packetHeader;
7371
start = this._offset;
7472

7573
if (end > this._buffer.length) {
@@ -85,13 +83,13 @@ ReplyParser.prototype._parseResult = function (type) {
8583
return this._buffer.toString(this._encoding, start, end);
8684
} else { // *
8785
offset = this._offset;
88-
packetHeader = new Packet(type, this.parseHeader());
86+
packetHeader = this.parseHeader();
8987

90-
if (packetHeader.size < 0) {
88+
if (packetHeader < 0) {
9189
return null;
9290
}
9391

94-
if (packetHeader.size > this._bytesRemaining()) {
92+
if (packetHeader > this._bytesRemaining()) {
9593
this._offset = offset - 1;
9694
throw new IncompleteReadBuffer('Wait for more data.');
9795
}
@@ -101,7 +99,7 @@ ReplyParser.prototype._parseResult = function (type) {
10199

102100
offset = this._offset - 1;
103101

104-
for (i = 0; i < packetHeader.size; i++) {
102+
for (i = 0; i < packetHeader; i++) {
105103
ntype = this._buffer[this._offset++];
106104

107105
if (this._offset > this._buffer.length) {
@@ -184,7 +182,7 @@ ReplyParser.prototype.append = function (newBuffer) {
184182

185183
ReplyParser.prototype.parseHeader = function () {
186184
var end = this._packetEndOffset(),
187-
value = this._buffer.toString('ascii', this._offset, end - 1);
185+
value = this._buffer.toString('ascii', this._offset, end - 1) | 0;
188186

189187
this._offset = end + 1;
190188

0 commit comments

Comments
 (0)