summaryrefslogtreecommitdiffstats
path: root/dom/webidl/TextEncoder.webidl
diff options
context:
space:
mode:
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..84a2998c91
--- /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]
+ 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;