@@ -32,7 +32,7 @@ function woff_to_otf(buffer) {
32
32
for ( let n = 0 ; n < 64 ; n ++ ) {
33
33
if ( Math . pow ( 2 , n ) > numTables )
34
34
break ;
35
- max . splice ( 0 , Infinity , n , Math . pow ( 2 , n ) ) ;
35
+ max . splice ( 0 , Infinity , n , 2 ** n ) ;
36
36
}
37
37
const searchRange = max [ 1 ] * 16
38
38
, entrySelector = max [ 0 ]
@@ -65,9 +65,9 @@ function woff_to_otf(buffer) {
65
65
// });
66
66
// p += 20;
67
67
tableEntries [ i ] . checksum = parse . getULong ( data , pointerBase + 16 ) ;
68
- // offset += 4 * 4;
68
+ offset += 4 * 4 ;
69
69
}
70
- offset += numTables * 16 ;
70
+ // offset += numTables * 16;
71
71
72
72
for ( let i = 0 ; i < numTables ; i ++ ) {
73
73
const tableEntry = tableEntries [ i ] ;
@@ -82,20 +82,18 @@ function woff_to_otf(buffer) {
82
82
if ( ( offset % 4 ) !== 0 )
83
83
offset += 4 - ( offset % 4 ) ;
84
84
}
85
- const buffers = [ ]
86
- , initialData = new Uint8Array ( out . length )
87
- ;
88
- for ( let i = 0 , l = out . length ; i < l ; i ++ )
89
- initialData [ i ] = out [ i ] ;
90
- buffers . push ( initialData ) ;
91
-
85
+ // const initialData = new Uint8Array(out.length)
86
+ // , buffers = [initialData]
87
+ // ;
88
+ // for (let i=0,l=out.length; i<l; i++)
89
+ // initialData[i] = out[i];
92
90
93
91
for ( let i = 0 ; i < numTables ; i ++ ) {
94
92
const tableEntry = tableEntries [ i ]
95
93
, table = uncompressTable ( data , tableEntry ) // => {data: view, offset: 0};
96
94
// FIXME: we should rather just append the bytes to a new buffer
97
95
// no need to parse into an array ...
98
- // , p = new parse.Parser(table.data, table.offset)
96
+ , p = new parse . Parser ( table . data , table . offset )
99
97
;
100
98
101
99
@@ -104,26 +102,26 @@ function woff_to_otf(buffer) {
104
102
? 4 - ( offset % 4 )
105
103
: 0
106
104
;
107
- // out .push(
108
- // ...p.parseByteList( tableEntry.length)
109
- // , ...Array(padding).fill(0) // new ArrayBuffer(padding)
110
- // );
111
- buffers . push (
112
- new DataView ( table . data . buffer , table . offset , tableEntry . length )
113
- , new ArrayBuffer ( padding )
105
+ // buffers .push(
106
+ // new DataView(table.data.buffer, table.offset, tableEntry.length)
107
+ // , new ArrayBuffer(padding)
108
+ // );
109
+ out . push (
110
+ ... p . parseByteList ( tableEntry . length )
111
+ , ... Array ( padding ) . fill ( 0 ) // new ArrayBuffer(padding)
114
112
) ;
115
113
}
116
114
117
- const result = new Uint8Array ( buffers . reduce ( ( accum , buffer ) => accum + buffer . byteLength , 0 ) ) ;
118
- buffers . reduce ( ( offset , buffer ) => {
119
- result . set ( buffer , offset ) ;
120
- return offset + buffer . byteLength ;
121
- } , 0 ) ;
122
- return result . buffer ;
123
- // const outArray = new Uint8Array(out.length);
124
- // for (let i=0,l=out.length; i<l; i++)
125
- // outArray[i] = out[i];
126
- // return outArray.buffer;
115
+ // const result = new Uint8Array(buffers.reduce((accum, buffer)=>accum+buffer.byteLength, 0));
116
+ // buffers.reduce((offset, buffer)=>{
117
+ // result.set(buffer, offset)
118
+ // return offset + buffer.byteLength
119
+ // }, 0)
120
+ // return result.buffer;
121
+ const outArray = new Uint8Array ( out . length ) ;
122
+ for ( let i = 0 , l = out . length ; i < l ; i ++ )
123
+ outArray [ i ] = out [ i ] ;
124
+ return outArray . buffer ;
127
125
}
128
126
129
127
export {
0 commit comments