@@ -188,23 +188,11 @@ var Jbig2Image = (function Jbig2ImageClosure() {
188
188
DecodingContext .prototype = {
189
189
get decoder () {
190
190
var decoder = new ArithmeticDecoder (this .data , this .start , this .end );
191
- Object .defineProperty (this , 'decoder' , {
192
- value : decoder ,
193
- writable : false ,
194
- configurable : true ,
195
- enumerable : true
196
- });
197
- return decoder ;
191
+ return shadow (this , 'decoder' , decoder );
198
192
},
199
193
get contextCache () {
200
194
var cache = new ContextCache ();
201
- Object .defineProperty (this , 'contextCache' , {
202
- value : cache ,
203
- writable : false ,
204
- configurable : true ,
205
- enumerable : true
206
- });
207
- return cache ;
195
+ return shadow (this , 'contextCache' , cache );
208
196
}
209
197
};
210
198
@@ -374,7 +362,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
374
362
function decodeBitmap (mmr , width , height , templateIndex , prediction , skip , at ,
375
363
decodingContext ) {
376
364
if (mmr )
377
- throw ' MMR encoding is not supported' ;
365
+ error ( 'JBIG2 error: MMR encoding is not supported') ;
378
366
379
367
var useskip = !!skip ;
380
368
var template = CodingTemplates [templateIndex ].concat (at );
@@ -476,7 +464,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
476
464
bitmap .push (row );
477
465
for (var j = 0 ; j < width ; j ++) {
478
466
if (ltp )
479
- throw ' prediction is not supported' ;
467
+ error ( 'JBIG2 error: prediction is not supported') ;
480
468
481
469
var contextLabel = 0 ;
482
470
for (var k = 0 ; k < codingTemplateLength ; k ++) {
@@ -512,7 +500,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
512
500
refinementTemplateIndex , refinementAt ,
513
501
decodingContext ) {
514
502
if (huffman )
515
- throw ' huffman is not supported' ;
503
+ error ( 'JBIG2 error: huffman is not supported') ;
516
504
517
505
var newSymbols = [];
518
506
var currentHeight = 0 ;
@@ -537,7 +525,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
537
525
// 6.5.8.2 Refinement/aggregate-coded symbol bitmap
538
526
var numberOfInstances = decodeInteger (contextCache , 'IAAI' , decoder );
539
527
if (numberOfInstances > 1 )
540
- throw ' number of instances > 1 is not supported' ;
528
+ error ( 'JBIG2 error: number of instances > 1 is not supported') ;
541
529
var symbolId = decodeIAID (contextCache , decoder , symbolCodeLength );
542
530
var rdx = decodeInteger (contextCache , 'IARDX' , decoder ); // 6.4.11.3
543
531
var rdy = decodeInteger (contextCache , 'IARDY' , decoder ); // 6.4.11.4
@@ -578,7 +566,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
578
566
refinementTemplateIndex , refinementAt ,
579
567
decodingContext ) {
580
568
if (huffman )
581
- throw ' huffman is not supported' ;
569
+ error ( 'JBIG2 error: huffman is not supported') ;
582
570
583
571
// Prepare bitmap
584
572
var bitmap = [];
@@ -595,9 +583,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
595
583
var contextCache = decodingContext .contextCache ;
596
584
597
585
if (transposed )
598
- throw 'transposed!=0 is not supported' ;
599
- if (combinationOperator != 0 && combinationOperator != 2 )
600
- throw 'combinationOperator==' + combinationOperator + ' is not supported' ;
586
+ error ('JBIG2 error: transposed is not supported' );
601
587
602
588
var stripT = -decodeInteger (contextCache , 'IADT' , decoder ); // 6.4.6
603
589
var firstS = 0 ;
@@ -646,6 +632,9 @@ var Jbig2Image = (function Jbig2ImageClosure() {
646
632
for (var s2 = 0 ; s2 < symbolWidth ; s2 ++)
647
633
row [offsetS + s2 ] ^= symbolRow [s2 ];
648
634
break ;
635
+ default :
636
+ error ('JBIG2 error: operator ' + combinationOperator +
637
+ ' is not supported' );
649
638
}
650
639
}
651
640
@@ -667,7 +656,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
667
656
var flags = data [start + 4 ];
668
657
var segmentType = flags & 0x3F ;
669
658
if (!SegmentTypes [segmentType ])
670
- throw 'Invalid segment type: ' + segmentType ;
659
+ error ( 'JBIG2 error: invalid segment type: ' + segmentType ) ;
671
660
segmentHeader .type = segmentType ;
672
661
segmentHeader .typeName = SegmentTypes [segmentType ];
673
662
segmentHeader .deferredNonRetain = !!(flags & 0x80 );
@@ -685,7 +674,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
685
674
retainBits .push (data [position ++]);
686
675
}
687
676
} else if (referredFlags == 5 || referredFlags == 6 )
688
- throw 'Invalid referred-to flags' ;
677
+ error ( 'JBIG2 error: invalid referred-to flags') ;
689
678
segmentHeader .retainBits = retainBits ;
690
679
var referredToSegmentNumberSize = segmentHeader .number <= 256 ? 1 :
691
680
segmentHeader .number <= 65536 ? 2 : 4 ;
@@ -706,7 +695,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
706
695
}
707
696
segmentHeader .length = readUint32 (data , position );
708
697
if (segmentHeader .length == 0xFFFFFFFF )
709
- throw 'Unsupported unknown segment length' ;
698
+ error ( 'JBIG2 error: unknown segment length is not supported' ) ;
710
699
position += 4 ;
711
700
segmentHeader .headerEnd = position ;
712
701
return segmentHeader ;
@@ -847,7 +836,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
847
836
position += 4 ;
848
837
// TODO 7.4.3.1.7 Symbol ID Huffman table decoding
849
838
if (textRegion .huffman )
850
- throw ' huffman is not supported' ;
839
+ error ( 'JBIG2 error: huffman is not supported') ;
851
840
args = [textRegion , header .referredTo , data , position , end ];
852
841
break ;
853
842
case 38 : // ImmediateGenericRegion
@@ -896,8 +885,8 @@ var Jbig2Image = (function Jbig2ImageClosure() {
896
885
case 51 : // EndOfFile
897
886
break ;
898
887
default :
899
- throw 'Segment type is not implemented: ' +
900
- header .type + '/' + header . typeName ;
888
+ error ( 'JBIG2 error: segment type ' + header . typeName + '( ' +
889
+ header .type + ') is not implemented' ) ;
901
890
}
902
891
if (header .typeName in visitor )
903
892
visitor [header .typeName ].apply (visitor , args );
@@ -914,7 +903,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
914
903
data [position + 2 ] != 0x42 || data [position + 3 ] != 0x32 ||
915
904
data [position + 4 ] != 0x0D || data [position + 5 ] != 0x0A ||
916
905
data [position + 6 ] != 0x1A || data [position + 7 ] != 0x0A )
917
- throw 'JBIG2 invalid header' ;
906
+ error ( 'JBIG2 error: invalid header' ) ;
918
907
var header = {};
919
908
position += 8 ;
920
909
var flags = data [position ++];
@@ -924,6 +913,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
924
913
position += 4 ;
925
914
}
926
915
var segments = readSegments (header , data , position , end );
916
+ error ('Not implemented' );
927
917
// processSegments(segments, new SimpleSegmentVisitor());
928
918
}
929
919
@@ -953,13 +943,13 @@ var Jbig2Image = (function Jbig2ImageClosure() {
953
943
var pageInfo = this .currentPageInfo ;
954
944
var width = regionInfo .width , height = regionInfo .height ;
955
945
var rowSize = (pageInfo .width + 7 ) >> 3 ;
956
- var operator = pageInfo .combinationOperatorOverride ?
946
+ var combinationOperator = pageInfo .combinationOperatorOverride ?
957
947
regionInfo .combinationOperator : pageInfo .combinationOperator ;
958
948
var buffer = this .buffer ;
959
949
for (var i = 0 ; i < height ; i ++) {
960
950
var mask = 128 >> (regionInfo .x & 7 );
961
951
var offset = (i + regionInfo .y ) * rowSize + (regionInfo .x >> 3 );
962
- switch (operator ) {
952
+ switch (combinationOperator ) {
963
953
case 0 : // OR
964
954
for (var j = 0 ; j < width ; j ++) {
965
955
buffer [offset ] |= bitmap [i ][j ] ? mask : 0 ;
@@ -981,7 +971,8 @@ var Jbig2Image = (function Jbig2ImageClosure() {
981
971
}
982
972
break ;
983
973
default :
984
- throw 'Unimplemented operator: ' + operator ;
974
+ error ('JBIG2 error: operator ' + combinationOperator +
975
+ ' is not supported' );
985
976
}
986
977
}
987
978
},
@@ -1001,7 +992,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
1001
992
data , start , end ) {
1002
993
var huffmanTables ;
1003
994
if (dictionary .huffman )
1004
- throw ' huffman is not supported' ;
995
+ error ( 'JBIG2 error: huffman is not supported') ;
1005
996
1006
997
// Combines exported symbols from all referred segments
1007
998
var symbols = this .symbols ;
0 commit comments