1
1
const url = new URL ( 'avif.wasm' , import . meta. url ) ;
2
+ let wasm ;
2
3
const imports = {
3
4
wbg : {
4
- __wbg_log_12edb8942696c207 : ( p , n ) => {
5
+ __wbg_log_aa11a1e72555df69 : ( p , n ) => {
5
6
console . log ( new TextDecoder ( ) . decode ( new Uint8Array ( wasm . memory . buffer ) . subarray ( p , p + n ) ) ) ;
7
+ } ,
8
+ __wbindgen_init_externref_table :function ( ) {
9
+ const table = wasm . __wbindgen_export_0 ;
10
+ const offset = table . grow ( 4 ) ;
11
+ table . set ( 0 ) ;
12
+ table . set ( offset ) ;
13
+ table . set ( offset + 1 , null ) ;
14
+ table . set ( offset + 2 , true ) ;
15
+ table . set ( offset + 3 , false ) ;
6
16
}
7
17
}
8
18
} ;
9
- const { instance : { exports : wasm } } = await WebAssembly . instantiateStreaming ( await fetch ( url , { cache : 'force-cache' } ) , imports ) ;
19
+ const { instance} = await WebAssembly . instantiateStreaming ( await fetch ( url , { cache : 'force-cache' } ) , imports ) ;
20
+ wasm = instance . exports ;
10
21
const malloc = wasm . __wbindgen_malloc ;
11
22
const free = wasm . __wbindgen_free ;
12
- const pointer = wasm . __wbindgen_add_to_stack_pointer ;
13
23
/**
14
24
* Encodes the supplied ImageData rgba array.
15
25
* @param {Uint8Array } bytes
@@ -22,19 +32,11 @@ const pointer=wasm.__wbindgen_add_to_stack_pointer;
22
32
const avif = ( bytes , width , height , quality = 50 , speed = 6 ) => {
23
33
const n1 = bytes . length ;
24
34
const p1 = malloc ( n1 , 1 ) ;
25
- const r = pointer ( - 16 ) ;
26
- try {
27
- new Uint8Array ( wasm . memory . buffer ) . set ( bytes , p1 ) ;
28
- wasm . avif_from_imagedata ( r , p1 , n1 , width , height , quality , speed ) ;
29
- const arr = new Int32Array ( wasm . memory . buffer ) ;
30
- const p2 = arr [ r / 4 ] ;
31
- const n2 = arr [ r / 4 + 1 ] ;
32
- const res = new Uint8Array ( wasm . memory . buffer ) . subarray ( p2 , p2 + n2 ) . slice ( ) ;
33
- free ( p2 , n2 ) ;
34
- return res ;
35
- } finally {
36
- pointer ( 16 )
37
- }
35
+ new Uint8Array ( wasm . memory . buffer ) . set ( bytes , p1 ) ;
36
+ const [ p2 , n2 ] = wasm . avif_from_imagedata ( p1 , n1 , width , height , quality , speed ) ;
37
+ const res = new Uint8Array ( wasm . memory . buffer ) . subarray ( p2 , p2 + n2 ) . slice ( ) ;
38
+ free ( p2 , n2 ) ;
39
+ return res ;
38
40
} ;
39
41
export { avif } ;
40
42
export default avif ;
0 commit comments