First iteration, tracemonkey/ecma262 working
This commit is contained in:
parent
112115c013
commit
c8c5b4f8ea
@ -125,7 +125,7 @@ var CanvasGraphics = (function canvasGraphics() {
|
|||||||
this[fnArray[i]].apply(this, argsArray[i]);
|
this[fnArray[i]].apply(this, argsArray[i]);
|
||||||
} else {
|
} else {
|
||||||
var deps = argsArray[i];
|
var deps = argsArray[i];
|
||||||
for (var n = 0; n < deps.length; n++) {
|
for (var n = 0, depsLength = deps.length; n < depsLength; n++) {
|
||||||
var depObjId = deps[n];
|
var depObjId = deps[n];
|
||||||
|
|
||||||
// If the promise isn't resolved yet, add the continueCallback
|
// If the promise isn't resolved yet, add the continueCallback
|
||||||
@ -184,7 +184,7 @@ var CanvasGraphics = (function canvasGraphics() {
|
|||||||
TODO('set flatness: ' + flatness);
|
TODO('set flatness: ' + flatness);
|
||||||
},
|
},
|
||||||
setGState: function canvasGraphicsSetGState(states) {
|
setGState: function canvasGraphicsSetGState(states) {
|
||||||
for (var i = 0; i < states.length; i++) {
|
for (var i = 0, statesLength = states.length; i < statesLength; i++) {
|
||||||
var state = states[i];
|
var state = states[i];
|
||||||
var key = state[0];
|
var key = state[0];
|
||||||
var value = state[1];
|
var value = state[1];
|
||||||
|
@ -205,7 +205,7 @@ var Page = (function pagePage() {
|
|||||||
|
|
||||||
ensureFonts: function pageEnsureFonts(fonts, callback) {
|
ensureFonts: function pageEnsureFonts(fonts, callback) {
|
||||||
// Convert the font names to the corresponding font obj.
|
// Convert the font names to the corresponding font obj.
|
||||||
for (var i = 0; i < fonts.length; i++) {
|
for (var i = 0, fontsLength = fonts.length; i < fontsLength; i++) {
|
||||||
fonts[i] = this.objs.objs[fonts[i]].data;
|
fonts[i] = this.objs.objs[fonts[i]].data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
79
src/fonts.js
79
src/fonts.js
@ -393,7 +393,7 @@ var FontLoader = {
|
|||||||
|
|
||||||
bind: function fontLoaderBind(fonts, callback) {
|
bind: function fontLoaderBind(fonts, callback) {
|
||||||
function checkFontsLoaded() {
|
function checkFontsLoaded() {
|
||||||
for (var i = 0; i < objs.length; i++) {
|
for (var i = 0, objsLength = objs.length; i < objsLength; i++) {
|
||||||
var fontObj = objs[i];
|
var fontObj = objs[i];
|
||||||
if (fontObj.loading) {
|
if (fontObj.loading) {
|
||||||
return false;
|
return false;
|
||||||
@ -409,7 +409,7 @@ var FontLoader = {
|
|||||||
|
|
||||||
var rules = [], names = [], objs = [];
|
var rules = [], names = [], objs = [];
|
||||||
|
|
||||||
for (var i = 0; i < fonts.length; i++) {
|
for (var i = 0, fontsLength = fonts.length; i < fontsLength; i++) {
|
||||||
var font = fonts[i];
|
var font = fonts[i];
|
||||||
|
|
||||||
// If there is already a fontObj on the font, then it was loaded/attached
|
// If there is already a fontObj on the font, then it was loaded/attached
|
||||||
@ -490,7 +490,7 @@ var FontLoader = {
|
|||||||
'width: 10px; height: 10px;' +
|
'width: 10px; height: 10px;' +
|
||||||
'position: absolute; top: 0px; left: 0px;');
|
'position: absolute; top: 0px; left: 0px;');
|
||||||
var html = '';
|
var html = '';
|
||||||
for (var i = 0; i < names.length; ++i) {
|
for (var i = 0, namesLength = names.length; i < namesLength; ++i) {
|
||||||
html += '<span style="font-family:' + names[i] + '">Hi</span>';
|
html += '<span style="font-family:' + names[i] + '">Hi</span>';
|
||||||
}
|
}
|
||||||
div.innerHTML = html;
|
div.innerHTML = html;
|
||||||
@ -501,7 +501,7 @@ var FontLoader = {
|
|||||||
'message',
|
'message',
|
||||||
function fontLoaderMessage(e) {
|
function fontLoaderMessage(e) {
|
||||||
var fontNames = JSON.parse(e.data);
|
var fontNames = JSON.parse(e.data);
|
||||||
for (var i = 0; i < objs.length; ++i) {
|
for (var i = 0, objsLength = objs.length; i < objsLength; ++i) {
|
||||||
var font = objs[i];
|
var font = objs[i];
|
||||||
font.loading = false;
|
font.loading = false;
|
||||||
}
|
}
|
||||||
@ -517,13 +517,13 @@ var FontLoader = {
|
|||||||
// pdfjsFontLoadFailed?
|
// pdfjsFontLoadFailed?
|
||||||
var src = '<!DOCTYPE HTML><html><head>';
|
var src = '<!DOCTYPE HTML><html><head>';
|
||||||
src += '<style type="text/css">';
|
src += '<style type="text/css">';
|
||||||
for (var i = 0; i < rules.length; ++i) {
|
for (var i = 0, rulesLength = rules.length; i < rulesLength; ++i) {
|
||||||
src += rules[i];
|
src += rules[i];
|
||||||
}
|
}
|
||||||
src += '</style>';
|
src += '</style>';
|
||||||
src += '<script type="application/javascript">';
|
src += '<script type="application/javascript">';
|
||||||
var fontNamesArray = '';
|
var fontNamesArray = '';
|
||||||
for (var i = 0; i < names.length; ++i) {
|
for (var i = 0, namesLength = names.length; i < namesLength; ++i) {
|
||||||
fontNamesArray += '"' + names[i] + '", ';
|
fontNamesArray += '"' + names[i] + '", ';
|
||||||
}
|
}
|
||||||
src += ' var fontNames=[' + fontNamesArray + '];\n';
|
src += ' var fontNames=[' + fontNamesArray + '];\n';
|
||||||
@ -531,7 +531,7 @@ var FontLoader = {
|
|||||||
src += ' parent.postMessage(JSON.stringify(fontNames), "*");\n';
|
src += ' parent.postMessage(JSON.stringify(fontNames), "*");\n';
|
||||||
src += ' }';
|
src += ' }';
|
||||||
src += '</script></head><body>';
|
src += '</script></head><body>';
|
||||||
for (var i = 0; i < names.length; ++i) {
|
for (var i = 0, namesLength = names.length; i < namesLength; ++i) {
|
||||||
src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>';
|
src += '<p style="font-family:\'' + names[i] + '\'">Hi</p>';
|
||||||
}
|
}
|
||||||
src += '</body></html>';
|
src += '</body></html>';
|
||||||
@ -673,7 +673,7 @@ var UnicodeRanges = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
function getUnicodeRangeFor(value) {
|
function getUnicodeRangeFor(value) {
|
||||||
for (var i = 0; i < UnicodeRanges.length; i++) {
|
for (var i = 0, ii = UnicodeRanges.length; i < ii; i++) {
|
||||||
var range = UnicodeRanges[i];
|
var range = UnicodeRanges[i];
|
||||||
if (value >= range.begin && value < range.end)
|
if (value >= range.begin && value < range.end)
|
||||||
return i;
|
return i;
|
||||||
@ -782,7 +782,7 @@ var Font = (function Font() {
|
|||||||
|
|
||||||
function stringToArray(str) {
|
function stringToArray(str) {
|
||||||
var array = [];
|
var array = [];
|
||||||
for (var i = 0; i < str.length; ++i)
|
for (var i = 0, strLength = str.length; i < strLength; ++i)
|
||||||
array[i] = str.charCodeAt(i);
|
array[i] = str.charCodeAt(i);
|
||||||
|
|
||||||
return array;
|
return array;
|
||||||
@ -790,7 +790,7 @@ var Font = (function Font() {
|
|||||||
|
|
||||||
function arrayToString(arr) {
|
function arrayToString(arr) {
|
||||||
var str = '';
|
var str = '';
|
||||||
for (var i = 0; i < arr.length; ++i)
|
for (var i = 0, arrLength = arr.length; i < arrLength; ++i)
|
||||||
str += String.fromCharCode(arr[i]);
|
str += String.fromCharCode(arr[i]);
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
@ -1116,11 +1116,11 @@ var Font = (function Font() {
|
|||||||
// Mac want 1-byte per character strings while Windows want
|
// Mac want 1-byte per character strings while Windows want
|
||||||
// 2-bytes per character, so duplicate the names table
|
// 2-bytes per character, so duplicate the names table
|
||||||
var stringsUnicode = [];
|
var stringsUnicode = [];
|
||||||
for (var i = 0; i < strings.length; i++) {
|
for (var i = 0, stringsLength = strings.length; i < stringsLength; i++) {
|
||||||
var str = strings[i];
|
var str = strings[i];
|
||||||
|
|
||||||
var strUnicode = '';
|
var strUnicode = '';
|
||||||
for (var j = 0; j < str.length; j++)
|
for (var j = 0, strLength = str.length; j < strLength; j++)
|
||||||
strUnicode += string16(str.charCodeAt(j));
|
strUnicode += string16(str.charCodeAt(j));
|
||||||
stringsUnicode.push(strUnicode);
|
stringsUnicode.push(strUnicode);
|
||||||
}
|
}
|
||||||
@ -1138,9 +1138,9 @@ var Font = (function Font() {
|
|||||||
|
|
||||||
// Build the name records field
|
// Build the name records field
|
||||||
var strOffset = 0;
|
var strOffset = 0;
|
||||||
for (var i = 0; i < platforms.length; i++) {
|
for (var i = 0, platfLength = platforms.length; i < platfLength; i++) {
|
||||||
var strs = names[i];
|
var strs = names[i];
|
||||||
for (var j = 0; j < strs.length; j++) {
|
for (var j = 0, strsLength = strs.length; j < strsLength; j++) {
|
||||||
var str = strs[j];
|
var str = strs[j];
|
||||||
var nameRecord =
|
var nameRecord =
|
||||||
platforms[i] + // platform ID
|
platforms[i] + // platform ID
|
||||||
@ -1258,7 +1258,7 @@ var Font = (function Font() {
|
|||||||
string32(table.offset);
|
string32(table.offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < data.length; i++)
|
for (var i = 0, dataLength = data.length; i < dataLength; i++)
|
||||||
cmap.data[i] = data.charCodeAt(i);
|
cmap.data[i] = data.charCodeAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1345,7 +1345,7 @@ var Font = (function Font() {
|
|||||||
if (numMissing > 0) {
|
if (numMissing > 0) {
|
||||||
font.pos = (font.start ? font.start : 0) + metrics.offset;
|
font.pos = (font.start ? font.start : 0) + metrics.offset;
|
||||||
var entries = '';
|
var entries = '';
|
||||||
for (var i = 0; i < hmtx.length; i++)
|
for (var i = 0, hmtxLength = hmtx.length; i < hmtxLength; i++)
|
||||||
entries += String.fromCharCode(font.getByte());
|
entries += String.fromCharCode(font.getByte());
|
||||||
for (var i = 0; i < numMissing; i++)
|
for (var i = 0; i < numMissing; i++)
|
||||||
entries += '\x00\x00';
|
entries += '\x00\x00';
|
||||||
@ -1549,18 +1549,18 @@ var Font = (function Font() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// rewrite the tables but tweak offsets
|
// rewrite the tables but tweak offsets
|
||||||
for (var i = 0; i < tables.length; i++) {
|
for (var i = 0, tablesLength = tables.length; i < tablesLength; i++) {
|
||||||
var table = tables[i];
|
var table = tables[i];
|
||||||
var data = [];
|
var data = [];
|
||||||
|
|
||||||
var tableData = table.data;
|
var tableData = table.data;
|
||||||
for (var j = 0; j < tableData.length; j++)
|
for (var j = 0, dataLength = tableData.length; j < dataLength; j++)
|
||||||
data.push(tableData[j]);
|
data.push(tableData[j]);
|
||||||
createTableEntry(ttf, table.tag, data);
|
createTableEntry(ttf, table.tag, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the table datas
|
// Add the table datas
|
||||||
for (var i = 0; i < tables.length; i++) {
|
for (var i = 0, tablesLength = tables.length; i < tablesLength; i++) {
|
||||||
var table = tables[i];
|
var table = tables[i];
|
||||||
var tableData = table.data;
|
var tableData = table.data;
|
||||||
ttf.file += arrayToString(tableData);
|
ttf.file += arrayToString(tableData);
|
||||||
@ -1575,7 +1575,7 @@ var Font = (function Font() {
|
|||||||
|
|
||||||
convert: function font_convert(fontName, font, properties) {
|
convert: function font_convert(fontName, font, properties) {
|
||||||
function isFixedPitch(glyphs) {
|
function isFixedPitch(glyphs) {
|
||||||
for (var i = 0; i < glyphs.length - 1; i++) {
|
for (var i = 0, glyphsMax = glyphs.length - 1; i < glyphsMax; i++) {
|
||||||
if (glyphs[i] != glyphs[i + 1])
|
if (glyphs[i] != glyphs[i + 1])
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1657,7 +1657,7 @@ var Font = (function Font() {
|
|||||||
// Horizontal metrics
|
// Horizontal metrics
|
||||||
'hmtx': (function fontFieldsHmtx() {
|
'hmtx': (function fontFieldsHmtx() {
|
||||||
var hmtx = '\x00\x00\x00\x00'; // Fake .notdef
|
var hmtx = '\x00\x00\x00\x00'; // Fake .notdef
|
||||||
for (var i = 0; i < charstrings.length; i++) {
|
for (var i = 0, cstrMax = charstrings.length; i < cstrMax; i++) {
|
||||||
hmtx += string16(charstrings[i].width) + string16(0);
|
hmtx += string16(charstrings[i].width) + string16(0);
|
||||||
}
|
}
|
||||||
return stringToArray(hmtx);
|
return stringToArray(hmtx);
|
||||||
@ -1729,8 +1729,8 @@ var Font = (function Font() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
encoding[0] = { unicode: 0, width: 0 };
|
encoding[0] = { unicode: 0, width: 0 };
|
||||||
var glyph = 1, i, j, k;
|
var glyph = 1, i, j, k, cidLength;
|
||||||
for (i = 0; i < cidToUnicode.length; ++i) {
|
for (i = 0, cidLength = cidToUnicode.length; i < cidLength; ++i) {
|
||||||
var unicode = cidToUnicode[i];
|
var unicode = cidToUnicode[i];
|
||||||
var width;
|
var width;
|
||||||
if (isArray(unicode)) {
|
if (isArray(unicode)) {
|
||||||
@ -1844,7 +1844,7 @@ var Font = (function Font() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
for (var i = 0; i < chars.length; ++i) {
|
for (var i = 0, charsLength = chars.length; i < charsLength; ++i) {
|
||||||
var charcode = chars.charCodeAt(i);
|
var charcode = chars.charCodeAt(i);
|
||||||
var glyph = encoding[charcode];
|
var glyph = encoding[charcode];
|
||||||
if ('undefined' == typeof(glyph)) {
|
if ('undefined' == typeof(glyph)) {
|
||||||
@ -2142,7 +2142,7 @@ var Type1Parser = function type1Parser() {
|
|||||||
count++;
|
count++;
|
||||||
|
|
||||||
var array = str.substr(start, count).split(' ');
|
var array = str.substr(start, count).split(' ');
|
||||||
for (var i = 0; i < array.length; i++)
|
for (var i = 0, arrayLength = array.length; i < arrayLength; i++)
|
||||||
array[i] = parseFloat(array[i] || 0);
|
array[i] = parseFloat(array[i] || 0);
|
||||||
return array;
|
return array;
|
||||||
}
|
}
|
||||||
@ -2167,7 +2167,7 @@ var Type1Parser = function type1Parser() {
|
|||||||
this.extractFontProgram = function t1_extractFontProgram(stream) {
|
this.extractFontProgram = function t1_extractFontProgram(stream) {
|
||||||
var eexec = decrypt(stream, kEexecEncryptionKey, 4);
|
var eexec = decrypt(stream, kEexecEncryptionKey, 4);
|
||||||
var eexecStr = '';
|
var eexecStr = '';
|
||||||
for (var i = 0; i < eexec.length; i++)
|
for (var i = 0, eexecLength = eexec.length; i < eexecLength; i++)
|
||||||
eexecStr += String.fromCharCode(eexec[i]);
|
eexecStr += String.fromCharCode(eexec[i]);
|
||||||
|
|
||||||
var glyphsSection = false, subrsSection = false;
|
var glyphsSection = false, subrsSection = false;
|
||||||
@ -2291,7 +2291,7 @@ var Type1Parser = function type1Parser() {
|
|||||||
|
|
||||||
this.extractFontHeader = function t1_extractFontHeader(stream, properties) {
|
this.extractFontHeader = function t1_extractFontHeader(stream, properties) {
|
||||||
var headerString = '';
|
var headerString = '';
|
||||||
for (var i = 0; i < stream.length; i++)
|
for (var i = 0, streamLength = stream.length; i < streamLength; i++)
|
||||||
headerString += String.fromCharCode(stream[i]);
|
headerString += String.fromCharCode(stream[i]);
|
||||||
|
|
||||||
var token = '';
|
var token = '';
|
||||||
@ -2318,7 +2318,7 @@ var Type1Parser = function type1Parser() {
|
|||||||
var matrix = readNumberArray(headerString, i + 1);
|
var matrix = readNumberArray(headerString, i + 1);
|
||||||
|
|
||||||
// The FontMatrix is in unitPerEm, so make it pixels
|
// The FontMatrix is in unitPerEm, so make it pixels
|
||||||
for (var j = 0; j < matrix.length; j++)
|
for (var j = 0, matLength = matrix.length; j < matLength; j++)
|
||||||
matrix[j] *= 1000;
|
matrix[j] *= 1000;
|
||||||
|
|
||||||
// Make the angle into the right direction
|
// Make the angle into the right direction
|
||||||
@ -2479,7 +2479,7 @@ CFF.prototype = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (var i = 0; i < count; i++) {
|
for (var i = 0; i < count; i++) {
|
||||||
for (var j = 0; j < objects[i].length; j++)
|
for (var j = 0, objLength = objects[i].length; j < objLength; j++)
|
||||||
data += isByte ? String.fromCharCode(objects[i][j] & 0xFF) :
|
data += isByte ? String.fromCharCode(objects[i][j] & 0xFF) :
|
||||||
objects[i][j];
|
objects[i][j];
|
||||||
}
|
}
|
||||||
@ -2507,7 +2507,7 @@ CFF.prototype = {
|
|||||||
var charstrings = [];
|
var charstrings = [];
|
||||||
var missings = [];
|
var missings = [];
|
||||||
|
|
||||||
for (var i = 0; i < glyphs.length; i++) {
|
for (var i = 0, glLength = glyphs.length; i < glLength; i++) {
|
||||||
var glyph = glyphs[i];
|
var glyph = glyphs[i];
|
||||||
var mapping = properties.glyphs[glyph.glyph];
|
var mapping = properties.glyphs[glyph.glyph];
|
||||||
if (!mapping) {
|
if (!mapping) {
|
||||||
@ -2597,6 +2597,7 @@ CFF.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
flattenCharstring: function flattenCharstring(charstring, map) {
|
flattenCharstring: function flattenCharstring(charstring, map) {
|
||||||
|
// charstring changes size - can't cache .length in loop
|
||||||
for (var i = 0; i < charstring.length; i++) {
|
for (var i = 0; i < charstring.length; i++) {
|
||||||
var command = charstring[i];
|
var command = charstring[i];
|
||||||
if (command.charAt) {
|
if (command.charAt) {
|
||||||
@ -2641,7 +2642,7 @@ CFF.prototype = {
|
|||||||
'\x1c\x00\x00\x10'; // Encoding
|
'\x1c\x00\x00\x10'; // Encoding
|
||||||
|
|
||||||
var boundingBox = properties.bbox;
|
var boundingBox = properties.bbox;
|
||||||
for (var i = 0; i < boundingBox.length; i++)
|
for (var i = 0, boxLength = boundingBox.length; i < boxLength; i++)
|
||||||
dict += self.encodeNumber(boundingBox[i]);
|
dict += self.encodeNumber(boundingBox[i]);
|
||||||
dict += '\x05'; // FontBBox;
|
dict += '\x05'; // FontBBox;
|
||||||
|
|
||||||
@ -2731,7 +2732,7 @@ CFF.prototype = {
|
|||||||
|
|
||||||
if (isArray(value)) {
|
if (isArray(value)) {
|
||||||
data += self.encodeNumber(value[0]);
|
data += self.encodeNumber(value[0]);
|
||||||
for (var i = 1; i < value.length; i++)
|
for (var i = 1, valLength = value.length; i < valLength; i++)
|
||||||
data += self.encodeNumber(value[i] - value[i - 1]);
|
data += self.encodeNumber(value[i] - value[i - 1]);
|
||||||
} else {
|
} else {
|
||||||
data += self.encodeNumber(value);
|
data += self.encodeNumber(value);
|
||||||
@ -2752,7 +2753,7 @@ CFF.prototype = {
|
|||||||
var cff = [];
|
var cff = [];
|
||||||
for (var index in fields) {
|
for (var index in fields) {
|
||||||
var field = fields[index];
|
var field = fields[index];
|
||||||
for (var i = 0; i < field.length; i++)
|
for (var i = 0, fLength = field.length; i < fLength; i++)
|
||||||
cff.push(field.charCodeAt(i));
|
cff.push(field.charCodeAt(i));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2849,7 +2850,7 @@ var Type2CFF = (function type2CFF() {
|
|||||||
|
|
||||||
// create the mapping between charstring and glyph id
|
// create the mapping between charstring and glyph id
|
||||||
var glyphIds = [];
|
var glyphIds = [];
|
||||||
for (var i = 0; i < charstrings.length; i++)
|
for (var i = 0, cstrLength = charstrings.length; i < cstrLength; i++)
|
||||||
glyphIds.push(charstrings[i].gid);
|
glyphIds.push(charstrings[i].gid);
|
||||||
|
|
||||||
this.charstrings = charstrings;
|
this.charstrings = charstrings;
|
||||||
@ -2867,7 +2868,7 @@ var Type2CFF = (function type2CFF() {
|
|||||||
var charstrings = [];
|
var charstrings = [];
|
||||||
var firstChar = properties.firstChar;
|
var firstChar = properties.firstChar;
|
||||||
var glyphMap = {};
|
var glyphMap = {};
|
||||||
for (var i = 0; i < charsets.length; i++) {
|
for (var i = 0, csetLength = charsets.length; i < csetLength; i++) {
|
||||||
var glyph = charsets[i];
|
var glyph = charsets[i];
|
||||||
for (var charcode in encoding) {
|
for (var charcode in encoding) {
|
||||||
if (encoding[charcode] == i)
|
if (encoding[charcode] == i)
|
||||||
@ -2876,7 +2877,7 @@ var Type2CFF = (function type2CFF() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var differences = properties.differences;
|
var differences = properties.differences;
|
||||||
for (var i = 0; i < differences.length; ++i) {
|
for (var i = 0, diffLength = differences.length; i < diffLength; ++i) {
|
||||||
var glyph = differences[i];
|
var glyph = differences[i];
|
||||||
if (!glyph)
|
if (!glyph)
|
||||||
continue;
|
continue;
|
||||||
@ -2887,7 +2888,7 @@ var Type2CFF = (function type2CFF() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var glyphs = properties.glyphs;
|
var glyphs = properties.glyphs;
|
||||||
for (var i = 1; i < charsets.length; i++) {
|
for (var i = 1, csetLength = charsets.length; i < csetLength; i++) {
|
||||||
var glyph = charsets[i];
|
var glyph = charsets[i];
|
||||||
var code = glyphMap[glyph] || 0;
|
var code = glyphMap[glyph] || 0;
|
||||||
|
|
||||||
@ -2921,7 +2922,7 @@ var Type2CFF = (function type2CFF() {
|
|||||||
// properties.glyphs[code] || properties.glyphs[glyph]
|
// properties.glyphs[code] || properties.glyphs[glyph]
|
||||||
var nextUnusedUnicode = kCmapGlyphOffset + 0x0020;
|
var nextUnusedUnicode = kCmapGlyphOffset + 0x0020;
|
||||||
var lastUnicode = charstrings[0].unicode, wasModified = false;
|
var lastUnicode = charstrings[0].unicode, wasModified = false;
|
||||||
for (var i = 1; i < charstrings.length; ++i) {
|
for (var i = 1, cstrLength = charstrings.length; i < cstrLength; ++i) {
|
||||||
if (lastUnicode != charstrings[i].unicode) {
|
if (lastUnicode != charstrings[i].unicode) {
|
||||||
lastUnicode = charstrings[i].unicode;
|
lastUnicode = charstrings[i].unicode;
|
||||||
continue;
|
continue;
|
||||||
@ -2966,7 +2967,7 @@ var Type2CFF = (function type2CFF() {
|
|||||||
var gid = 1;
|
var gid = 1;
|
||||||
var baseEncoding = pos ? Encodings.ExpertEncoding.slice() :
|
var baseEncoding = pos ? Encodings.ExpertEncoding.slice() :
|
||||||
Encodings.StandardEncoding.slice();
|
Encodings.StandardEncoding.slice();
|
||||||
for (var i = 0; i < charset.length; i++) {
|
for (var i = 0, csetLength = charset.length; i < csetLength; i++) {
|
||||||
var index = baseEncoding.indexOf(charset[i]);
|
var index = baseEncoding.indexOf(charset[i]);
|
||||||
if (index != -1)
|
if (index != -1)
|
||||||
encoding[index] = gid++;
|
encoding[index] = gid++;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user