diff --git a/src/display/font_loader.js b/src/display/font_loader.js index 904712bf6..411872582 100644 --- a/src/display/font_loader.js +++ b/src/display/font_loader.js @@ -385,45 +385,41 @@ var FontFaceObject = (function FontFaceObjectClosure() { return rule; }, - getPathGenerator: - function FontFaceObject_getPathGenerator(objs, character) { - if (!(character in this.compiledGlyphs)) { - var cmds = objs.get(this.loadedName + '_path_' + character); - var current, i, len; - - // If we can, compile cmds into JS for MAXIMUM SPEED - if (this.isEvalSupported && IsEvalSupportedCached.value) { - var args, js = ''; - for (i = 0, len = cmds.length; i < len; i++) { - current = cmds[i]; - - if (current.args !== undefined) { - args = current.args.join(','); - } else { - args = ''; - } - - js += 'c.' + current.cmd + '(' + args + ');\n'; - } - // eslint-disable-next-line no-new-func - this.compiledGlyphs[character] = new Function('c', 'size', js); - } else { - // But fall back on using Function.prototype.apply() if we're - // blocked from using eval() for whatever reason (like CSP policies) - this.compiledGlyphs[character] = function(c, size) { - for (i = 0, len = cmds.length; i < len; i++) { - current = cmds[i]; - - if (current.cmd === 'scale') { - current.args = [size, -size]; - } - - c[current.cmd].apply(c, current.args); - } - }; - } + getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; } - return this.compiledGlyphs[character]; + + let cmds = objs.get(this.loadedName + '_path_' + character), current; + + // If we can, compile cmds into JS for MAXIMUM SPEED... + if (this.isEvalSupported && IsEvalSupportedCached.value) { + let args, js = ''; + for (let i = 0, ii = cmds.length; i < ii; i++) { + current = cmds[i]; + + if (current.args !== undefined) { + args = current.args.join(','); + } else { + args = ''; + } + js += 'c.' + current.cmd + '(' + args + ');\n'; + } + // eslint-disable-next-line no-new-func + return this.compiledGlyphs[character] = new Function('c', 'size', js); + } + // ... but fall back on using Function.prototype.apply() if we're + // blocked from using eval() for whatever reason (like CSP policies). + return this.compiledGlyphs[character] = function(c, size) { + for (let i = 0, ii = cmds.length; i < ii; i++) { + current = cmds[i]; + + if (current.cmd === 'scale') { + current.args = [size, -size]; + } + c[current.cmd].apply(c, current.args); + } + }; }, };