@@ -104,9 +104,9 @@ pub(crate) fn create_base64_proxy(_realm: &QuickJsRealmAdapter) -> JsProxy {
104104 let s = args[ 0 ] . to_string ( ) ?;
105105 realm. create_resolving_promise (
106106 move || {
107- let engine = base64:: engine:: general_purpose:: STANDARD ;
107+ let engine = base64:: engine:: general_purpose:: STANDARD_NO_PAD ;
108108 let decoded = engine
109- . decode ( s)
109+ . decode ( s. trim_end_matches ( '=' ) )
110110 . map_err ( |e| JsError :: new_string ( format ! ( "{e}" ) ) ) ?;
111111 Ok ( decoded)
112112 } ,
@@ -126,9 +126,9 @@ pub(crate) fn create_base64_proxy(_realm: &QuickJsRealmAdapter) -> JsProxy {
126126 let s = args[ 0 ] . to_string ( ) ?;
127127 realm. create_resolving_promise (
128128 move || {
129- let engine = base64:: engine:: general_purpose:: STANDARD ;
129+ let engine = base64:: engine:: general_purpose:: STANDARD_NO_PAD ;
130130 let decoded = engine
131- . decode ( s)
131+ . decode ( s. trim_end_matches ( '=' ) )
132132 . map_err ( |e| JsError :: new_string ( format ! ( "{e}" ) ) ) ?;
133133 let s = String :: from_utf8_lossy ( & decoded) ;
134134 Ok ( s. to_string ( ) )
@@ -147,9 +147,9 @@ pub(crate) fn create_base64_proxy(_realm: &QuickJsRealmAdapter) -> JsProxy {
147147 let s = args[ 0 ] . to_string ( ) ?;
148148 realm. create_resolving_promise (
149149 move || {
150- let engine = base64:: engine:: general_purpose:: STANDARD ;
150+ let engine = base64:: engine:: general_purpose:: STANDARD_NO_PAD ;
151151 let decoded = engine
152- . decode ( s)
152+ . decode ( s. trim_end_matches ( '=' ) )
153153 . map_err ( |e| JsError :: new_string ( format ! ( "{e}" ) ) ) ?;
154154 let s = String :: from_utf8_lossy ( & decoded) ;
155155 Ok ( s. to_string ( ) )
@@ -168,9 +168,9 @@ pub(crate) fn create_base64_proxy(_realm: &QuickJsRealmAdapter) -> JsProxy {
168168 Err ( JsError :: new_str ( "decode expects a single string arg" ) )
169169 } else {
170170 let s = args[ 0 ] . to_str ( ) ?;
171- let engine = base64:: engine:: general_purpose:: STANDARD ;
171+ let engine = base64:: engine:: general_purpose:: STANDARD_NO_PAD ;
172172 let decoded = engine
173- . decode ( s)
173+ . decode ( s. trim_end_matches ( '=' ) )
174174 . map_err ( |e| JsError :: new_string ( format ! ( "{e}" ) ) ) ?;
175175 //
176176 realm. create_typed_array_uint8 ( decoded)
0 commit comments