11cb0ef41Sopenharmony_citest(() => { 21cb0ef41Sopenharmony_ci // Truncated sequences 31cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0])), "\uFFFD"); 41cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x9F])), "\uFFFD"); 51cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x9F, 0x92])), "\uFFFD"); 61cb0ef41Sopenharmony_ci 71cb0ef41Sopenharmony_ci // Errors near end-of-queue 81cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x9F, 0x41])), "\uFFFDA"); 91cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x41, 0x42])), "\uFFFDAB"); 101cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x41, 0xF0])), "\uFFFDA\uFFFD"); 111cb0ef41Sopenharmony_ci assert_equals(new TextDecoder().decode(new Uint8Array([0xF0, 0x8F, 0x92])), "\uFFFD\uFFFD\uFFFD"); 121cb0ef41Sopenharmony_ci}, "TextDecoder end-of-queue handling"); 131cb0ef41Sopenharmony_ci 141cb0ef41Sopenharmony_citest(() => { 151cb0ef41Sopenharmony_ci const decoder = new TextDecoder(); 161cb0ef41Sopenharmony_ci decoder.decode(new Uint8Array([0xF0]), { stream: true }); 171cb0ef41Sopenharmony_ci assert_equals(decoder.decode(), "\uFFFD"); 181cb0ef41Sopenharmony_ci 191cb0ef41Sopenharmony_ci decoder.decode(new Uint8Array([0xF0]), { stream: true }); 201cb0ef41Sopenharmony_ci decoder.decode(new Uint8Array([0x9F]), { stream: true }); 211cb0ef41Sopenharmony_ci assert_equals(decoder.decode(), "\uFFFD"); 221cb0ef41Sopenharmony_ci 231cb0ef41Sopenharmony_ci decoder.decode(new Uint8Array([0xF0, 0x9F]), { stream: true }); 241cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0x92])), "\uFFFD"); 251cb0ef41Sopenharmony_ci 261cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0xF0, 0x9F]), { stream: true }), ""); 271cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0x41]), { stream: true }), "\uFFFDA"); 281cb0ef41Sopenharmony_ci assert_equals(decoder.decode(), ""); 291cb0ef41Sopenharmony_ci 301cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0xF0, 0x41, 0x42]), { stream: true }), "\uFFFDAB"); 311cb0ef41Sopenharmony_ci assert_equals(decoder.decode(), ""); 321cb0ef41Sopenharmony_ci 331cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0xF0, 0x41, 0xF0]), { stream: true }), "\uFFFDA"); 341cb0ef41Sopenharmony_ci assert_equals(decoder.decode(), "\uFFFD"); 351cb0ef41Sopenharmony_ci 361cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0xF0]), { stream: true }), ""); 371cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0x8F]), { stream: true }), "\uFFFD\uFFFD"); 381cb0ef41Sopenharmony_ci assert_equals(decoder.decode(new Uint8Array([0x92]), { stream: true }), "\uFFFD"); 391cb0ef41Sopenharmony_ci assert_equals(decoder.decode(), ""); 401cb0ef41Sopenharmony_ci}, "TextDecoder end-of-queue handling using stream: true"); 41