[Pkg-javascript-commits] [pdf.js] 33/246: Avoid creating intermediate strings in the PostScriptLexer

David Prévot taffit at moszumanska.debian.org
Sun Sep 7 15:36:22 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository pdf.js.

commit 4960af3a4c7b7b49a2c852aa445c89e2528fe992
Author: Jonas Jenwald <jonas.jenwald at gmail.com>
Date:   Sat Jul 19 14:04:33 2014 +0200

    Avoid creating intermediate strings in the PostScriptLexer
---
 src/core/ps_parser.js | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/core/ps_parser.js b/src/core/ps_parser.js
index 9aa6f09..2ce16b9 100644
--- a/src/core/ps_parser.js
+++ b/src/core/ps_parser.js
@@ -137,6 +137,8 @@ var PostScriptLexer = (function PostScriptLexerClosure() {
   function PostScriptLexer(stream) {
     this.stream = stream;
     this.nextChar();
+
+    this.strBuf = [];
   }
   PostScriptLexer.prototype = {
     nextChar: function PostScriptLexer_nextChar() {
@@ -177,11 +179,15 @@ var PostScriptLexer = (function PostScriptLexerClosure() {
           return PostScriptToken.RBRACE;
       }
       // operator
-      var str = String.fromCharCode(ch);
+      var strBuf = this.strBuf;
+      strBuf.length = 0;
+      strBuf[0] = String.fromCharCode(ch);
+
       while ((ch = this.nextChar()) >= 0 && // and 'A'-'Z', 'a'-'z'
              ((ch >= 0x41 && ch <= 0x5A) || (ch >= 0x61 && ch <= 0x7A))) {
-        str += String.fromCharCode(ch);
+        strBuf.push(String.fromCharCode(ch));
       }
+      var str = strBuf.join('');
       switch (str.toLowerCase()) {
         case 'if':
           return PostScriptToken.IF;
@@ -193,16 +199,19 @@ var PostScriptLexer = (function PostScriptLexerClosure() {
     },
     getNumber: function PostScriptLexer_getNumber() {
       var ch = this.currentChar;
-      var str = String.fromCharCode(ch);
+      var strBuf = this.strBuf;
+      strBuf.length = 0;
+      strBuf[0] = String.fromCharCode(ch);
+
       while ((ch = this.nextChar()) >= 0) {
         if ((ch >= 0x30 && ch <= 0x39) || // '0'-'9'
             ch === 0x2D || ch === 0x2E) { // '-', '.'
-          str += String.fromCharCode(ch);
+          strBuf.push(String.fromCharCode(ch));
         } else {
           break;
         }
       }
-      var value = parseFloat(str);
+      var value = parseFloat(strBuf.join(''));
       if (isNaN(value)) {
         error('Invalid floating point number: ' + value);
       }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git



More information about the Pkg-javascript-commits mailing list