Ensure that EvaluatorPreprocessor.opMap
has a null-prototype (issue 17554)
This accidentally regressed in PR 16956, sorry about that!
This commit is contained in:
parent
fce822cde0
commit
d7e41d4cb6
@ -4780,124 +4780,128 @@ class EvaluatorPreprocessor {
|
|||||||
//
|
//
|
||||||
// If variableArgs === true: [0, `numArgs`] expected
|
// If variableArgs === true: [0, `numArgs`] expected
|
||||||
// If variableArgs === false: exactly `numArgs` expected
|
// If variableArgs === false: exactly `numArgs` expected
|
||||||
return shadow(this, "opMap", {
|
return shadow(
|
||||||
// Graphic state
|
this,
|
||||||
w: { id: OPS.setLineWidth, numArgs: 1, variableArgs: false },
|
"opMap",
|
||||||
J: { id: OPS.setLineCap, numArgs: 1, variableArgs: false },
|
Object.assign(Object.create(null), {
|
||||||
j: { id: OPS.setLineJoin, numArgs: 1, variableArgs: false },
|
// Graphic state
|
||||||
M: { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false },
|
w: { id: OPS.setLineWidth, numArgs: 1, variableArgs: false },
|
||||||
d: { id: OPS.setDash, numArgs: 2, variableArgs: false },
|
J: { id: OPS.setLineCap, numArgs: 1, variableArgs: false },
|
||||||
ri: { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false },
|
j: { id: OPS.setLineJoin, numArgs: 1, variableArgs: false },
|
||||||
i: { id: OPS.setFlatness, numArgs: 1, variableArgs: false },
|
M: { id: OPS.setMiterLimit, numArgs: 1, variableArgs: false },
|
||||||
gs: { id: OPS.setGState, numArgs: 1, variableArgs: false },
|
d: { id: OPS.setDash, numArgs: 2, variableArgs: false },
|
||||||
q: { id: OPS.save, numArgs: 0, variableArgs: false },
|
ri: { id: OPS.setRenderingIntent, numArgs: 1, variableArgs: false },
|
||||||
Q: { id: OPS.restore, numArgs: 0, variableArgs: false },
|
i: { id: OPS.setFlatness, numArgs: 1, variableArgs: false },
|
||||||
cm: { id: OPS.transform, numArgs: 6, variableArgs: false },
|
gs: { id: OPS.setGState, numArgs: 1, variableArgs: false },
|
||||||
|
q: { id: OPS.save, numArgs: 0, variableArgs: false },
|
||||||
|
Q: { id: OPS.restore, numArgs: 0, variableArgs: false },
|
||||||
|
cm: { id: OPS.transform, numArgs: 6, variableArgs: false },
|
||||||
|
|
||||||
// Path
|
// Path
|
||||||
m: { id: OPS.moveTo, numArgs: 2, variableArgs: false },
|
m: { id: OPS.moveTo, numArgs: 2, variableArgs: false },
|
||||||
l: { id: OPS.lineTo, numArgs: 2, variableArgs: false },
|
l: { id: OPS.lineTo, numArgs: 2, variableArgs: false },
|
||||||
c: { id: OPS.curveTo, numArgs: 6, variableArgs: false },
|
c: { id: OPS.curveTo, numArgs: 6, variableArgs: false },
|
||||||
v: { id: OPS.curveTo2, numArgs: 4, variableArgs: false },
|
v: { id: OPS.curveTo2, numArgs: 4, variableArgs: false },
|
||||||
y: { id: OPS.curveTo3, numArgs: 4, variableArgs: false },
|
y: { id: OPS.curveTo3, numArgs: 4, variableArgs: false },
|
||||||
h: { id: OPS.closePath, numArgs: 0, variableArgs: false },
|
h: { id: OPS.closePath, numArgs: 0, variableArgs: false },
|
||||||
re: { id: OPS.rectangle, numArgs: 4, variableArgs: false },
|
re: { id: OPS.rectangle, numArgs: 4, variableArgs: false },
|
||||||
S: { id: OPS.stroke, numArgs: 0, variableArgs: false },
|
S: { id: OPS.stroke, numArgs: 0, variableArgs: false },
|
||||||
s: { id: OPS.closeStroke, numArgs: 0, variableArgs: false },
|
s: { id: OPS.closeStroke, numArgs: 0, variableArgs: false },
|
||||||
f: { id: OPS.fill, numArgs: 0, variableArgs: false },
|
f: { id: OPS.fill, numArgs: 0, variableArgs: false },
|
||||||
F: { id: OPS.fill, numArgs: 0, variableArgs: false },
|
F: { id: OPS.fill, numArgs: 0, variableArgs: false },
|
||||||
"f*": { id: OPS.eoFill, numArgs: 0, variableArgs: false },
|
"f*": { id: OPS.eoFill, numArgs: 0, variableArgs: false },
|
||||||
B: { id: OPS.fillStroke, numArgs: 0, variableArgs: false },
|
B: { id: OPS.fillStroke, numArgs: 0, variableArgs: false },
|
||||||
"B*": { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false },
|
"B*": { id: OPS.eoFillStroke, numArgs: 0, variableArgs: false },
|
||||||
b: { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false },
|
b: { id: OPS.closeFillStroke, numArgs: 0, variableArgs: false },
|
||||||
"b*": { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false },
|
"b*": { id: OPS.closeEOFillStroke, numArgs: 0, variableArgs: false },
|
||||||
n: { id: OPS.endPath, numArgs: 0, variableArgs: false },
|
n: { id: OPS.endPath, numArgs: 0, variableArgs: false },
|
||||||
|
|
||||||
// Clipping
|
// Clipping
|
||||||
W: { id: OPS.clip, numArgs: 0, variableArgs: false },
|
W: { id: OPS.clip, numArgs: 0, variableArgs: false },
|
||||||
"W*": { id: OPS.eoClip, numArgs: 0, variableArgs: false },
|
"W*": { id: OPS.eoClip, numArgs: 0, variableArgs: false },
|
||||||
|
|
||||||
// Text
|
// Text
|
||||||
BT: { id: OPS.beginText, numArgs: 0, variableArgs: false },
|
BT: { id: OPS.beginText, numArgs: 0, variableArgs: false },
|
||||||
ET: { id: OPS.endText, numArgs: 0, variableArgs: false },
|
ET: { id: OPS.endText, numArgs: 0, variableArgs: false },
|
||||||
Tc: { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false },
|
Tc: { id: OPS.setCharSpacing, numArgs: 1, variableArgs: false },
|
||||||
Tw: { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false },
|
Tw: { id: OPS.setWordSpacing, numArgs: 1, variableArgs: false },
|
||||||
Tz: { id: OPS.setHScale, numArgs: 1, variableArgs: false },
|
Tz: { id: OPS.setHScale, numArgs: 1, variableArgs: false },
|
||||||
TL: { id: OPS.setLeading, numArgs: 1, variableArgs: false },
|
TL: { id: OPS.setLeading, numArgs: 1, variableArgs: false },
|
||||||
Tf: { id: OPS.setFont, numArgs: 2, variableArgs: false },
|
Tf: { id: OPS.setFont, numArgs: 2, variableArgs: false },
|
||||||
Tr: { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false },
|
Tr: { id: OPS.setTextRenderingMode, numArgs: 1, variableArgs: false },
|
||||||
Ts: { id: OPS.setTextRise, numArgs: 1, variableArgs: false },
|
Ts: { id: OPS.setTextRise, numArgs: 1, variableArgs: false },
|
||||||
Td: { id: OPS.moveText, numArgs: 2, variableArgs: false },
|
Td: { id: OPS.moveText, numArgs: 2, variableArgs: false },
|
||||||
TD: { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false },
|
TD: { id: OPS.setLeadingMoveText, numArgs: 2, variableArgs: false },
|
||||||
Tm: { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false },
|
Tm: { id: OPS.setTextMatrix, numArgs: 6, variableArgs: false },
|
||||||
"T*": { id: OPS.nextLine, numArgs: 0, variableArgs: false },
|
"T*": { id: OPS.nextLine, numArgs: 0, variableArgs: false },
|
||||||
Tj: { id: OPS.showText, numArgs: 1, variableArgs: false },
|
Tj: { id: OPS.showText, numArgs: 1, variableArgs: false },
|
||||||
TJ: { id: OPS.showSpacedText, numArgs: 1, variableArgs: false },
|
TJ: { id: OPS.showSpacedText, numArgs: 1, variableArgs: false },
|
||||||
"'": { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false },
|
"'": { id: OPS.nextLineShowText, numArgs: 1, variableArgs: false },
|
||||||
'"': {
|
'"': {
|
||||||
id: OPS.nextLineSetSpacingShowText,
|
id: OPS.nextLineSetSpacingShowText,
|
||||||
numArgs: 3,
|
numArgs: 3,
|
||||||
variableArgs: false,
|
variableArgs: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
// Type3 fonts
|
// Type3 fonts
|
||||||
d0: { id: OPS.setCharWidth, numArgs: 2, variableArgs: false },
|
d0: { id: OPS.setCharWidth, numArgs: 2, variableArgs: false },
|
||||||
d1: {
|
d1: {
|
||||||
id: OPS.setCharWidthAndBounds,
|
id: OPS.setCharWidthAndBounds,
|
||||||
numArgs: 6,
|
numArgs: 6,
|
||||||
variableArgs: false,
|
variableArgs: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
// Color
|
// Color
|
||||||
CS: { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false },
|
CS: { id: OPS.setStrokeColorSpace, numArgs: 1, variableArgs: false },
|
||||||
cs: { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false },
|
cs: { id: OPS.setFillColorSpace, numArgs: 1, variableArgs: false },
|
||||||
SC: { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true },
|
SC: { id: OPS.setStrokeColor, numArgs: 4, variableArgs: true },
|
||||||
SCN: { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true },
|
SCN: { id: OPS.setStrokeColorN, numArgs: 33, variableArgs: true },
|
||||||
sc: { id: OPS.setFillColor, numArgs: 4, variableArgs: true },
|
sc: { id: OPS.setFillColor, numArgs: 4, variableArgs: true },
|
||||||
scn: { id: OPS.setFillColorN, numArgs: 33, variableArgs: true },
|
scn: { id: OPS.setFillColorN, numArgs: 33, variableArgs: true },
|
||||||
G: { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false },
|
G: { id: OPS.setStrokeGray, numArgs: 1, variableArgs: false },
|
||||||
g: { id: OPS.setFillGray, numArgs: 1, variableArgs: false },
|
g: { id: OPS.setFillGray, numArgs: 1, variableArgs: false },
|
||||||
RG: { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false },
|
RG: { id: OPS.setStrokeRGBColor, numArgs: 3, variableArgs: false },
|
||||||
rg: { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false },
|
rg: { id: OPS.setFillRGBColor, numArgs: 3, variableArgs: false },
|
||||||
K: { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false },
|
K: { id: OPS.setStrokeCMYKColor, numArgs: 4, variableArgs: false },
|
||||||
k: { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false },
|
k: { id: OPS.setFillCMYKColor, numArgs: 4, variableArgs: false },
|
||||||
|
|
||||||
// Shading
|
// Shading
|
||||||
sh: { id: OPS.shadingFill, numArgs: 1, variableArgs: false },
|
sh: { id: OPS.shadingFill, numArgs: 1, variableArgs: false },
|
||||||
|
|
||||||
// Images
|
// Images
|
||||||
BI: { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false },
|
BI: { id: OPS.beginInlineImage, numArgs: 0, variableArgs: false },
|
||||||
ID: { id: OPS.beginImageData, numArgs: 0, variableArgs: false },
|
ID: { id: OPS.beginImageData, numArgs: 0, variableArgs: false },
|
||||||
EI: { id: OPS.endInlineImage, numArgs: 1, variableArgs: false },
|
EI: { id: OPS.endInlineImage, numArgs: 1, variableArgs: false },
|
||||||
|
|
||||||
// XObjects
|
// XObjects
|
||||||
Do: { id: OPS.paintXObject, numArgs: 1, variableArgs: false },
|
Do: { id: OPS.paintXObject, numArgs: 1, variableArgs: false },
|
||||||
MP: { id: OPS.markPoint, numArgs: 1, variableArgs: false },
|
MP: { id: OPS.markPoint, numArgs: 1, variableArgs: false },
|
||||||
DP: { id: OPS.markPointProps, numArgs: 2, variableArgs: false },
|
DP: { id: OPS.markPointProps, numArgs: 2, variableArgs: false },
|
||||||
BMC: { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false },
|
BMC: { id: OPS.beginMarkedContent, numArgs: 1, variableArgs: false },
|
||||||
BDC: {
|
BDC: {
|
||||||
id: OPS.beginMarkedContentProps,
|
id: OPS.beginMarkedContentProps,
|
||||||
numArgs: 2,
|
numArgs: 2,
|
||||||
variableArgs: false,
|
variableArgs: false,
|
||||||
},
|
},
|
||||||
EMC: { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false },
|
EMC: { id: OPS.endMarkedContent, numArgs: 0, variableArgs: false },
|
||||||
|
|
||||||
// Compatibility
|
// Compatibility
|
||||||
BX: { id: OPS.beginCompat, numArgs: 0, variableArgs: false },
|
BX: { id: OPS.beginCompat, numArgs: 0, variableArgs: false },
|
||||||
EX: { id: OPS.endCompat, numArgs: 0, variableArgs: false },
|
EX: { id: OPS.endCompat, numArgs: 0, variableArgs: false },
|
||||||
|
|
||||||
// (reserved partial commands for the lexer)
|
// (reserved partial commands for the lexer)
|
||||||
BM: null,
|
BM: null,
|
||||||
BD: null,
|
BD: null,
|
||||||
true: null,
|
true: null,
|
||||||
fa: null,
|
fa: null,
|
||||||
fal: null,
|
fal: null,
|
||||||
fals: null,
|
fals: null,
|
||||||
false: null,
|
false: null,
|
||||||
nu: null,
|
nu: null,
|
||||||
nul: null,
|
nul: null,
|
||||||
null: null,
|
null: null,
|
||||||
});
|
})
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static MAX_INVALID_PATH_OPS = 10;
|
static MAX_INVALID_PATH_OPS = 10;
|
||||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -300,6 +300,7 @@
|
|||||||
!helloworld-bad.pdf
|
!helloworld-bad.pdf
|
||||||
!zerowidthline.pdf
|
!zerowidthline.pdf
|
||||||
!colorspace_cos.pdf
|
!colorspace_cos.pdf
|
||||||
|
!issue17554.pdf
|
||||||
!issue13242.pdf
|
!issue13242.pdf
|
||||||
!js-colors.pdf
|
!js-colors.pdf
|
||||||
!annotation-line-without-appearance-empty-Rect.pdf
|
!annotation-line-without-appearance-empty-Rect.pdf
|
||||||
|
71
test/pdfs/issue17554.pdf
Normal file
71
test/pdfs/issue17554.pdf
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
%PDF-1.4
|
||||||
|
%%EOF
|
||||||
|
|
||||||
|
6 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Catalog
|
||||||
|
/Pages 5 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
1 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Page
|
||||||
|
/Parent 5 0 R
|
||||||
|
/MediaBox [ 0 0 612 792 ]
|
||||||
|
/Resources 3 0 R
|
||||||
|
/Contents 2 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
4 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Font
|
||||||
|
/Subtype /Type1
|
||||||
|
/Name /F1
|
||||||
|
/BaseFont/Helvetica
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
2 0 obj
|
||||||
|
<<
|
||||||
|
/Length 53
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
toString
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
|
||||||
|
5 0 obj
|
||||||
|
<<
|
||||||
|
/Type /Pages
|
||||||
|
/Kids [ 1 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ProcSet[/PDF/Text]
|
||||||
|
/Font <</F1 4 0 R >>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
|
||||||
|
xref
|
||||||
|
0 7
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000060 00000 n
|
||||||
|
0000000228 00000 n
|
||||||
|
0000000424 00000 n
|
||||||
|
0000000145 00000 n
|
||||||
|
0000000333 00000 n
|
||||||
|
0000000009 00000 n
|
||||||
|
trailer
|
||||||
|
<<
|
||||||
|
/Size 7
|
||||||
|
/Root 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
488
|
||||||
|
%%EOF
|
||||||
|
|
@ -8762,6 +8762,13 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "issue17554",
|
||||||
|
"file": "pdfs/issue17554.pdf",
|
||||||
|
"md5": "09607e5c6007b28b4e75bf8c38a60de3",
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "load"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "freetexts-delete-editor-print",
|
"id": "freetexts-delete-editor-print",
|
||||||
"file": "pdfs/freetexts.pdf",
|
"file": "pdfs/freetexts.pdf",
|
||||||
|
Loading…
Reference in New Issue
Block a user