[api-minor] Fix completely broken getStats method by returning stats in Objects, rather than in Arrays (PR 11029 follow-up)
				
					
				
			With the changes to the `StreamType`/`FontType` "enums" in PR 11029, one unfortunate result is that `getStats` now *always* returns empty Arrays. Something that everyone, myself included, apparently missed is that you obviously cannot index an Array with Strings :-) I wrongly assumed that the unit-tests would catch any bugs, but they apparently suffered from the same issue as the code in `src/core/`. Another possible option could perhaps be to use `Set`s, rather than objects, but that will require larger changes since `LoopbackPort` (in `src/display/api.js`) doesn't support them.
This commit is contained in:
		
							parent
							
								
									9c8fe3142a
								
							
						
					
					
						commit
						0276385e6e
					
				@ -1046,8 +1046,8 @@ var XRef = (function XRefClosure() {
 | 
				
			|||||||
    // prepare the XRef cache
 | 
					    // prepare the XRef cache
 | 
				
			||||||
    this.cache = [];
 | 
					    this.cache = [];
 | 
				
			||||||
    this.stats = {
 | 
					    this.stats = {
 | 
				
			||||||
      streamTypes: [],
 | 
					      streamTypes: Object.create(null),
 | 
				
			||||||
      fontTypes: [],
 | 
					      fontTypes: Object.create(null),
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -205,10 +205,10 @@ function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @typedef {Object} PDFDocumentStats
 | 
					 * @typedef {Object} PDFDocumentStats
 | 
				
			||||||
 * @property {Array} streamTypes - Used stream types in the document (an item
 | 
					 * @property {Object} streamTypes - Used stream types in the document (an item
 | 
				
			||||||
 *   is set to true if specific stream ID was used in the document).
 | 
					 *   is set to true if specific stream ID was used in the document).
 | 
				
			||||||
 * @property {Array} fontTypes - Used font type in the document (an item is set
 | 
					 * @property {Object} fontTypes - Used font types in the document (an item
 | 
				
			||||||
 *   to true if specific font ID was used in the document).
 | 
					 *   is set to true if specific font ID was used in the document).
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 | 
				
			|||||||
@ -926,7 +926,7 @@ describe('api', function() {
 | 
				
			|||||||
    it('gets document stats', function(done) {
 | 
					    it('gets document stats', function(done) {
 | 
				
			||||||
      var promise = doc.getStats();
 | 
					      var promise = doc.getStats();
 | 
				
			||||||
      promise.then(function (stats) {
 | 
					      promise.then(function (stats) {
 | 
				
			||||||
        expect(stats).toEqual({ streamTypes: [], fontTypes: [], });
 | 
					        expect(stats).toEqual({ streamTypes: {}, fontTypes: {}, });
 | 
				
			||||||
        done();
 | 
					        done();
 | 
				
			||||||
      }).catch(done.fail);
 | 
					      }).catch(done.fail);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
@ -1293,9 +1293,9 @@ describe('api', function() {
 | 
				
			|||||||
      var promise = page.getOperatorList().then(function () {
 | 
					      var promise = page.getOperatorList().then(function () {
 | 
				
			||||||
        return pdfDocument.getStats();
 | 
					        return pdfDocument.getStats();
 | 
				
			||||||
      });
 | 
					      });
 | 
				
			||||||
      var expectedStreamTypes = [];
 | 
					      var expectedStreamTypes = {};
 | 
				
			||||||
      expectedStreamTypes[StreamType.FLATE] = true;
 | 
					      expectedStreamTypes[StreamType.FLATE] = true;
 | 
				
			||||||
      var expectedFontTypes = [];
 | 
					      var expectedFontTypes = {};
 | 
				
			||||||
      expectedFontTypes[FontType.TYPE1] = true;
 | 
					      expectedFontTypes[FontType.TYPE1] = true;
 | 
				
			||||||
      expectedFontTypes[FontType.CIDFONTTYPE2] = true;
 | 
					      expectedFontTypes[FontType.CIDFONTTYPE2] = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user