diff options
Diffstat (limited to 'ext/web/05_base64.js')
-rw-r--r-- | ext/web/05_base64.js | 110 |
1 files changed, 52 insertions, 58 deletions
diff --git a/ext/web/05_base64.js b/ext/web/05_base64.js index dac366ca0..9f11ec97c 100644 --- a/ext/web/05_base64.js +++ b/ext/web/05_base64.js @@ -6,68 +6,62 @@ /// <reference path="../web/internal.d.ts" /> /// <reference lib="esnext" /> -"use strict"; +const core = globalThis.Deno.core; +const ops = core.ops; +import * as webidl from "internal:ext/webidl/00_webidl.js"; +import DOMException from "internal:ext/web/01_dom_exception.js"; +const primordials = globalThis.__bootstrap.primordials; +const { + ObjectPrototypeIsPrototypeOf, + TypeErrorPrototype, +} = primordials; -((window) => { - const core = Deno.core; - const ops = core.ops; - const webidl = window.__bootstrap.webidl; - const { DOMException } = window.__bootstrap.domException; - const { - ObjectPrototypeIsPrototypeOf, - TypeErrorPrototype, - } = window.__bootstrap.primordials; - - /** - * @param {string} data - * @returns {string} - */ - function atob(data) { - const prefix = "Failed to execute 'atob'"; - webidl.requiredArguments(arguments.length, 1, { prefix }); - data = webidl.converters.DOMString(data, { - prefix, - context: "Argument 1", - }); - try { - return ops.op_base64_atob(data); - } catch (e) { - if (ObjectPrototypeIsPrototypeOf(TypeErrorPrototype, e)) { - throw new DOMException( - "Failed to decode base64: invalid character", - "InvalidCharacterError", - ); - } - throw e; +/** + * @param {string} data + * @returns {string} + */ +function atob(data) { + const prefix = "Failed to execute 'atob'"; + webidl.requiredArguments(arguments.length, 1, { prefix }); + data = webidl.converters.DOMString(data, { + prefix, + context: "Argument 1", + }); + try { + return ops.op_base64_atob(data); + } catch (e) { + if (ObjectPrototypeIsPrototypeOf(TypeErrorPrototype, e)) { + throw new DOMException( + "Failed to decode base64: invalid character", + "InvalidCharacterError", + ); } + throw e; } +} - /** - * @param {string} data - * @returns {string} - */ - function btoa(data) { - const prefix = "Failed to execute 'btoa'"; - webidl.requiredArguments(arguments.length, 1, { prefix }); - data = webidl.converters.DOMString(data, { - prefix, - context: "Argument 1", - }); - try { - return ops.op_base64_btoa(data); - } catch (e) { - if (ObjectPrototypeIsPrototypeOf(TypeErrorPrototype, e)) { - throw new DOMException( - "The string to be encoded contains characters outside of the Latin1 range.", - "InvalidCharacterError", - ); - } - throw e; +/** + * @param {string} data + * @returns {string} + */ +function btoa(data) { + const prefix = "Failed to execute 'btoa'"; + webidl.requiredArguments(arguments.length, 1, { prefix }); + data = webidl.converters.DOMString(data, { + prefix, + context: "Argument 1", + }); + try { + return ops.op_base64_btoa(data); + } catch (e) { + if (ObjectPrototypeIsPrototypeOf(TypeErrorPrototype, e)) { + throw new DOMException( + "The string to be encoded contains characters outside of the Latin1 range.", + "InvalidCharacterError", + ); } + throw e; } +} - window.__bootstrap.base64 = { - atob, - btoa, - }; -})(globalThis); +export { atob, btoa }; |