Browse Source

Merge pull request #4353 from nnethercote/more-Array-joins

Use Array.join() to build up strings in more places.
Yury Delendik 11 years ago
parent
commit
ba95e0b07b
  1. 8
      src/core/core.js
  2. 19
      src/core/fonts.js
  3. 22
      src/shared/util.js

8
src/core/core.js

@ -291,11 +291,13 @@ var PDFDocument = (function PDFDocumentClosure() {
function find(stream, needle, limit, backwards) { function find(stream, needle, limit, backwards) {
var pos = stream.pos; var pos = stream.pos;
var end = stream.end; var end = stream.end;
var str = ''; var strBuf = [];
if (pos + limit > end) if (pos + limit > end)
limit = end - pos; limit = end - pos;
for (var n = 0; n < limit; ++n) for (var n = 0; n < limit; ++n) {
str += String.fromCharCode(stream.getByte()); strBuf.push(String.fromCharCode(stream.getByte()));
}
var str = strBuf.join('');
stream.pos = pos; stream.pos = pos;
var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle); var index = backwards ? str.lastIndexOf(needle) : str.indexOf(needle);
if (index == -1) if (index == -1)

19
src/core/fonts.js

@ -2382,11 +2382,11 @@ var Font = (function FontClosure() {
} }
function arrayToString(arr) { function arrayToString(arr) {
var str = ''; var strBuf = [];
for (var i = 0, ii = arr.length; i < ii; ++i) for (var i = 0, ii = arr.length; i < ii; ++i) {
str += String.fromCharCode(arr[i]); strBuf.push(String.fromCharCode(arr[i]));
}
return str; return strBuf.join('');
} }
function int16(bytes) { function int16(bytes) {
@ -2801,10 +2801,11 @@ var Font = (function FontClosure() {
for (var i = 0, ii = strings.length; i < ii; i++) { for (var i = 0, ii = strings.length; i < ii; i++) {
var str = proto[1][i] || strings[i]; var str = proto[1][i] || strings[i];
var strUnicode = ''; var strBufUnicode = [];
for (var j = 0, jj = str.length; j < jj; j++) for (var j = 0, jj = str.length; j < jj; j++) {
strUnicode += string16(str.charCodeAt(j)); strBufUnicode.push(string16(str.charCodeAt(j)));
stringsUnicode.push(strUnicode); }
stringsUnicode.push(strBufUnicode.join(''));
} }
var names = [strings, stringsUnicode]; var names = [strings, stringsUnicode];

22
src/shared/util.js

@ -386,11 +386,12 @@ var XRefParseException = (function XRefParseExceptionClosure() {
function bytesToString(bytes) { function bytesToString(bytes) {
var str = ''; var strBuf = [];
var length = bytes.length; var length = bytes.length;
for (var n = 0; n < length; ++n) for (var n = 0; n < length; ++n) {
str += String.fromCharCode(bytes[n]); strBuf.push(String.fromCharCode(bytes[n]));
return str; }
return strBuf.join('');
} }
function stringToBytes(str) { function stringToBytes(str) {
@ -715,19 +716,20 @@ var PDFStringTranslateTable = [
]; ];
function stringToPDFString(str) { function stringToPDFString(str) {
var i, n = str.length, str2 = ''; var i, n = str.length, strBuf = [];
if (str[0] === '\xFE' && str[1] === '\xFF') { if (str[0] === '\xFE' && str[1] === '\xFF') {
// UTF16BE BOM // UTF16BE BOM
for (i = 2; i < n; i += 2) for (i = 2; i < n; i += 2) {
str2 += String.fromCharCode( strBuf.push(String.fromCharCode(
(str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)); (str.charCodeAt(i) << 8) | str.charCodeAt(i + 1)));
}
} else { } else {
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i) {
var code = PDFStringTranslateTable[str.charCodeAt(i)]; var code = PDFStringTranslateTable[str.charCodeAt(i)];
str2 += code ? String.fromCharCode(code) : str.charAt(i); strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
} }
} }
return str2; return strBuf.join('');
} }
function stringToUTF8String(str) { function stringToUTF8String(str) {

Loading…
Cancel
Save