From 0c8646bc6148aeb69c4f550c3e0d2b497f0d8ef2 Mon Sep 17 00:00:00 2001 From: Matt Ranney Date: Sun, 13 Nov 2011 18:12:28 -1000 Subject: [PATCH] Use number literals for case labels to help V8 go faster. --- lib/parser/javascript.js | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/lib/parser/javascript.js b/lib/parser/javascript.js index 6f250c919e..f90bcc672f 100644 --- a/lib/parser/javascript.js +++ b/lib/parser/javascript.js @@ -56,7 +56,8 @@ RedisReplyParser.prototype.reset = function () { UNKNOWN_TYPE: 8, FINAL_CR: 9, FINAL_LF: 10, - MULTI_BULK_COUNT_LF: 11 + MULTI_BULK_COUNT_LF: 11, + BULK_LF: 12 }; this.state = this.states.TYPE; @@ -77,7 +78,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { // console.log("execute: " + this.state + ", " + pos + "/" + incoming_buf.length + ", " + String.fromCharCode(incoming_buf[pos])); switch (this.state) { - case states.TYPE: + case 1: // states.TYPE this.type = incoming_buf[pos]; pos += 1; @@ -109,7 +110,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { this.state = states.UNKNOWN_TYPE; } break; - case states.INTEGER_LINE: + case 4: // states.INTEGER_LINE if (incoming_buf[pos] === 13) { this.send_reply(+small_toString(this.return_buffer, this.return_buffer.end)); this.state = states.FINAL_LF; @@ -119,7 +120,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.ERROR_LINE: + case 6: // states.ERROR_LINE if (incoming_buf[pos] === 13) { this.send_error(this.return_buffer.toString("ascii", 0, this.return_buffer.end)); this.state = states.FINAL_LF; @@ -129,7 +130,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.SINGLE_LINE: + case 2: // states.SINGLE_LINE if (incoming_buf[pos] === 13) { this.send_reply(this.return_string); this.state = states.FINAL_LF; @@ -138,7 +139,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.MULTI_BULK_COUNT: + case 3: // states.MULTI_BULK_COUNT if (incoming_buf[pos] === 13) { // \r this.state = states.MULTI_BULK_COUNT_LF; } else { @@ -146,7 +147,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.MULTI_BULK_COUNT_LF: + case 11: // states.MULTI_BULK_COUNT_LF if (incoming_buf[pos] === 10) { // \n if (this.multi_bulk_length) { // nested multi-bulk this.multi_bulk_nested_length = this.multi_bulk_length; @@ -172,7 +173,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.BULK_LENGTH: + case 5: // states.BULK_LENGTH if (incoming_buf[pos] === 13) { // \r this.state = states.BULK_LF; } else { @@ -180,7 +181,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.BULK_LF: + case 12: // states.BULK_LF if (incoming_buf[pos] === 10) { // \n this.bulk_length = +this.tmp_string; if (this.bulk_length === -1) { @@ -205,7 +206,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { } pos += 1; break; - case states.BULK_DATA: + case 7: // states.BULK_DATA this.return_buffer[this.return_buffer.end] = incoming_buf[pos]; this.return_buffer.end += 1; pos += 1; @@ -223,7 +224,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { this.state = states.FINAL_CR; } break; - case states.FINAL_CR: + case 9: // states.FINAL_CR if (incoming_buf[pos] === 13) { // \r this.state = states.FINAL_LF; pos += 1; @@ -232,7 +233,7 @@ RedisReplyParser.prototype.execute = function (incoming_buf) { return; } break; - case states.FINAL_LF: + case 10: // states.FINAL_LF if (incoming_buf[pos] === 10) { // \n this.state = states.TYPE; pos += 1;