@@ -305,10 +305,11 @@ size_t StringBytes::Write(Isolate* isolate,
305305 input_view.length ());
306306 }
307307 } else {
308+ String::Value value (isolate, str);
308309 size_t written_len = buflen;
309310 auto result = simdutf::base64_to_binary_safe (
310- reinterpret_cast <const char16_t *>(input_view. data16 () ),
311- input_view .length (),
311+ reinterpret_cast <const char16_t *>(*value ),
312+ value .length (),
312313 buf,
313314 written_len,
314315 simdutf::base64_url);
@@ -318,8 +319,7 @@ size_t StringBytes::Write(Isolate* isolate,
318319 // The input does not follow the WHATWG forgiving-base64 specification
319320 // (adapted for base64url with + and / replaced by - and _).
320321 // https://infra.spec.whatwg.org/#forgiving-base64-decode
321- nbytes = nbytes::Base64Decode (
322- buf, buflen, input_view.data16 (), input_view.length ());
322+ nbytes = nbytes::Base64Decode (buf, buflen, *value, value.length ());
323323 }
324324 }
325325 break ;
@@ -344,19 +344,19 @@ size_t StringBytes::Write(Isolate* isolate,
344344 input_view.length ());
345345 }
346346 } else {
347+ String::Value value (isolate, str);
347348 size_t written_len = buflen;
348349 auto result = simdutf::base64_to_binary_safe (
349- reinterpret_cast <const char16_t *>(input_view. data16 () ),
350- input_view .length (),
350+ reinterpret_cast <const char16_t *>(*value ),
351+ value .length (),
351352 buf,
352353 written_len);
353354 if (result.error == simdutf::error_code::SUCCESS) {
354355 nbytes = written_len;
355356 } else {
356357 // The input does not follow the WHATWG base64 specification
357358 // https://infra.spec.whatwg.org/#forgiving-base64-decode
358- nbytes = nbytes::Base64Decode (
359- buf, buflen, input_view.data16 (), input_view.length ());
359+ nbytes = nbytes::Base64Decode (buf, buflen, *value, value.length ());
360360 }
361361 }
362362 break ;
@@ -369,8 +369,8 @@ size_t StringBytes::Write(Isolate* isolate,
369369 reinterpret_cast <const char *>(input_view.data8 ()),
370370 input_view.length ());
371371 } else {
372- String::ValueView value (isolate, str);
373- nbytes = nbytes::HexDecode (buf, buflen, value. data8 () , value.length ());
372+ String::Value value (isolate, str);
373+ nbytes = nbytes::HexDecode (buf, buflen, * value, value.length ());
374374 }
375375 break ;
376376
0 commit comments