Skip to content

Commit

Permalink
Address more of brendan's comments
Browse files Browse the repository at this point in the history
  • Loading branch information
mduan committed Apr 18, 2013
1 parent 27fe18e commit 2ce0027
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 66 deletions.
4 changes: 2 additions & 2 deletions src/chunked_stream.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* globals assert, MissingDataException, isInt, NetworkManager, PDFJS,
/* globals assert, MissingDataException, isInt, NetworkManager, Promise,
isEmptyObj */

'use strict';
Expand Down Expand Up @@ -233,7 +233,7 @@ var ChunkedStreamManager = (function ChunkedStreamManagerClosure() {
this.requestsByChunk = {};
this.callbacksByRequest = {};

this.loadedStream = new PDFJS.Promise();
this.loadedStream = new Promise();
}

ChunkedStreamManager.prototype = {
Expand Down
24 changes: 13 additions & 11 deletions src/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
isArrayBuffer, isDict, isName, isStream, isString, Lexer,
Linearization, NullStream, PartialEvaluator, shadow, Stream,
StreamsSequenceStream, stringToPDFString, TODO, Util, warn, XRef,
MissingDataException, PDFJS */
MissingDataException, Promise */

'use strict';

Expand Down Expand Up @@ -149,21 +149,22 @@ var Page = (function PageClosure() {
},
getOperatorList: function Page_getOperatorList(handler) {
var self = this;
var promise = new PDFJS.Promise();
var promise = new Promise();

var pageListPromise = new PDFJS.Promise();
var annotationListPromise = new PDFJS.Promise();
var pageListPromise = new Promise();
var annotationListPromise = new Promise();

var pdfManager = this.pdfManager;
var contentStreamPromise = pdfManager.ensure(this, 'getContentStream',
[]);
var resourcesPromise = pdfManager.ensure(this, 'resources');
var dataPromises = PDFJS.Promise.all(
var dataPromises = Promise.all(
[contentStreamPromise, resourcesPromise]);
dataPromises.then(function(data) {
var contentStream = data[0];
var resources = data[1];
var pe = self.pe = new PartialEvaluator(
pdfManager,
self.xref, handler, self.pageIndex,
'p' + self.pageIndex + '_');

Expand All @@ -180,7 +181,7 @@ var Page = (function PageClosure() {
pdfManager.ensure(this, 'getAnnotationsForDraw', []).then(
function(annotations) {
var annotationEvaluator = new PartialEvaluator(
self.xref, handler, self.pageIndex,
pdfManager, self.xref, handler, self.pageIndex,
'p' + self.pageIndex + '_annotation');

pdfManager.ensure(annotationEvaluator, 'getAnnotationsOperatorList',
Expand All @@ -194,7 +195,7 @@ var Page = (function PageClosure() {
}
);

PDFJS.Promise.all([pageListPromise, annotationListPromise]).then(
Promise.all([pageListPromise, annotationListPromise]).then(
function(datas) {
var pageData = datas[0];
var pageQueue = pageData.queue;
Expand All @@ -221,12 +222,12 @@ var Page = (function PageClosure() {

var self = this;

var textContentPromise = new PDFJS.Promise();
var textContentPromise = new Promise();

var pdfManager = this.pdfManager;
var contentStreamPromise = pdfManager.ensure(this, 'getContentStream',
[]);
var resourcesPromise = new PDFJS.Promise();
var resourcesPromise = new Promise();
pdfManager.ensure(this, 'resources').then(function(resources) {
pdfManager.ensure(self.xref, 'fetchIfRef', [resources]).then(
function(resources) {
Expand All @@ -235,12 +236,13 @@ var Page = (function PageClosure() {
);
});

var dataPromises = PDFJS.Promise.all([contentStreamPromise,
resourcesPromise]);
var dataPromises = Promise.all([contentStreamPromise,
resourcesPromise]);
dataPromises.then(function(data) {
var contentStream = data[0];
var resources = data[1];
var pe = new PartialEvaluator(
pdfManager,
self.xref, handler, self.pageIndex,
'p' + self.pageIndex + '_');

Expand Down
56 changes: 26 additions & 30 deletions src/evaluator.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@
IDENTITY_MATRIX, info, isArray, isCmd, isDict, isEOF, isName, isNum,
isStream, isString, JpegStream, Lexer, Metrics, Name, Parser,
Pattern, PDFImage, PDFJS, serifFonts, stdFontMap, symbolsFonts,
TilingPattern, TODO, warn, Util, MissingDataException, globalScope */
TilingPattern, TODO, warn, Util, MissingDataException, Promise */

'use strict';

var PartialEvaluator = (function PartialEvaluatorClosure() {
function PartialEvaluator(xref, handler, pageIndex, uniquePrefix) {
function PartialEvaluator(pdfManager, xref, handler, pageIndex,
uniquePrefix) {
this.state = new EvalState();
this.stateStack = [];

this.pdfManager = pdfManager;
this.xref = xref;
this.handler = handler;
this.pageIndex = pageIndex;
Expand Down Expand Up @@ -165,7 +167,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
buildFormXObject: function PartialEvaluator_buildFormXObject(resources,
xobj, smask) {
var self = this;
var promise = new PDFJS.Promise();
var promise = new Promise();
var fnArray = [];
var argsArray = [];

Expand Down Expand Up @@ -302,7 +304,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
fn, args, resources, pattern, patternDict) {
var self = this;
// Create an IR of the pattern code.
var promise = new PDFJS.Promise();
var promise = new Promise();
var opListPromise = this.getOperatorList(pattern,
patternDict.get('Resources') || resources);
opListPromise.then(function(data) {
Expand All @@ -324,7 +326,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
handleSetFont: function PartialEvaluator_handleSetFont(
resources, fontArgs, font) {

var promise = new PDFJS.Promise();
var promise = new Promise();
// TODO(mack): Not needed?
var fontName;
if (fontArgs) {
Expand Down Expand Up @@ -413,7 +415,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
gStateObj.push([key, value]);
break;
case 'Font':
var promise = new PDFJS.Promise();
var promise = new Promise();
self.handleSetFont(resources, null, value[0]).then(function(data) {
var gState = ['Font', data.loadedName, value[1]];
promise.resolve({
Expand Down Expand Up @@ -478,8 +480,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
}
}

var promise = new PDFJS.Promise();
PDFJS.Promise.all(promises).then(function(datas) {
var promise = new Promise();
Promise.all(promises).then(function(datas) {
for (var i = 0, n = datas.length; i < n; ++i) {
var data = datas[i];
var index = indices[i];
Expand All @@ -500,7 +502,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {

loadFont: function PartialEvaluator_loadFont(fontName, font, xref,
resources) {
var promise = new PDFJS.Promise();
var promise = new Promise();

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

Expand Down Expand Up @@ -551,7 +553,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
opListPromises.push(
this.getOperatorList(glyphStream, fontResources));
}
PDFJS.Promise.all(opListPromises).then(function(datas) {
Promise.all(opListPromises).then(function(datas) {
var charProcOperatorList = {};
var dependencies = {};
for (var i = 0, n = charProcKeys.length; i < n; ++i) {
Expand Down Expand Up @@ -606,7 +608,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// dictionary
var parser = new Parser(new Lexer(stream, OP_MAP), false, xref);

var promise = new PDFJS.Promise();
var promise = new Promise();
function parseCommands() {
try {
parser.restoreState();
Expand Down Expand Up @@ -770,7 +772,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
subQueuePromises.push(argsArray[i][0]);
}
}
PDFJS.Promise.all(subQueuePromises).then(function(datas) {
Promise.all(subQueuePromises).then(function(datas) {
// TODO(mack): Optimize by using repositioning elements
// in original queue rather than creating new queue

Expand Down Expand Up @@ -817,10 +819,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
throw e;
}

var streamManager = globalScope.pdfManager.streamManager;
streamManager.requestRange(e.begin, e.end, function() {
parseCommands();
});
self.pdfManager.requestRange(e.begin, e.end).then(parseCommands);
}
}
parser.saveState();
Expand All @@ -832,7 +831,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
getAnnotationsOperatorList:
function PartialEvaluator_getAnnotationsOperatorList(annotations,
dependency) {
var promise = new PDFJS.Promise();
var promise = new Promise();

// 12.5.5: Algorithm: Appearance streams
function getTransformMatrix(rect, bbox, matrix) {
Expand Down Expand Up @@ -878,13 +877,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
annotation.resources);
opListPromises.push(opListPromise);
} else {
var opListPromise = new PDFJS.Promise();
var opListPromise = new Promise();
opListPromise.resolve(createOperatorList());
opListPromises.push(opListPromise);
}
}

PDFJS.Promise.all(opListPromises).then(function(datas) {
Promise.all(opListPromises).then(function(datas) {
var fnArray = [];
var argsArray = [];
var dependencies = {};
Expand Down Expand Up @@ -923,10 +922,10 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
var MULTI_SPACE_FACTOR = 1.5;
var self = this;

var statePromise = new PDFJS.Promise();
var statePromise = new Promise();

function handleSetFont(fontName, fontRef, resources) {
var promise = new PDFJS.Promise();
var promise = new Promise();
self.loadFont(fontName, fontRef, self.xref, resources).then(
function(data) {
promise.resolve(data.font.translated);
Expand Down Expand Up @@ -969,7 +968,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
//.translated;
break;
case 'TJ':
var chunkPromise = new PDFJS.Promise();
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(items, font) {
var chunk = '';
Expand All @@ -994,7 +993,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
}.bind(null, args[0]));
break;
case 'Tj':
var chunkPromise = new PDFJS.Promise();
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(charCodes, font) {
var chunk = fontCharsToUnicode(charCodes, font);
Expand All @@ -1006,7 +1005,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
// For search, adding a extra white space for line breaks
// would be better here, but that causes too much spaces in
// the text-selection divs.
var chunkPromise = new PDFJS.Promise();
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(charCodes, font) {
var chunk = fontCharsToUnicode(charCodes, font);
Expand All @@ -1016,7 +1015,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
break;
case '"':
// Note comment in "'"
var chunkPromise = new PDFJS.Promise();
var chunkPromise = new Promise();
chunkPromises.push(chunkPromise);
fontPromise.then(function(charCodes, font) {
var chunk = fontCharsToUnicode(charCodes, font);
Expand Down Expand Up @@ -1081,7 +1080,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
}
} // while

PDFJS.Promise.all(chunkPromises).then(function(datas) {
Promise.all(chunkPromises).then(function(datas) {
var bidiTexts = [];
for (var i = 0, n = datas.length; i < n; ++i) {
var bidiText = datas[i];
Expand All @@ -1100,10 +1099,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
throw e;
}

var streamManager = globalScope.pdfManager.streamManager;
streamManager.requestRange(e.begin, e.end, function() {
parseCommands();
});
self.pdfManager.requestRange(e.begin, e.end).then(parseCommands);
}
}
parser.saveState();
Expand Down
8 changes: 4 additions & 4 deletions src/obj.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
/* globals assertWellFormed, bytesToString, CipherTransformFactory, error, info,
InvalidPDFException, isArray, isCmd, isDict, isInt, isName, isRef,
isStream, JpegStream, Lexer, log, Page, Parser, Promise, shadow,
stringToPDFString, stringToUTF8String, warn, isString, assert, PDFJS,
MissingDataException, XRefParseException, Stream */
stringToPDFString, stringToUTF8String, warn, isString, assert,
Promise, MissingDataException, XRefParseException, Stream */

'use strict';

Expand Down Expand Up @@ -339,7 +339,7 @@ var Catalog = (function CatalogClosure() {

getPage: function Catalog_getPage(pageIndex) {
if (!(pageIndex in this.pagePromises)) {
this.pagePromises[pageIndex] = new PDFJS.Promise();
this.pagePromises[pageIndex] = new Promise();
}
return this.pagePromises[pageIndex];
},
Expand Down Expand Up @@ -367,7 +367,7 @@ var Catalog = (function CatalogClosure() {
var page = new Page(this.pdfManager, this.xref, pageIndex, kid,
kidRef);
if (!(pageIndex in this.pagePromises)) {
this.pagePromises[pageIndex] = new PDFJS.Promise();
this.pagePromises[pageIndex] = new Promise();
}
this.pagePromises[pageIndex].resolve(page);

Expand Down
Loading

0 comments on commit 2ce0027

Please sign in to comment.