fix(ext/web): make TextDecoderResource use cppgc (#24888)

Fixes https://github.com/denoland/deno/issues/24878
This commit is contained in:
Divy Srivastava 2024-08-06 00:40:17 -07:00 committed by GitHub
parent ba40347a35
commit 696d528641
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 29 deletions

View file

@ -56,8 +56,8 @@ class TextDecoder {
/** @type {boolean} */
#utf8SinglePass;
/** @type {number | null} */
#rid = null;
/** @type {object | null} */
#handle = null;
/**
* @param {string} label
@ -159,7 +159,7 @@ class TextDecoder {
}
// Fast path for single pass encoding.
if (!stream && this.#rid === null) {
if (!stream && this.#handle === null) {
// Fast path for utf8 single pass encoding.
if (this.#utf8SinglePass) {
return op_encoding_decode_utf8(input, this.#ignoreBOM);
@ -173,18 +173,17 @@ class TextDecoder {
);
}
if (this.#rid === null) {
this.#rid = op_encoding_new_decoder(
if (this.#handle === null) {
this.#handle = op_encoding_new_decoder(
this.#encoding,
this.#fatal,
this.#ignoreBOM,
);
}
return op_encoding_decode(input, this.#rid, stream);
return op_encoding_decode(input, this.#handle, stream);
} finally {
if (!stream && this.#rid !== null) {
core.close(this.#rid);
this.#rid = null;
if (!stream && this.#handle !== null) {
this.#handle = null;
}
}
}