mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 10:08:06 +02:00
Remove the isNum
helper function
The call-sites are replaced by direct `typeof`-checks instead, which removes unnecessary function calls. Note that in the `src/`-folder we already had more `typeof`-cases than `isNum`-calls. These changes were *mostly* done using regular expression search-and-replace, with two exceptions: - In `Font._charToGlyph` we no longer unconditionally update the `width`, since that seems completely unnecessary. - In `PDFDocument.documentInfo`, when parsing custom entries, we now do the `typeof`-check once.
This commit is contained in:
parent
edd024c9e7
commit
05edd91bdb
10 changed files with 30 additions and 51 deletions
|
@ -26,7 +26,6 @@ import {
|
|||
FormatError,
|
||||
info,
|
||||
isBool,
|
||||
isNum,
|
||||
isString,
|
||||
objectSize,
|
||||
PermissionFlag,
|
||||
|
@ -381,7 +380,7 @@ class Catalog {
|
|||
}
|
||||
|
||||
let flags = encrypt.get("P");
|
||||
if (!isNum(flags)) {
|
||||
if (typeof flags !== "number") {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -1475,7 +1474,7 @@ class Catalog {
|
|||
switch (actionName) {
|
||||
case "ResetForm":
|
||||
const flags = action.get("Flags");
|
||||
const include = ((isNum(flags) ? flags : 0) & 1) === 0;
|
||||
const include = ((typeof flags === "number" ? flags : 0) & 1) === 0;
|
||||
const fields = [];
|
||||
const refs = [];
|
||||
for (const obj of action.get("Fields") || []) {
|
||||
|
|
|
@ -20,8 +20,6 @@ import {
|
|||
InvalidPDFException,
|
||||
isArrayBuffer,
|
||||
isArrayEqual,
|
||||
isBool,
|
||||
isNum,
|
||||
isString,
|
||||
OPS,
|
||||
PageActionEventType,
|
||||
|
@ -177,7 +175,7 @@ class Page {
|
|||
|
||||
get userUnit() {
|
||||
let obj = this.pageDict.get("UserUnit");
|
||||
if (!isNum(obj) || obj <= 0) {
|
||||
if (typeof obj !== "number" || obj <= 0) {
|
||||
obj = DEFAULT_USER_UNIT;
|
||||
}
|
||||
return shadow(this, "userUnit", obj);
|
||||
|
@ -1193,10 +1191,15 @@ class PDFDocument {
|
|||
// For custom values, only accept white-listed types to prevent
|
||||
// errors that would occur when trying to send non-serializable
|
||||
// objects to the main-thread (for example `Dict` or `Stream`).
|
||||
const customType = typeof value;
|
||||
let customValue;
|
||||
if (isString(value)) {
|
||||
if (customType === "string") {
|
||||
customValue = stringToPDFString(value);
|
||||
} else if (value instanceof Name || isNum(value) || isBool(value)) {
|
||||
} else if (
|
||||
value instanceof Name ||
|
||||
customType === "number" ||
|
||||
customType === "boolean"
|
||||
) {
|
||||
customValue = value;
|
||||
} else {
|
||||
info(`Unsupported value in document info for (custom) "${key}".`);
|
||||
|
|
|
@ -24,7 +24,6 @@ import {
|
|||
IDENTITY_MATRIX,
|
||||
info,
|
||||
isArrayEqual,
|
||||
isNum,
|
||||
isString,
|
||||
OPS,
|
||||
shadow,
|
||||
|
@ -572,7 +571,7 @@ class PartialEvaluator {
|
|||
const w = dict.get("W", "Width");
|
||||
const h = dict.get("H", "Height");
|
||||
|
||||
if (!(w && isNum(w)) || !(h && isNum(h))) {
|
||||
if (!(w && typeof w === "number") || !(h && typeof h === "number")) {
|
||||
warn("Image dimensions are missing, or not numbers.");
|
||||
return;
|
||||
}
|
||||
|
@ -1790,7 +1789,7 @@ class PartialEvaluator {
|
|||
combinedGlyphs,
|
||||
self.handleText(arrItem, state)
|
||||
);
|
||||
} else if (isNum(arrItem)) {
|
||||
} else if (typeof arrItem === "number") {
|
||||
combinedGlyphs.push(arrItem);
|
||||
}
|
||||
}
|
||||
|
@ -3224,7 +3223,7 @@ class PartialEvaluator {
|
|||
let index = 0;
|
||||
for (let j = 0, jj = diffEncoding.length; j < jj; j++) {
|
||||
const data = xref.fetchIfRef(diffEncoding[j]);
|
||||
if (isNum(data)) {
|
||||
if (typeof data === "number") {
|
||||
index = data;
|
||||
} else if (data instanceof Name) {
|
||||
differences[index++] = data.name;
|
||||
|
@ -3703,7 +3702,7 @@ class PartialEvaluator {
|
|||
}
|
||||
const glyphWidths = Metrics[lookupName];
|
||||
|
||||
if (isNum(glyphWidths)) {
|
||||
if (typeof glyphWidths === "number") {
|
||||
defaultWidth = glyphWidths;
|
||||
monospace = true;
|
||||
} else {
|
||||
|
@ -3790,7 +3789,10 @@ class PartialEvaluator {
|
|||
const diffEntry = entry[j];
|
||||
if (diffEntry instanceof Name) {
|
||||
diffBuf[j] = diffEntry.name;
|
||||
} else if (isNum(diffEntry) || diffEntry instanceof Ref) {
|
||||
} else if (
|
||||
typeof diffEntry === "number" ||
|
||||
diffEntry instanceof Ref
|
||||
) {
|
||||
diffBuf[j] = diffEntry.toString();
|
||||
}
|
||||
}
|
||||
|
@ -3820,7 +3822,7 @@ class PartialEvaluator {
|
|||
if (Array.isArray(widths)) {
|
||||
const widthsBuf = [];
|
||||
for (const entry of widths) {
|
||||
if (isNum(entry) || entry instanceof Ref) {
|
||||
if (typeof entry === "number" || entry instanceof Ref) {
|
||||
widthsBuf.push(entry.toString());
|
||||
}
|
||||
}
|
||||
|
@ -3834,12 +3836,12 @@ class PartialEvaluator {
|
|||
if (Array.isArray(compositeWidths)) {
|
||||
const widthsBuf = [];
|
||||
for (const entry of compositeWidths) {
|
||||
if (isNum(entry) || entry instanceof Ref) {
|
||||
if (typeof entry === "number" || entry instanceof Ref) {
|
||||
widthsBuf.push(entry.toString());
|
||||
} else if (Array.isArray(entry)) {
|
||||
const subWidthsBuf = [];
|
||||
for (const element of entry) {
|
||||
if (isNum(element) || element instanceof Ref) {
|
||||
if (typeof element === "number" || element instanceof Ref) {
|
||||
subWidthsBuf.push(element.toString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,7 +20,6 @@ import {
|
|||
FontType,
|
||||
FormatError,
|
||||
info,
|
||||
isNum,
|
||||
shadow,
|
||||
string32,
|
||||
warn,
|
||||
|
@ -3184,7 +3183,9 @@ class Font {
|
|||
}
|
||||
}
|
||||
width = this.widths[widthCode];
|
||||
width = isNum(width) ? width : this.defaultWidth;
|
||||
if (typeof width !== "number") {
|
||||
width = this.defaultWidth;
|
||||
}
|
||||
const vmetric = this.vmetrics && this.vmetrics[widthCode];
|
||||
|
||||
let unicode = this.toUnicode.get(charcode) || charcode;
|
||||
|
|
|
@ -18,7 +18,6 @@ import {
|
|||
bytesToString,
|
||||
FormatError,
|
||||
info,
|
||||
isNum,
|
||||
StreamType,
|
||||
warn,
|
||||
} from "../shared/util.js";
|
||||
|
@ -1393,7 +1392,7 @@ class Linearization {
|
|||
Number.isInteger(obj2) &&
|
||||
isCmd(obj3, "obj") &&
|
||||
linDict instanceof Dict &&
|
||||
isNum((obj = linDict.get("Linearized"))) &&
|
||||
typeof (obj = linDict.get("Linearized")) === "number" &&
|
||||
obj > 0
|
||||
)
|
||||
) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue