diff --git a/src/core/cmap.js b/src/core/cmap.js index 792c679df..83c0d7224 100644 --- a/src/core/cmap.js +++ b/src/core/cmap.js @@ -313,6 +313,14 @@ var BinaryCMapReader = (function BinaryCMapReaderClosure() { } function hexToStr(a, size) { + // This code is hot. Special-case some common values to avoid creating an + // object with subarray(). + if (size == 1) { + return String.fromCharCode(a[0], a[1]); + } + if (size == 3) { + return String.fromCharCode(a[0], a[1], a[2], a[3]); + } return String.fromCharCode.apply(null, a.subarray(0, size + 1)); }