Skip to content

Commit 2ce0027

Browse files
committed
Address more of brendan's comments
1 parent 27fe18e commit 2ce0027

File tree

7 files changed

+95
-66
lines changed

7 files changed

+95
-66
lines changed

src/chunked_stream.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* See the License for the specific language governing permissions and
1515
* limitations under the License.
1616
*/
17-
/* globals assert, MissingDataException, isInt, NetworkManager, PDFJS,
17+
/* globals assert, MissingDataException, isInt, NetworkManager, Promise,
1818
isEmptyObj */
1919

2020
'use strict';
@@ -233,7 +233,7 @@ var ChunkedStreamManager = (function ChunkedStreamManagerClosure() {
233233
this.requestsByChunk = {};
234234
this.callbacksByRequest = {};
235235

236-
this.loadedStream = new PDFJS.Promise();
236+
this.loadedStream = new Promise();
237237
}
238238

239239
ChunkedStreamManager.prototype = {

src/core.js

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
isArrayBuffer, isDict, isName, isStream, isString, Lexer,
1919
Linearization, NullStream, PartialEvaluator, shadow, Stream,
2020
StreamsSequenceStream, stringToPDFString, TODO, Util, warn, XRef,
21-
MissingDataException, PDFJS */
21+
MissingDataException, Promise */
2222

2323
'use strict';
2424

@@ -149,21 +149,22 @@ var Page = (function PageClosure() {
149149
},
150150
getOperatorList: function Page_getOperatorList(handler) {
151151
var self = this;
152-
var promise = new PDFJS.Promise();
152+
var promise = new Promise();
153153

154-
var pageListPromise = new PDFJS.Promise();
155-
var annotationListPromise = new PDFJS.Promise();
154+
var pageListPromise = new Promise();
155+
var annotationListPromise = new Promise();
156156

157157
var pdfManager = this.pdfManager;
158158
var contentStreamPromise = pdfManager.ensure(this, 'getContentStream',
159159
[]);
160160
var resourcesPromise = pdfManager.ensure(this, 'resources');
161-
var dataPromises = PDFJS.Promise.all(
161+
var dataPromises = Promise.all(
162162
[contentStreamPromise, resourcesPromise]);
163163
dataPromises.then(function(data) {
164164
var contentStream = data[0];
165165
var resources = data[1];
166166
var pe = self.pe = new PartialEvaluator(
167+
pdfManager,
167168
self.xref, handler, self.pageIndex,
168169
'p' + self.pageIndex + '_');
169170

@@ -180,7 +181,7 @@ var Page = (function PageClosure() {
180181
pdfManager.ensure(this, 'getAnnotationsForDraw', []).then(
181182
function(annotations) {
182183
var annotationEvaluator = new PartialEvaluator(
183-
self.xref, handler, self.pageIndex,
184+
pdfManager, self.xref, handler, self.pageIndex,
184185
'p' + self.pageIndex + '_annotation');
185186

186187
pdfManager.ensure(annotationEvaluator, 'getAnnotationsOperatorList',
@@ -194,7 +195,7 @@ var Page = (function PageClosure() {
194195
}
195196
);
196197

197-
PDFJS.Promise.all([pageListPromise, annotationListPromise]).then(
198+
Promise.all([pageListPromise, annotationListPromise]).then(
198199
function(datas) {
199200
var pageData = datas[0];
200201
var pageQueue = pageData.queue;
@@ -221,12 +222,12 @@ var Page = (function PageClosure() {
221222

222223
var self = this;
223224

224-
var textContentPromise = new PDFJS.Promise();
225+
var textContentPromise = new Promise();
225226

226227
var pdfManager = this.pdfManager;
227228
var contentStreamPromise = pdfManager.ensure(this, 'getContentStream',
228229
[]);
229-
var resourcesPromise = new PDFJS.Promise();
230+
var resourcesPromise = new Promise();
230231
pdfManager.ensure(this, 'resources').then(function(resources) {
231232
pdfManager.ensure(self.xref, 'fetchIfRef', [resources]).then(
232233
function(resources) {
@@ -235,12 +236,13 @@ var Page = (function PageClosure() {
235236
);
236237
});
237238

238-
var dataPromises = PDFJS.Promise.all([contentStreamPromise,
239-
resourcesPromise]);
239+
var dataPromises = Promise.all([contentStreamPromise,
240+
resourcesPromise]);
240241
dataPromises.then(function(data) {
241242
var contentStream = data[0];
242243
var resources = data[1];
243244
var pe = new PartialEvaluator(
245+
pdfManager,
244246
self.xref, handler, self.pageIndex,
245247
'p' + self.pageIndex + '_');
246248

src/evaluator.js

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,17 @@
1919
IDENTITY_MATRIX, info, isArray, isCmd, isDict, isEOF, isName, isNum,
2020
isStream, isString, JpegStream, Lexer, Metrics, Name, Parser,
2121
Pattern, PDFImage, PDFJS, serifFonts, stdFontMap, symbolsFonts,
22-
TilingPattern, TODO, warn, Util, MissingDataException, globalScope */
22+
TilingPattern, TODO, warn, Util, MissingDataException, Promise */
2323

2424
'use strict';
2525

2626
var PartialEvaluator = (function PartialEvaluatorClosure() {
27-
function PartialEvaluator(xref, handler, pageIndex, uniquePrefix) {
27+
function PartialEvaluator(pdfManager, xref, handler, pageIndex,
28+
uniquePrefix) {
2829
this.state = new EvalState();
2930
this.stateStack = [];
3031

32+
this.pdfManager = pdfManager;
3133
this.xref = xref;
3234
this.handler = handler;
3335
this.pageIndex = pageIndex;
@@ -165,7 +167,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
165167
buildFormXObject: function PartialEvaluator_buildFormXObject(resources,
166168
xobj, smask) {
167169
var self = this;
168-
var promise = new PDFJS.Promise();
170+
var promise = new Promise();
169171
var fnArray = [];
170172
var argsArray = [];
171173

@@ -302,7 +304,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
302304
fn, args, resources, pattern, patternDict) {
303305
var self = this;
304306
// Create an IR of the pattern code.
305-
var promise = new PDFJS.Promise();
307+
var promise = new Promise();
306308
var opListPromise = this.getOperatorList(pattern,
307309
patternDict.get('Resources') || resources);
308310
opListPromise.then(function(data) {
@@ -324,7 +326,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
324326
handleSetFont: function PartialEvaluator_handleSetFont(
325327
resources, fontArgs, font) {
326328

327-
var promise = new PDFJS.Promise();
329+
var promise = new Promise();
328330
// TODO(mack): Not needed?
329331
var fontName;
330332
if (fontArgs) {
@@ -413,7 +415,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
413415
gStateObj.push([key, value]);
414416
break;
415417
case 'Font':
416-
var promise = new PDFJS.Promise();
418+
var promise = new Promise();
417419
self.handleSetFont(resources, null, value[0]).then(function(data) {
418420
var gState = ['Font', data.loadedName, value[1]];
419421
promise.resolve({
@@ -478,8 +480,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
478480
}
479481
}
480482

481-
var promise = new PDFJS.Promise();
482-
PDFJS.Promise.all(promises).then(function(datas) {
483+
var promise = new Promise();
484+
Promise.all(promises).then(function(datas) {
483485
for (var i = 0, n = datas.length; i < n; ++i) {
484486
var data = datas[i];
485487
var index = indices[i];
@@ -500,7 +502,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
500502

501503
loadFont: function PartialEvaluator_loadFont(fontName, font, xref,
502504
resources) {
503-
var promise = new PDFJS.Promise();
505+
var promise = new Promise();
504506

505507
var fontRes = resources.get('Font');
506508

@@ -551,7 +553,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
551553
opListPromises.push(
552554
this.getOperatorList(glyphStream, fontResources));
553555
}
554-
PDFJS.Promise.all(opListPromises).then(function(datas) {
556+
Promise.all(opListPromises).then(function(datas) {
555557
var charProcOperatorList = {};
556558
var dependencies = {};
557559
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
@@ -606,7 +608,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
606608
// dictionary
607609
var parser = new Parser(new Lexer(stream, OP_MAP), false, xref);
608610

609-
var promise = new PDFJS.Promise();
611+
var promise = new Promise();
610612
function parseCommands() {
611613
try {
612614
parser.restoreState();
@@ -770,7 +772,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
770772
subQueuePromises.push(argsArray[i][0]);
771773
}
772774
}
773-
PDFJS.Promise.all(subQueuePromises).then(function(datas) {
775+
Promise.all(subQueuePromises).then(function(datas) {
774776
// TODO(mack): Optimize by using repositioning elements
775777
// in original queue rather than creating new queue
776778

@@ -817,10 +819,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
817819
throw e;
818820
}
819821

820-
var streamManager = globalScope.pdfManager.streamManager;
821-
streamManager.requestRange(e.begin, e.end, function() {
822-
parseCommands();
823-
});
822+
self.pdfManager.requestRange(e.begin, e.end).then(parseCommands);
824823
}
825824
}
826825
parser.saveState();
@@ -832,7 +831,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
832831
getAnnotationsOperatorList:
833832
function PartialEvaluator_getAnnotationsOperatorList(annotations,
834833
dependency) {
835-
var promise = new PDFJS.Promise();
834+
var promise = new Promise();
836835

837836
// 12.5.5: Algorithm: Appearance streams
838837
function getTransformMatrix(rect, bbox, matrix) {
@@ -878,13 +877,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
878877
annotation.resources);
879878
opListPromises.push(opListPromise);
880879
} else {
881-
var opListPromise = new PDFJS.Promise();
880+
var opListPromise = new Promise();
882881
opListPromise.resolve(createOperatorList());
883882
opListPromises.push(opListPromise);
884883
}
885884
}
886885

887-
PDFJS.Promise.all(opListPromises).then(function(datas) {
886+
Promise.all(opListPromises).then(function(datas) {
888887
var fnArray = [];
889888
var argsArray = [];
890889
var dependencies = {};
@@ -923,10 +922,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
923922
var MULTI_SPACE_FACTOR = 1.5;
924923
var self = this;
925924

926-
var statePromise = new PDFJS.Promise();
925+
var statePromise = new Promise();
927926

928927
function handleSetFont(fontName, fontRef, resources) {
929-
var promise = new PDFJS.Promise();
928+
var promise = new Promise();
930929
self.loadFont(fontName, fontRef, self.xref, resources).then(
931930
function(data) {
932931
promise.resolve(data.font.translated);
@@ -969,7 +968,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
969968
//.translated;
970969
break;
971970
case 'TJ':
972-
var chunkPromise = new PDFJS.Promise();
971+
var chunkPromise = new Promise();
973972
chunkPromises.push(chunkPromise);
974973
fontPromise.then(function(items, font) {
975974
var chunk = '';
@@ -994,7 +993,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
994993
}.bind(null, args[0]));
995994
break;
996995
case 'Tj':
997-
var chunkPromise = new PDFJS.Promise();
996+
var chunkPromise = new Promise();
998997
chunkPromises.push(chunkPromise);
999998
fontPromise.then(function(charCodes, font) {
1000999
var chunk = fontCharsToUnicode(charCodes, font);
@@ -1006,7 +1005,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
10061005
// For search, adding a extra white space for line breaks
10071006
// would be better here, but that causes too much spaces in
10081007
// the text-selection divs.
1009-
var chunkPromise = new PDFJS.Promise();
1008+
var chunkPromise = new Promise();
10101009
chunkPromises.push(chunkPromise);
10111010
fontPromise.then(function(charCodes, font) {
10121011
var chunk = fontCharsToUnicode(charCodes, font);
@@ -1016,7 +1015,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
10161015
break;
10171016
case '"':
10181017
// Note comment in "'"
1019-
var chunkPromise = new PDFJS.Promise();
1018+
var chunkPromise = new Promise();
10201019
chunkPromises.push(chunkPromise);
10211020
fontPromise.then(function(charCodes, font) {
10221021
var chunk = fontCharsToUnicode(charCodes, font);
@@ -1081,7 +1080,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
10811080
}
10821081
} // while
10831082

1084-
PDFJS.Promise.all(chunkPromises).then(function(datas) {
1083+
Promise.all(chunkPromises).then(function(datas) {
10851084
var bidiTexts = [];
10861085
for (var i = 0, n = datas.length; i < n; ++i) {
10871086
var bidiText = datas[i];
@@ -1100,10 +1099,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
11001099
throw e;
11011100
}
11021101

1103-
var streamManager = globalScope.pdfManager.streamManager;
1104-
streamManager.requestRange(e.begin, e.end, function() {
1105-
parseCommands();
1106-
});
1102+
self.pdfManager.requestRange(e.begin, e.end).then(parseCommands);
11071103
}
11081104
}
11091105
parser.saveState();

src/obj.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
/* globals assertWellFormed, bytesToString, CipherTransformFactory, error, info,
1818
InvalidPDFException, isArray, isCmd, isDict, isInt, isName, isRef,
1919
isStream, JpegStream, Lexer, log, Page, Parser, Promise, shadow,
20-
stringToPDFString, stringToUTF8String, warn, isString, assert, PDFJS,
21-
MissingDataException, XRefParseException, Stream */
20+
stringToPDFString, stringToUTF8String, warn, isString, assert,
21+
Promise, MissingDataException, XRefParseException, Stream */
2222

2323
'use strict';
2424

@@ -339,7 +339,7 @@ var Catalog = (function CatalogClosure() {
339339

340340
getPage: function Catalog_getPage(pageIndex) {
341341
if (!(pageIndex in this.pagePromises)) {
342-
this.pagePromises[pageIndex] = new PDFJS.Promise();
342+
this.pagePromises[pageIndex] = new Promise();
343343
}
344344
return this.pagePromises[pageIndex];
345345
},
@@ -367,7 +367,7 @@ var Catalog = (function CatalogClosure() {
367367
var page = new Page(this.pdfManager, this.xref, pageIndex, kid,
368368
kidRef);
369369
if (!(pageIndex in this.pagePromises)) {
370-
this.pagePromises[pageIndex] = new PDFJS.Promise();
370+
this.pagePromises[pageIndex] = new Promise();
371371
}
372372
this.pagePromises[pageIndex].resolve(page);
373373

0 commit comments

Comments
 (0)