diff options
Diffstat (limited to 'dom/webidl/TextEncoder.webidl')
-rw-r--r-- | dom/webidl/TextEncoder.webidl | 48 |
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; |