Browse Source

PDF.js version 2.0.112 - See mozilla/pdf.js@9686f6652c98a5353cf8615a972e409804ed2557

master v2.0.112
pdfjsbot 7 years ago
parent
commit
f173d56519
  1. 2
      bower.json
  2. 36205
      build/pdf.combined.js
  3. 2
      build/pdf.combined.js.map
  4. 14
      build/pdf.js
  5. 2
      build/pdf.js.map
  6. 2
      build/pdf.min.js
  7. 28791
      build/pdf.worker.js
  8. 2
      build/pdf.worker.js.map
  9. 2
      build/pdf.worker.min.js
  10. 10
      lib/core/annotation.js
  11. 8
      lib/core/document.js
  12. 405
      lib/core/evaluator.js
  13. 536
      lib/core/operator_list.js
  14. 2
      lib/core/worker.js
  15. 6
      lib/display/api.js
  16. 4
      lib/display/global.js
  17. 4
      lib/pdf.js
  18. 4
      lib/pdf.worker.js
  19. 12
      lib/test/unit/evaluator_spec.js
  20. 2
      package.json

2
bower.json

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
{
"name": "pdfjs-dist",
"version": "2.0.108",
"version": "2.0.112",
"main": [
"build/pdf.js",
"build/pdf.worker.js"

36205
build/pdf.combined.js

File diff suppressed because it is too large Load Diff

2
build/pdf.combined.js.map

File diff suppressed because one or more lines are too long

14
build/pdf.js

@ -3291,7 +3291,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { @@ -3291,7 +3291,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
if (worker.destroyed) {
return Promise.reject(new Error('Worker was destroyed'));
}
var apiVersion = '2.0.108';
var apiVersion = '2.0.112';
source.disableAutoFetch = (0, _dom_utils.getDefaultSetting)('disableAutoFetch');
source.disableStream = (0, _dom_utils.getDefaultSetting)('disableStream');
source.chunkedViewerLoading = !!pdfDataRangeTransport;
@ -4654,8 +4654,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() { @@ -4654,8 +4654,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
}();
var version, build;
{
exports.version = version = '2.0.108';
exports.build = build = '36b83c14';
exports.version = version = '2.0.112';
exports.build = build = '9686f665';
}
exports.getDocument = getDocument;
exports.LoopbackPort = LoopbackPort;
@ -7720,8 +7720,8 @@ exports.SVGGraphics = SVGGraphics; @@ -7720,8 +7720,8 @@ exports.SVGGraphics = SVGGraphics;
"use strict";
var pdfjsVersion = '2.0.108';
var pdfjsBuild = '36b83c14';
var pdfjsVersion = '2.0.112';
var pdfjsBuild = '9686f665';
var pdfjsSharedUtil = __w_pdfjs_require__(0);
var pdfjsDisplayGlobal = __w_pdfjs_require__(113);
var pdfjsDisplayAPI = __w_pdfjs_require__(57);
@ -13331,8 +13331,8 @@ if (!_global_scope2.default.PDFJS) { @@ -13331,8 +13331,8 @@ if (!_global_scope2.default.PDFJS) {
}
var PDFJS = _global_scope2.default.PDFJS;
{
PDFJS.version = '2.0.108';
PDFJS.build = '36b83c14';
PDFJS.version = '2.0.112';
PDFJS.build = '9686f665';
}
PDFJS.pdfBug = false;
if (PDFJS.verbosity !== undefined) {

2
build/pdf.js.map

File diff suppressed because one or more lines are too long

2
build/pdf.min.js vendored

File diff suppressed because one or more lines are too long

28791
build/pdf.worker.js vendored

File diff suppressed because it is too large Load Diff

2
build/pdf.worker.js.map vendored

File diff suppressed because one or more lines are too long

2
build/pdf.worker.min.js vendored

File diff suppressed because one or more lines are too long

10
lib/core/annotation.js

@ -31,7 +31,7 @@ var _primitives = require('./primitives'); @@ -31,7 +31,7 @@ var _primitives = require('./primitives');
var _colorspace = require('./colorspace');
var _evaluator = require('./evaluator');
var _operator_list = require('./operator_list');
var _stream = require('./stream');
@ -298,7 +298,7 @@ var Annotation = function () { @@ -298,7 +298,7 @@ var Annotation = function () {
var _this = this;
if (!this.appearance) {
return Promise.resolve(new _evaluator.OperatorList());
return Promise.resolve(new _operator_list.OperatorList());
}
var data = this.data;
var appearanceDict = this.appearance.dict;
@ -307,7 +307,7 @@ var Annotation = function () { @@ -307,7 +307,7 @@ var Annotation = function () {
var matrix = appearanceDict.getArray('Matrix') || [1, 0, 0, 1, 0, 0];
var transform = getTransformMatrix(data.rect, bbox, matrix);
return resourcesPromise.then(function (resources) {
var opList = new _evaluator.OperatorList();
var opList = new _operator_list.OperatorList();
opList.addOp(_util.OPS.beginAnnotation, [data.rect, transform, matrix]);
return evaluator.getOperatorList({
stream: _this.appearance,
@ -494,7 +494,7 @@ var WidgetAnnotation = function (_Annotation) { @@ -494,7 +494,7 @@ var WidgetAnnotation = function (_Annotation) {
key: 'getOperatorList',
value: function getOperatorList(evaluator, task, renderForms) {
if (renderForms) {
return Promise.resolve(new _evaluator.OperatorList());
return Promise.resolve(new _operator_list.OperatorList());
}
return _get(WidgetAnnotation.prototype.__proto__ || Object.getPrototypeOf(WidgetAnnotation.prototype), 'getOperatorList', this).call(this, evaluator, task, renderForms);
}
@ -533,7 +533,7 @@ var TextWidgetAnnotation = function (_WidgetAnnotation) { @@ -533,7 +533,7 @@ var TextWidgetAnnotation = function (_WidgetAnnotation) {
if (renderForms || this.appearance) {
return _get(TextWidgetAnnotation.prototype.__proto__ || Object.getPrototypeOf(TextWidgetAnnotation.prototype), 'getOperatorList', this).call(this, evaluator, task, renderForms);
}
var operatorList = new _evaluator.OperatorList();
var operatorList = new _operator_list.OperatorList();
if (!this.data.defaultAppearance) {
return Promise.resolve(operatorList);
}

8
lib/core/document.js

@ -29,14 +29,16 @@ var _util = require('../shared/util'); @@ -29,14 +29,16 @@ var _util = require('../shared/util');
var _stream = require('./stream');
var _evaluator = require('./evaluator');
var _annotation = require('./annotation');
var _crypto = require('./crypto');
var _parser = require('./parser');
var _operator_list = require('./operator_list');
var _evaluator = require('./evaluator');
var _function = require('./function');
var Page = function PageClosure() {
@ -208,7 +210,7 @@ var Page = function PageClosure() { @@ -208,7 +210,7 @@ var Page = function PageClosure() {
var _ref4 = _slicedToArray(_ref3, 1),
contentStream = _ref4[0];
var opList = new _evaluator.OperatorList(intent, handler, _this2.pageIndex);
var opList = new _operator_list.OperatorList(intent, handler, _this2.pageIndex);
handler.send('StartRenderPage', {
transparency: partialEvaluator.hasBlendModes(_this2.resources),
pageIndex: _this2.pageIndex,

405
lib/core/evaluator.js

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PartialEvaluator = exports.OperatorList = undefined;
exports.PartialEvaluator = undefined;
var _util = require('../shared/util');
@ -51,6 +51,8 @@ var _function = require('./function'); @@ -51,6 +51,8 @@ var _function = require('./function');
var _murmurhash = require('./murmurhash3');
var _operator_list = require('./operator_list');
var _image = require('./image');
var PartialEvaluator = function PartialEvaluatorClosure() {
@ -442,7 +444,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() { @@ -442,7 +444,7 @@ var PartialEvaluator = function PartialEvaluatorClosure() {
handleTilingType: function handleTilingType(fn, args, resources, pattern, patternDict, operatorList, task) {
var _this3 = this;
var tilingOpList = new OperatorList();
var tilingOpList = new _operator_list.OperatorList();
var resourcesArray = [patternDict.get('Resources'), resources];
var patternResources = _primitives.Dict.merge(this.xref, resourcesArray);
return this.getOperatorList({
@ -2117,7 +2119,7 @@ var TranslatedFont = function TranslatedFontClosure() { @@ -2117,7 +2119,7 @@ var TranslatedFont = function TranslatedFontClosure() {
var key = charProcKeys[i];
loadCharProcsPromise = loadCharProcsPromise.then(function () {
var glyphStream = charProcs.get(key);
var operatorList = new OperatorList();
var operatorList = new _operator_list.OperatorList();
return type3Evaluator.getOperatorList({
stream: glyphStream,
task: task,
@ -2128,7 +2130,7 @@ var TranslatedFont = function TranslatedFontClosure() { @@ -2128,7 +2130,7 @@ var TranslatedFont = function TranslatedFontClosure() {
parentOperatorList.addDependencies(operatorList.dependencies);
}).catch(function (reason) {
(0, _util.warn)('Type3 font resource "' + key + '" is not available.');
var operatorList = new OperatorList();
var operatorList = new _operator_list.OperatorList();
charProcOperatorList[key] = operatorList.getIR();
});
});
@ -2145,103 +2147,6 @@ var TranslatedFont = function TranslatedFontClosure() { @@ -2145,103 +2147,6 @@ var TranslatedFont = function TranslatedFontClosure() {
};
return TranslatedFont;
}();
var OperatorList = function OperatorListClosure() {
var CHUNK_SIZE = 1000;
var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;
function getTransfers(queue) {
var transfers = [];
var fnArray = queue.fnArray,
argsArray = queue.argsArray;
for (var i = 0, ii = queue.length; i < ii; i++) {
switch (fnArray[i]) {
case _util.OPS.paintInlineImageXObject:
case _util.OPS.paintInlineImageXObjectGroup:
case _util.OPS.paintImageMaskXObject:
var arg = argsArray[i][0];
if (!arg.cached) {
transfers.push(arg.data.buffer);
}
break;
}
}
return transfers;
}
function OperatorList(intent, messageHandler, pageIndex) {
this.messageHandler = messageHandler;
this.fnArray = [];
this.argsArray = [];
this.dependencies = Object.create(null);
this._totalLength = 0;
this.pageIndex = pageIndex;
this.intent = intent;
}
OperatorList.prototype = {
get length() {
return this.argsArray.length;
},
get totalLength() {
return this._totalLength + this.length;
},
addOp: function addOp(fn, args) {
this.fnArray.push(fn);
this.argsArray.push(args);
if (this.messageHandler) {
if (this.fnArray.length >= CHUNK_SIZE) {
this.flush();
} else if (this.fnArray.length >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {
this.flush();
}
}
},
addDependency: function addDependency(dependency) {
if (dependency in this.dependencies) {
return;
}
this.dependencies[dependency] = true;
this.addOp(_util.OPS.dependency, [dependency]);
},
addDependencies: function addDependencies(dependencies) {
for (var key in dependencies) {
this.addDependency(key);
}
},
addOpList: function addOpList(opList) {
_util.Util.extendObj(this.dependencies, opList.dependencies);
for (var i = 0, ii = opList.length; i < ii; i++) {
this.addOp(opList.fnArray[i], opList.argsArray[i]);
}
},
getIR: function getIR() {
return {
fnArray: this.fnArray,
argsArray: this.argsArray,
length: this.length
};
},
flush: function flush(lastChunk) {
if (this.intent !== 'oplist') {
new QueueOptimizer().optimize(this);
}
var transfers = getTransfers(this);
var length = this.length;
this._totalLength += length;
this.messageHandler.send('RenderPageChunk', {
operatorList: {
fnArray: this.fnArray,
argsArray: this.argsArray,
lastChunk: lastChunk,
length: length
},
pageIndex: this.pageIndex,
intent: this.intent
}, transfers);
this.dependencies = Object.create(null);
this.fnArray.length = 0;
this.argsArray.length = 0;
}
};
return OperatorList;
}();
var StateManager = function StateManagerClosure() {
function StateManager(initialState) {
this.state = initialState;
@ -2834,302 +2739,4 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() { @@ -2834,302 +2739,4 @@ var EvaluatorPreprocessor = function EvaluatorPreprocessorClosure() {
};
return EvaluatorPreprocessor;
}();
var QueueOptimizer = function QueueOptimizerClosure() {
function addState(parentState, pattern, fn) {
var state = parentState;
for (var i = 0, ii = pattern.length - 1; i < ii; i++) {
var item = pattern[i];
state = state[item] || (state[item] = []);
}
state[pattern[pattern.length - 1]] = fn;
}
function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {
var iFirstPIMXO = iFirstSave + 2;
for (var i = 0; i < count; i++) {
var arg = argsArray[iFirstPIMXO + 4 * i];
var imageMask = arg.length === 1 && arg[0];
if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {
fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;
continue;
}
break;
}
return count - i;
}
var InitialState = [];
addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], function foundInlineImageGroup(context) {
var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;
var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;
var MAX_WIDTH = 1000;
var IMAGE_PADDING = 1;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstSave = curr - 3;
var iFirstTransform = curr - 2;
var iFirstPIIXO = curr - 1;
var i = iFirstSave + 4;
var ii = fnArray.length;
while (i + 3 < ii) {
if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintInlineImageXObject || fnArray[i + 3] !== _util.OPS.restore) {
break;
}
i += 4;
}
var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);
if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {
return i;
}
var maxX = 0;
var map = [],
maxLineHeight = 0;
var currentX = IMAGE_PADDING,
currentY = IMAGE_PADDING;
var q;
for (q = 0; q < count; q++) {
var transform = argsArray[iFirstTransform + (q << 2)];
var img = argsArray[iFirstPIIXO + (q << 2)][0];
if (currentX + img.width > MAX_WIDTH) {
maxX = Math.max(maxX, currentX);
currentY += maxLineHeight + 2 * IMAGE_PADDING;
currentX = 0;
maxLineHeight = 0;
}
map.push({
transform: transform,
x: currentX,
y: currentY,
w: img.width,
h: img.height
});
currentX += img.width + 2 * IMAGE_PADDING;
maxLineHeight = Math.max(maxLineHeight, img.height);
}
var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;
var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;
var imgData = new Uint8Array(imgWidth * imgHeight * 4);
var imgRowSize = imgWidth << 2;
for (q = 0; q < count; q++) {
var data = argsArray[iFirstPIIXO + (q << 2)][0].data;
var rowSize = map[q].w << 2;
var dataOffset = 0;
var offset = map[q].x + map[q].y * imgWidth << 2;
imgData.set(data.subarray(0, rowSize), offset - imgRowSize);
for (var k = 0, kk = map[q].h; k < kk; k++) {
imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);
dataOffset += rowSize;
offset += imgRowSize;
}
imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);
while (offset >= 0) {
data[offset - 4] = data[offset];
data[offset - 3] = data[offset + 1];
data[offset - 2] = data[offset + 2];
data[offset - 1] = data[offset + 3];
data[offset + rowSize] = data[offset + rowSize - 4];
data[offset + rowSize + 1] = data[offset + rowSize - 3];
data[offset + rowSize + 2] = data[offset + rowSize - 2];
data[offset + rowSize + 3] = data[offset + rowSize - 1];
offset -= imgRowSize;
}
}
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);
argsArray.splice(iFirstSave, count * 4, [{
width: imgWidth,
height: imgHeight,
kind: _util.ImageKind.RGBA_32BPP,
data: imgData
}, map]);
return iFirstSave + 1;
});
addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], function foundImageMaskGroup(context) {
var MIN_IMAGES_IN_MASKS_BLOCK = 10;
var MAX_IMAGES_IN_MASKS_BLOCK = 100;
var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstSave = curr - 3;
var iFirstTransform = curr - 2;
var iFirstPIMXO = curr - 1;
var i = iFirstSave + 4;
var ii = fnArray.length;
while (i + 3 < ii) {
if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintImageMaskXObject || fnArray[i + 3] !== _util.OPS.restore) {
break;
}
i += 4;
}
var count = (i - iFirstSave) / 4;
count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);
if (count < MIN_IMAGES_IN_MASKS_BLOCK) {
return i;
}
var q;
var isSameImage = false;
var iTransform, transformArgs;
var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];
if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {
isSameImage = true;
var firstTransformArg0 = argsArray[iFirstTransform][0];
var firstTransformArg3 = argsArray[iFirstTransform][3];
iTransform = iFirstTransform + 4;
var iPIMXO = iFirstPIMXO + 4;
for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {
transformArgs = argsArray[iTransform];
if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {
if (q < MIN_IMAGES_IN_MASKS_BLOCK) {
isSameImage = false;
} else {
count = q;
}
break;
}
}
}
if (isSameImage) {
count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);
var positions = new Float32Array(count * 2);
iTransform = iFirstTransform;
for (q = 0; q < count; q++, iTransform += 4) {
transformArgs = argsArray[iTransform];
positions[q << 1] = transformArgs[4];
positions[(q << 1) + 1] = transformArgs[5];
}
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);
argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);
} else {
count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);
var images = [];
for (q = 0; q < count; q++) {
transformArgs = argsArray[iFirstTransform + (q << 2)];
var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];
images.push({
data: maskParams.data,
width: maskParams.width,
height: maskParams.height,
transform: transformArgs
});
}
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);
argsArray.splice(iFirstSave, count * 4, [images]);
}
return iFirstSave + 1;
});
addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {
var MIN_IMAGES_IN_BLOCK = 3;
var MAX_IMAGES_IN_BLOCK = 1000;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstSave = curr - 3;
var iFirstTransform = curr - 2;
var iFirstPIXO = curr - 1;
var iFirstRestore = curr;
if (argsArray[iFirstTransform][1] !== 0 || argsArray[iFirstTransform][2] !== 0) {
return iFirstRestore + 1;
}
var firstPIXOArg0 = argsArray[iFirstPIXO][0];
var firstTransformArg0 = argsArray[iFirstTransform][0];
var firstTransformArg3 = argsArray[iFirstTransform][3];
var i = iFirstSave + 4;
var ii = fnArray.length;
while (i + 3 < ii) {
if (fnArray[i] !== _util.OPS.save || fnArray[i + 1] !== _util.OPS.transform || fnArray[i + 2] !== _util.OPS.paintImageXObject || fnArray[i + 3] !== _util.OPS.restore) {
break;
}
if (argsArray[i + 1][0] !== firstTransformArg0 || argsArray[i + 1][1] !== 0 || argsArray[i + 1][2] !== 0 || argsArray[i + 1][3] !== firstTransformArg3) {
break;
}
if (argsArray[i + 2][0] !== firstPIXOArg0) {
break;
}
i += 4;
}
var count = Math.min((i - iFirstSave) / 4, MAX_IMAGES_IN_BLOCK);
if (count < MIN_IMAGES_IN_BLOCK) {
return i;
}
var positions = new Float32Array(count * 2);
var iTransform = iFirstTransform;
for (var q = 0; q < count; q++, iTransform += 4) {
var transformArgs = argsArray[iTransform];
positions[q << 1] = transformArgs[4];
positions[(q << 1) + 1] = transformArgs[5];
}
var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);
argsArray.splice(iFirstSave, count * 4, args);
return iFirstSave + 1;
});
addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], function (context) {
var MIN_CHARS_IN_BLOCK = 3;
var MAX_CHARS_IN_BLOCK = 1000;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstBeginText = curr - 4;
var iFirstSetFont = curr - 3;
var iFirstSetTextMatrix = curr - 2;
var iFirstShowText = curr - 1;
var iFirstEndText = curr;
var firstSetFontArg0 = argsArray[iFirstSetFont][0];
var firstSetFontArg1 = argsArray[iFirstSetFont][1];
var i = iFirstBeginText + 5;
var ii = fnArray.length;
while (i + 4 < ii) {
if (fnArray[i] !== _util.OPS.beginText || fnArray[i + 1] !== _util.OPS.setFont || fnArray[i + 2] !== _util.OPS.setTextMatrix || fnArray[i + 3] !== _util.OPS.showText || fnArray[i + 4] !== _util.OPS.endText) {
break;
}
if (argsArray[i + 1][0] !== firstSetFontArg0 || argsArray[i + 1][1] !== firstSetFontArg1) {
break;
}
i += 5;
}
var count = Math.min((i - iFirstBeginText) / 5, MAX_CHARS_IN_BLOCK);
if (count < MIN_CHARS_IN_BLOCK) {
return i;
}
var iFirst = iFirstBeginText;
if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {
count++;
iFirst -= 5;
}
var iEndText = iFirst + 4;
for (var q = 1; q < count; q++) {
fnArray.splice(iEndText, 3);
argsArray.splice(iEndText, 3);
iEndText += 2;
}
return iEndText + 1;
});
function QueueOptimizer() {}
QueueOptimizer.prototype = {
optimize: function QueueOptimizer_optimize(queue) {
var fnArray = queue.fnArray,
argsArray = queue.argsArray;
var context = {
iCurr: 0,
fnArray: fnArray,
argsArray: argsArray
};
var state;
var i = 0,
ii = fnArray.length;
while (i < ii) {
state = (state || InitialState)[fnArray[i]];
if (typeof state === 'function') {
context.iCurr = i;
i = state(context);
state = undefined;
ii = context.fnArray.length;
} else {
i++;
}
}
}
};
return QueueOptimizer;
}();
exports.OperatorList = OperatorList;
exports.PartialEvaluator = PartialEvaluator;

536
lib/core/operator_list.js

@ -0,0 +1,536 @@ @@ -0,0 +1,536 @@
/* Copyright 2017 Mozilla Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OperatorList = undefined;
var _util = require('../shared/util');
var QueueOptimizer = function QueueOptimizerClosure() {
function addState(parentState, pattern, checkFn, iterateFn, processFn) {
var state = parentState;
for (var i = 0, ii = pattern.length - 1; i < ii; i++) {
var item = pattern[i];
state = state[item] || (state[item] = []);
}
state[pattern[pattern.length - 1]] = {
checkFn: checkFn,
iterateFn: iterateFn,
processFn: processFn
};
}
function handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray) {
var iFirstPIMXO = iFirstSave + 2;
for (var i = 0; i < count; i++) {
var arg = argsArray[iFirstPIMXO + 4 * i];
var imageMask = arg.length === 1 && arg[0];
if (imageMask && imageMask.width === 1 && imageMask.height === 1 && (!imageMask.data.length || imageMask.data.length === 1 && imageMask.data[0] === 0)) {
fnArray[iFirstPIMXO + 4 * i] = _util.OPS.paintSolidColorImageMask;
continue;
}
break;
}
return count - i;
}
var InitialState = [];
addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintInlineImageXObject, _util.OPS.restore], null, function iterateInlineImageGroup(context, i) {
var fnArray = context.fnArray;
var iFirstSave = context.iCurr - 3;
var pos = (i - iFirstSave) % 4;
switch (pos) {
case 0:
return fnArray[i] === _util.OPS.save;
case 1:
return fnArray[i] === _util.OPS.transform;
case 2:
return fnArray[i] === _util.OPS.paintInlineImageXObject;
case 3:
return fnArray[i] === _util.OPS.restore;
}
}, function foundInlineImageGroup(context, i) {
var MIN_IMAGES_IN_INLINE_IMAGES_BLOCK = 10;
var MAX_IMAGES_IN_INLINE_IMAGES_BLOCK = 200;
var MAX_WIDTH = 1000;
var IMAGE_PADDING = 1;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstSave = curr - 3;
var iFirstTransform = curr - 2;
var iFirstPIIXO = curr - 1;
var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_INLINE_IMAGES_BLOCK);
if (count < MIN_IMAGES_IN_INLINE_IMAGES_BLOCK) {
return i - (i - iFirstSave) % 4;
}
var maxX = 0;
var map = [],
maxLineHeight = 0;
var currentX = IMAGE_PADDING,
currentY = IMAGE_PADDING;
var q;
for (q = 0; q < count; q++) {
var transform = argsArray[iFirstTransform + (q << 2)];
var img = argsArray[iFirstPIIXO + (q << 2)][0];
if (currentX + img.width > MAX_WIDTH) {
maxX = Math.max(maxX, currentX);
currentY += maxLineHeight + 2 * IMAGE_PADDING;
currentX = 0;
maxLineHeight = 0;
}
map.push({
transform: transform,
x: currentX,
y: currentY,
w: img.width,
h: img.height
});
currentX += img.width + 2 * IMAGE_PADDING;
maxLineHeight = Math.max(maxLineHeight, img.height);
}
var imgWidth = Math.max(maxX, currentX) + IMAGE_PADDING;
var imgHeight = currentY + maxLineHeight + IMAGE_PADDING;
var imgData = new Uint8Array(imgWidth * imgHeight * 4);
var imgRowSize = imgWidth << 2;
for (q = 0; q < count; q++) {
var data = argsArray[iFirstPIIXO + (q << 2)][0].data;
var rowSize = map[q].w << 2;
var dataOffset = 0;
var offset = map[q].x + map[q].y * imgWidth << 2;
imgData.set(data.subarray(0, rowSize), offset - imgRowSize);
for (var k = 0, kk = map[q].h; k < kk; k++) {
imgData.set(data.subarray(dataOffset, dataOffset + rowSize), offset);
dataOffset += rowSize;
offset += imgRowSize;
}
imgData.set(data.subarray(dataOffset - rowSize, dataOffset), offset);
while (offset >= 0) {
data[offset - 4] = data[offset];
data[offset - 3] = data[offset + 1];
data[offset - 2] = data[offset + 2];
data[offset - 1] = data[offset + 3];
data[offset + rowSize] = data[offset + rowSize - 4];
data[offset + rowSize + 1] = data[offset + rowSize - 3];
data[offset + rowSize + 2] = data[offset + rowSize - 2];
data[offset + rowSize + 3] = data[offset + rowSize - 1];
offset -= imgRowSize;
}
}
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintInlineImageXObjectGroup);
argsArray.splice(iFirstSave, count * 4, [{
width: imgWidth,
height: imgHeight,
kind: _util.ImageKind.RGBA_32BPP,
data: imgData
}, map]);
return iFirstSave + 1;
});
addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageMaskXObject, _util.OPS.restore], null, function iterateImageMaskGroup(context, i) {
var fnArray = context.fnArray;
var iFirstSave = context.iCurr - 3;
var pos = (i - iFirstSave) % 4;
switch (pos) {
case 0:
return fnArray[i] === _util.OPS.save;
case 1:
return fnArray[i] === _util.OPS.transform;
case 2:
return fnArray[i] === _util.OPS.paintImageMaskXObject;
case 3:
return fnArray[i] === _util.OPS.restore;
}
}, function foundImageMaskGroup(context, i) {
var MIN_IMAGES_IN_MASKS_BLOCK = 10;
var MAX_IMAGES_IN_MASKS_BLOCK = 100;
var MAX_SAME_IMAGES_IN_MASKS_BLOCK = 1000;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstSave = curr - 3;
var iFirstTransform = curr - 2;
var iFirstPIMXO = curr - 1;
var count = Math.floor((i - iFirstSave) / 4);
count = handlePaintSolidColorImageMask(iFirstSave, count, fnArray, argsArray);
if (count < MIN_IMAGES_IN_MASKS_BLOCK) {
return i - (i - iFirstSave) % 4;
}
var q;
var isSameImage = false;
var iTransform, transformArgs;
var firstPIMXOArg0 = argsArray[iFirstPIMXO][0];
if (argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0) {
isSameImage = true;
var firstTransformArg0 = argsArray[iFirstTransform][0];
var firstTransformArg3 = argsArray[iFirstTransform][3];
iTransform = iFirstTransform + 4;
var iPIMXO = iFirstPIMXO + 4;
for (q = 1; q < count; q++, iTransform += 4, iPIMXO += 4) {
transformArgs = argsArray[iTransform];
if (argsArray[iPIMXO][0] !== firstPIMXOArg0 || transformArgs[0] !== firstTransformArg0 || transformArgs[1] !== 0 || transformArgs[2] !== 0 || transformArgs[3] !== firstTransformArg3) {
if (q < MIN_IMAGES_IN_MASKS_BLOCK) {
isSameImage = false;
} else {
count = q;
}
break;
}
}
}
if (isSameImage) {
count = Math.min(count, MAX_SAME_IMAGES_IN_MASKS_BLOCK);
var positions = new Float32Array(count * 2);
iTransform = iFirstTransform;
for (q = 0; q < count; q++, iTransform += 4) {
transformArgs = argsArray[iTransform];
positions[q << 1] = transformArgs[4];
positions[(q << 1) + 1] = transformArgs[5];
}
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectRepeat);
argsArray.splice(iFirstSave, count * 4, [firstPIMXOArg0, firstTransformArg0, firstTransformArg3, positions]);
} else {
count = Math.min(count, MAX_IMAGES_IN_MASKS_BLOCK);
var images = [];
for (q = 0; q < count; q++) {
transformArgs = argsArray[iFirstTransform + (q << 2)];
var maskParams = argsArray[iFirstPIMXO + (q << 2)][0];
images.push({
data: maskParams.data,
width: maskParams.width,
height: maskParams.height,
transform: transformArgs
});
}
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageMaskXObjectGroup);
argsArray.splice(iFirstSave, count * 4, [images]);
}
return iFirstSave + 1;
});
addState(InitialState, [_util.OPS.save, _util.OPS.transform, _util.OPS.paintImageXObject, _util.OPS.restore], function (context) {
var argsArray = context.argsArray;
var iFirstTransform = context.iCurr - 2;
return argsArray[iFirstTransform][1] === 0 && argsArray[iFirstTransform][2] === 0;
}, function (context, i) {
var fnArray = context.fnArray,
argsArray = context.argsArray;
var iFirstSave = context.iCurr - 3;
var pos = (i - iFirstSave) % 4;
switch (pos) {
case 0:
return fnArray[i] === _util.OPS.save;
case 1:
if (fnArray[i] !== _util.OPS.transform) {
return false;
}
var iFirstTransform = context.iCurr - 2;
var firstTransformArg0 = argsArray[iFirstTransform][0];
var firstTransformArg3 = argsArray[iFirstTransform][3];
if (argsArray[i][0] !== firstTransformArg0 || argsArray[i][1] !== 0 || argsArray[i][2] !== 0 || argsArray[i][3] !== firstTransformArg3) {
return false;
}
return true;
case 2:
if (fnArray[i] !== _util.OPS.paintImageXObject) {
return false;
}
var iFirstPIXO = context.iCurr - 1;
var firstPIXOArg0 = argsArray[iFirstPIXO][0];
if (argsArray[i][0] !== firstPIXOArg0) {
return false;
}
return true;
case 3:
return fnArray[i] === _util.OPS.restore;
}
}, function (context, i) {
var MIN_IMAGES_IN_BLOCK = 3;
var MAX_IMAGES_IN_BLOCK = 1000;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstSave = curr - 3;
var iFirstTransform = curr - 2;
var iFirstPIXO = curr - 1;
var firstPIXOArg0 = argsArray[iFirstPIXO][0];
var firstTransformArg0 = argsArray[iFirstTransform][0];
var firstTransformArg3 = argsArray[iFirstTransform][3];
var count = Math.min(Math.floor((i - iFirstSave) / 4), MAX_IMAGES_IN_BLOCK);
if (count < MIN_IMAGES_IN_BLOCK) {
return i - (i - iFirstSave) % 4;
}
var positions = new Float32Array(count * 2);
var iTransform = iFirstTransform;
for (var q = 0; q < count; q++, iTransform += 4) {
var transformArgs = argsArray[iTransform];
positions[q << 1] = transformArgs[4];
positions[(q << 1) + 1] = transformArgs[5];
}
var args = [firstPIXOArg0, firstTransformArg0, firstTransformArg3, positions];
fnArray.splice(iFirstSave, count * 4, _util.OPS.paintImageXObjectRepeat);
argsArray.splice(iFirstSave, count * 4, args);
return iFirstSave + 1;
});
addState(InitialState, [_util.OPS.beginText, _util.OPS.setFont, _util.OPS.setTextMatrix, _util.OPS.showText, _util.OPS.endText], null, function (context, i) {
var fnArray = context.fnArray,
argsArray = context.argsArray;
var iFirstSave = context.iCurr - 4;
var pos = (i - iFirstSave) % 5;
switch (pos) {
case 0:
return fnArray[i] === _util.OPS.beginText;
case 1:
return fnArray[i] === _util.OPS.setFont;
case 2:
return fnArray[i] === _util.OPS.setTextMatrix;
case 3:
if (fnArray[i] !== _util.OPS.showText) {
return false;
}
var iFirstSetFont = context.iCurr - 3;
var firstSetFontArg0 = argsArray[iFirstSetFont][0];
var firstSetFontArg1 = argsArray[iFirstSetFont][1];
if (argsArray[i][0] !== firstSetFontArg0 || argsArray[i][1] !== firstSetFontArg1) {
return false;
}
return true;
case 4:
return fnArray[i] === _util.OPS.endText;
}
}, function (context, i) {
var MIN_CHARS_IN_BLOCK = 3;
var MAX_CHARS_IN_BLOCK = 1000;
var fnArray = context.fnArray,
argsArray = context.argsArray;
var curr = context.iCurr;
var iFirstBeginText = curr - 4;
var iFirstSetFont = curr - 3;
var iFirstSetTextMatrix = curr - 2;
var iFirstShowText = curr - 1;
var iFirstEndText = curr;
var firstSetFontArg0 = argsArray[iFirstSetFont][0];
var firstSetFontArg1 = argsArray[iFirstSetFont][1];
var count = Math.min(Math.floor((i - iFirstBeginText) / 5), MAX_CHARS_IN_BLOCK);
if (count < MIN_CHARS_IN_BLOCK) {
return i - (i - iFirstBeginText) % 5;
}
var iFirst = iFirstBeginText;
if (iFirstBeginText >= 4 && fnArray[iFirstBeginText - 4] === fnArray[iFirstSetFont] && fnArray[iFirstBeginText - 3] === fnArray[iFirstSetTextMatrix] && fnArray[iFirstBeginText - 2] === fnArray[iFirstShowText] && fnArray[iFirstBeginText - 1] === fnArray[iFirstEndText] && argsArray[iFirstBeginText - 4][0] === firstSetFontArg0 && argsArray[iFirstBeginText - 4][1] === firstSetFontArg1) {
count++;
iFirst -= 5;
}
var iEndText = iFirst + 4;
for (var q = 1; q < count; q++) {
fnArray.splice(iEndText, 3);
argsArray.splice(iEndText, 3);
iEndText += 2;
}
return iEndText + 1;
});
function QueueOptimizer(queue) {
this.queue = queue;
this.state = null;
this.context = {
iCurr: 0,
fnArray: queue.fnArray,
argsArray: queue.argsArray
};
this.match = null;
this.lastProcessed = 0;
}
QueueOptimizer.prototype = {
_optimize: function _optimize() {
var fnArray = this.queue.fnArray;
var i = this.lastProcessed,
ii = fnArray.length;
var state = this.state;
var match = this.match;
if (!state && !match && i + 1 === ii && !InitialState[fnArray[i]]) {
this.lastProcessed = ii;
return;
}
var context = this.context;
while (i < ii) {
if (match) {
var iterate = (0, match.iterateFn)(context, i);
if (iterate) {
i++;
continue;
}
i = (0, match.processFn)(context, i + 1);
ii = fnArray.length;
match = null;
state = null;
if (i >= ii) {
break;
}
}
state = (state || InitialState)[fnArray[i]];
if (!state || Array.isArray(state)) {
i++;
continue;
}
context.iCurr = i;
i++;
if (state.checkFn && !(0, state.checkFn)(context)) {
state = null;
continue;
}
match = state;
state = null;
}
this.state = state;
this.match = match;
this.lastProcessed = i;
},
push: function push(fn, args) {
this.queue.fnArray.push(fn);
this.queue.argsArray.push(args);
this._optimize();
},
flush: function flush() {
while (this.match) {
var length = this.queue.fnArray.length;
this.lastProcessed = (0, this.match.processFn)(this.context, length);
this.match = null;
this.state = null;
this._optimize();
}
},
reset: function reset() {
this.state = null;
this.match = null;
this.lastProcessed = 0;
}
};
return QueueOptimizer;
}();
var NullOptimizer = function NullOptimizerClosure() {
function NullOptimizer(queue) {
this.queue = queue;
}
NullOptimizer.prototype = {
push: function push(fn, args) {
this.queue.fnArray.push(fn);
this.queue.argsArray.push(args);
},
flush: function flush() {}
};
return NullOptimizer;
}();
var OperatorList = function OperatorListClosure() {
var CHUNK_SIZE = 1000;
var CHUNK_SIZE_ABOUT = CHUNK_SIZE - 5;
function getTransfers(queue) {
var transfers = [];
var fnArray = queue.fnArray,
argsArray = queue.argsArray;
for (var i = 0, ii = queue.length; i < ii; i++) {
switch (fnArray[i]) {
case _util.OPS.paintInlineImageXObject:
case _util.OPS.paintInlineImageXObjectGroup:
case _util.OPS.paintImageMaskXObject:
var arg = argsArray[i][0];
if (!arg.cached) {
transfers.push(arg.data.buffer);
}
break;
}
}
return transfers;
}
function OperatorList(intent, messageHandler, pageIndex) {
this.messageHandler = messageHandler;
this.fnArray = [];
this.argsArray = [];
if (messageHandler && this.intent !== 'oplist') {
this.optimizer = new QueueOptimizer(this);
} else {
this.optimizer = new NullOptimizer(this);
}
this.dependencies = Object.create(null);
this._totalLength = 0;
this.pageIndex = pageIndex;
this.intent = intent;
this.weight = 0;
}
OperatorList.prototype = {
get length() {
return this.argsArray.length;
},
get totalLength() {
return this._totalLength + this.length;
},
addOp: function addOp(fn, args) {
this.optimizer.push(fn, args);
this.weight++;
if (this.messageHandler) {
if (this.weight >= CHUNK_SIZE) {
this.flush();
} else if (this.weight >= CHUNK_SIZE_ABOUT && (fn === _util.OPS.restore || fn === _util.OPS.endText)) {
this.flush();
}
}
},
addDependency: function addDependency(dependency) {
if (dependency in this.dependencies) {
return;
}
this.dependencies[dependency] = true;
this.addOp(_util.OPS.dependency, [dependency]);
},
addDependencies: function addDependencies(dependencies) {
for (var key in dependencies) {
this.addDependency(key);
}
},
addOpList: function addOpList(opList) {
_util.Util.extendObj(this.dependencies, opList.dependencies);
for (var i = 0, ii = opList.length; i < ii; i++) {
this.addOp(opList.fnArray[i], opList.argsArray[i]);
}
},
getIR: function getIR() {
return {
fnArray: this.fnArray,
argsArray: this.argsArray,
length: this.length
};
},
flush: function flush(lastChunk) {
this.optimizer.flush();
var transfers = getTransfers(this);
var length = this.length;
this._totalLength += length;
this.messageHandler.send('RenderPageChunk', {
operatorList: {
fnArray: this.fnArray,
argsArray: this.argsArray,
lastChunk: lastChunk,
length: length
},
pageIndex: this.pageIndex,
intent: this.intent
}, transfers);
this.dependencies = Object.create(null);
this.fnArray.length = 0;
this.argsArray.length = 0;
this.weight = 0;
this.optimizer.reset();
}
};
return OperatorList;
}();
exports.OperatorList = OperatorList;

2
lib/core/worker.js

@ -208,7 +208,7 @@ var WorkerMessageHandler = { @@ -208,7 +208,7 @@ var WorkerMessageHandler = {
var cancelXHRs = null;
var WorkerTasks = [];
var apiVersion = docParams.apiVersion;
var workerVersion = '2.0.108';
var workerVersion = '2.0.112';
if (apiVersion !== null && apiVersion !== workerVersion) {
throw new Error('The API version "' + apiVersion + '" does not match ' + ('the Worker version "' + workerVersion + '".'));
}

6
lib/display/api.js

@ -172,7 +172,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { @@ -172,7 +172,7 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
if (worker.destroyed) {
return Promise.reject(new Error('Worker was destroyed'));
}
var apiVersion = '2.0.108';
var apiVersion = '2.0.112';
source.disableAutoFetch = (0, _dom_utils.getDefaultSetting)('disableAutoFetch');
source.disableStream = (0, _dom_utils.getDefaultSetting)('disableStream');
source.chunkedViewerLoading = !!pdfDataRangeTransport;
@ -1535,8 +1535,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() { @@ -1535,8 +1535,8 @@ var InternalRenderTask = function InternalRenderTaskClosure() {
}();
var version, build;
{
exports.version = version = '2.0.108';
exports.build = build = '36b83c14';
exports.version = version = '2.0.112';
exports.build = build = '9686f665';
}
exports.getDocument = getDocument;
exports.LoopbackPort = LoopbackPort;

4
lib/display/global.js

@ -44,8 +44,8 @@ if (!_global_scope2.default.PDFJS) { @@ -44,8 +44,8 @@ if (!_global_scope2.default.PDFJS) {
}
var PDFJS = _global_scope2.default.PDFJS;
{
PDFJS.version = '2.0.108';
PDFJS.build = '36b83c14';
PDFJS.version = '2.0.112';
PDFJS.build = '9686f665';
}
PDFJS.pdfBug = false;
if (PDFJS.verbosity !== undefined) {

4
lib/pdf.js

@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
*/
'use strict';
var pdfjsVersion = '2.0.108';
var pdfjsBuild = '36b83c14';
var pdfjsVersion = '2.0.112';
var pdfjsBuild = '9686f665';
var pdfjsSharedUtil = require('./shared/util.js');
var pdfjsDisplayGlobal = require('./display/global.js');
var pdfjsDisplayAPI = require('./display/api.js');

4
lib/pdf.worker.js vendored

@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
*/
'use strict';
var pdfjsVersion = '2.0.108';
var pdfjsBuild = '36b83c14';
var pdfjsVersion = '2.0.112';
var pdfjsBuild = '9686f665';
var pdfjsCoreWorker = require('./core/worker.js');
exports.WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;

12
lib/test/unit/evaluator_spec.js

@ -18,10 +18,12 @@ var _primitives = require('../../core/primitives'); @@ -18,10 +18,12 @@ var _primitives = require('../../core/primitives');
var _util = require('../../shared/util');
var _evaluator = require('../../core/evaluator');
var _stream = require('../../core/stream');
var _operator_list = require('../../core/operator_list');
var _evaluator = require('../../core/evaluator');
var _worker = require('../../core/worker');
var _test_utils = require('./test_utils');
@ -46,7 +48,7 @@ describe('evaluator', function () { @@ -46,7 +48,7 @@ describe('evaluator', function () {
};
function PdfManagerMock() {}
function runOperatorListCheck(evaluator, stream, resources, callback) {
var result = new _evaluator.OperatorList();
var result = new _operator_list.OperatorList();
var task = new _worker.WorkerTask('OperatorListCheck');
evaluator.getOperatorList({
stream: stream,
@ -240,7 +242,7 @@ describe('evaluator', function () { @@ -240,7 +242,7 @@ describe('evaluator', function () {
it('should abort operator list parsing', function (done) {
var stream = new _stream.StringStream('qqQQ');
var resources = new ResourcesMock();
var result = new _evaluator.OperatorList();
var result = new _operator_list.OperatorList();
var task = new _worker.WorkerTask('OperatorListAbort');
task.terminate();
partialEvaluator.getOperatorList({
@ -275,7 +277,7 @@ describe('evaluator', function () { @@ -275,7 +277,7 @@ describe('evaluator', function () {
send: function send() {}
};
it('should get correct total length after flushing', function () {
var operatorList = new _evaluator.OperatorList(null, new MessageHandlerMock());
var operatorList = new _operator_list.OperatorList(null, new MessageHandlerMock());
operatorList.addOp(_util.OPS.save, null);
operatorList.addOp(_util.OPS.restore, null);
expect(operatorList.totalLength).toEqual(2);

2
package.json

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
{
"name": "pdfjs-dist",
"version": "2.0.108",
"version": "2.0.112",
"main": "build/pdf.js",
"description": "Generic build of Mozilla's PDF.js library.",
"keywords": [

Loading…
Cancel
Save