summaryrefslogtreecommitdiffstats
path: root/dom/webidl/TextEncoder.webidl
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /dom/webidl/TextEncoder.webidl
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/webidl/TextEncoder.webidl')
-rw-r--r--dom/webidl/TextEncoder.webidl48
1 files changed, 48 insertions, 0 deletions
diff --git a/dom/webidl/TextEncoder.webidl b/dom/webidl/TextEncoder.webidl
new file mode 100644
index 0000000000..120d4693d1
--- /dev/null
+++ b/dom/webidl/TextEncoder.webidl
@@ -0,0 +1,48 @@
+/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * The origin of this IDL file is
+ * http://encoding.spec.whatwg.org/#interface-textencoder
+ */
+
+interface mixin TextEncoderCommon {
+ /*
+ * This is DOMString in the spec, but the value is always ASCII
+ * and short. By declaring this as ByteString, we get the same
+ * end result (storage as inline Latin1 string in SpiderMonkey)
+ * with fewer conversions.
+ */
+ [Constant]
+ readonly attribute ByteString encoding;
+};
+
+dictionary TextEncoderEncodeIntoResult {
+ unsigned long long read;
+ unsigned long long written;
+};
+
+[Exposed=(Window,Worker)]
+interface TextEncoder {
+ constructor();
+
+ /*
+ * This is spec-wise USVString but marking it as UTF8String as an
+ * optimization. (The SpiderMonkey-provided conversion to UTF-8 takes care of
+ * replacing lone surrogates with the REPLACEMENT CHARACTER, so the
+ * observable behavior of USVString is matched.)
+ */
+ [NewObject, Throws]
+ Uint8Array encode(optional UTF8String input = "");
+
+ /*
+ * The same comment about UTF8String as above applies here with JSString.
+ *
+ * We use JSString because we don't want to encode the full string, just as
+ * much as the capacity of the Uint8Array.
+ */
+ [CanOOM]
+ TextEncoderEncodeIntoResult encodeInto(JSString source, Uint8Array destination);
+};
+TextEncoder includes TextEncoderCommon;