[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