Replace the forEach method in Dict with "proper" iteration support
This commit is contained in:
parent
691be77f65
commit
2c0cc48d1b
@ -720,12 +720,12 @@ class Catalog {
|
||||
}
|
||||
}
|
||||
} else if (obj instanceof Dict) {
|
||||
obj.forEach(function (key, value) {
|
||||
for (const [key, value] of obj) {
|
||||
const dest = fetchDest(value);
|
||||
if (dest) {
|
||||
dests[key] = dest;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
return shadow(this, "destinations", dests);
|
||||
}
|
||||
|
||||
@ -1282,13 +1282,8 @@ class PDFDocument {
|
||||
},
|
||||
};
|
||||
|
||||
const fonts = new Map();
|
||||
fontRes.forEach((fontName, font) => {
|
||||
fonts.set(fontName, font);
|
||||
});
|
||||
const promises = [];
|
||||
|
||||
for (const [fontName, font] of fonts) {
|
||||
for (const [fontName, font] of fontRes) {
|
||||
const descriptor = font.get("FontDescriptor");
|
||||
if (!(descriptor instanceof Dict)) {
|
||||
continue;
|
||||
|
||||
@ -203,14 +203,14 @@ class Dict {
|
||||
return this._map.has(key);
|
||||
}
|
||||
|
||||
forEach(callback) {
|
||||
*[Symbol.iterator]() {
|
||||
for (const [key, value] of this._map) {
|
||||
callback(
|
||||
yield [
|
||||
key,
|
||||
value instanceof Ref && this.xref
|
||||
? this.xref.fetch(value, this.suppressEncryption)
|
||||
: value
|
||||
);
|
||||
: value,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -62,12 +62,11 @@ class StructTreeRoot {
|
||||
if (!(roleMapDict instanceof Dict)) {
|
||||
return;
|
||||
}
|
||||
roleMapDict.forEach((key, value) => {
|
||||
if (!(value instanceof Name)) {
|
||||
return;
|
||||
for (const [key, value] of roleMapDict) {
|
||||
if (value instanceof Name) {
|
||||
this.roleMap.set(key, value.name);
|
||||
}
|
||||
this.roleMap.set(key, value.name);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
static async canCreateStructureTree({
|
||||
|
||||
@ -688,11 +688,11 @@ class WorkerMessageHandler {
|
||||
const infoObj = Object.create(null);
|
||||
const xrefInfo = xref.trailer.get("Info") || null;
|
||||
if (xrefInfo instanceof Dict) {
|
||||
xrefInfo.forEach((key, value) => {
|
||||
for (const [key, value] of xrefInfo) {
|
||||
if (typeof value === "string") {
|
||||
infoObj[key] = stringToPDFString(value);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
newXrefInfo = {
|
||||
|
||||
@ -221,17 +221,12 @@ describe("primitives", function () {
|
||||
expect(values[2]).toEqual(testFontFile);
|
||||
});
|
||||
|
||||
it("should callback for each stored key", function () {
|
||||
const callbackSpy = jasmine.createSpy("spy on callback in dictionary");
|
||||
|
||||
dictWithManyKeys.forEach(callbackSpy);
|
||||
|
||||
expect(callbackSpy).toHaveBeenCalled();
|
||||
const callbackSpyCalls = callbackSpy.calls;
|
||||
expect(callbackSpyCalls.argsFor(0)).toEqual(["FontFile", testFontFile]);
|
||||
expect(callbackSpyCalls.argsFor(1)).toEqual(["FontFile2", testFontFile2]);
|
||||
expect(callbackSpyCalls.argsFor(2)).toEqual(["FontFile3", testFontFile3]);
|
||||
expect(callbackSpyCalls.count()).toEqual(3);
|
||||
it("should iterate through each stored key", function () {
|
||||
expect([...dictWithManyKeys]).toEqual([
|
||||
["FontFile", testFontFile],
|
||||
["FontFile2", testFontFile2],
|
||||
["FontFile3", testFontFile3],
|
||||
]);
|
||||
});
|
||||
|
||||
it("should handle keys pointing to indirect objects, both sync and async", async function () {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user