1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 03:07:44 +00:00

LibWeb: Implement TextEncoder.prototype.encoding

This commit is contained in:
Linus Groh 2021-12-12 18:06:07 +00:00 committed by Andreas Kling
parent f37d00c07b
commit f8387dea26
4 changed files with 23 additions and 1 deletions

View file

@ -4,6 +4,7 @@
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <AK/FlyString.h>
#include <LibJS/Runtime/TypedArray.h>
#include <LibWeb/Bindings/Wrapper.h>
#include <LibWeb/Encoding/TextEncoder.h>
@ -33,4 +34,11 @@ JS::Uint8Array* TextEncoder::encode(String const& input) const
return typed_array;
}
// https://encoding.spec.whatwg.org/#dom-textencoder-encoding
FlyString const& TextEncoder::encoding()
{
static FlyString encoding = "utf-8"sv;
return encoding;
}
}

View file

@ -34,6 +34,8 @@ public:
JS::Uint8Array* encode(String const& input) const;
static FlyString const& encoding();
protected:
// https://encoding.spec.whatwg.org/#dom-textencoder
TextEncoder() = default;

View file

@ -5,5 +5,5 @@ interface TextEncoder {
[NewObject] Uint8Array encode(optional USVString input = "");
// TextEncoderEncodeIntoResult encodeInto(USVString source, [AllowShared] Uint8Array destination);
// readonly attribute DOMString encoding;
readonly attribute DOMString encoding;
};

View file

@ -0,0 +1,12 @@
describe("normal behavior", () => {
loadLocalPage("/res/html/misc/blank.html");
afterInitialPageLoad(page => {
test("Basic functionality", () => {
const textEncoder = new page.TextEncoder();
expect(textEncoder.encoding).toBe("utf-8");
});
});
waitForPageToLoad();
});