diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-11-05 17:16:09 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-11-05 17:16:09 +0800 |
| commit | d1d9f00b1bd660842addf5e6b1d1b64c852a9eea (patch) | |
| tree | 60fb37ae73a1109d95301de5ec9b61b5726a4b61 /node_modules/@webassemblyjs/utf8 | |
| parent | 7c85166c4cbdd862fc4252007d2df5befcbc2a58 (diff) | |
added hover prefixer
Diffstat (limited to 'node_modules/@webassemblyjs/utf8')
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/lib/decoder.js | 74 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/lib/encoder.js | 67 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/lib/index.js | 21 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/package.json | 19 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/src/decoder.js | 67 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/src/encoder.js | 44 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/src/index.js | 4 | ||||
| -rw-r--r-- | node_modules/@webassemblyjs/utf8/test/index.js | 13 |
8 files changed, 309 insertions, 0 deletions
diff --git a/node_modules/@webassemblyjs/utf8/lib/decoder.js b/node_modules/@webassemblyjs/utf8/lib/decoder.js new file mode 100644 index 00000000..305a2b6e --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/lib/decoder.js @@ -0,0 +1,74 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.decode = decode; + +function con(b) { + if ((b & 0xc0) === 0x80) { + return b & 0x3f; + } else { + throw new Error("invalid UTF-8 encoding"); + } +} + +function code(min, n) { + if (n < min || 0xd800 <= n && n < 0xe000 || n >= 0x10000) { + throw new Error("invalid UTF-8 encoding"); + } else { + return n; + } +} + +function decode(bytes) { + return _decode(bytes).map(function (x) { + return String.fromCharCode(x); + }).join(""); +} + +function _decode(bytes) { + var result = []; + + while (bytes.length > 0) { + var b1 = bytes[0]; + + if (b1 < 0x80) { + result.push(code(0x0, b1)); + bytes = bytes.slice(1); + continue; + } + + if (b1 < 0xc0) { + throw new Error("invalid UTF-8 encoding"); + } + + var b2 = bytes[1]; + + if (b1 < 0xe0) { + result.push(code(0x80, ((b1 & 0x1f) << 6) + con(b2))); + bytes = bytes.slice(2); + continue; + } + + var b3 = bytes[2]; + + if (b1 < 0xf0) { + result.push(code(0x800, ((b1 & 0x0f) << 12) + (con(b2) << 6) + con(b3))); + bytes = bytes.slice(3); + continue; + } + + var b4 = bytes[3]; + + if (b1 < 0xf8) { + result.push(code(0x10000, (((b1 & 0x07) << 18) + con(b2) << 12) + (con(b3) << 6) + con(b4))); + bytes = bytes.slice(4); + continue; + } + + throw new Error("invalid UTF-8 encoding"); + } + + return result; +}
\ No newline at end of file diff --git a/node_modules/@webassemblyjs/utf8/lib/encoder.js b/node_modules/@webassemblyjs/utf8/lib/encoder.js new file mode 100644 index 00000000..5ed0f03d --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/lib/encoder.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.encode = encode; + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function con(n) { + return 0x80 | n & 0x3f; +} + +function encode(str) { + var arr = str.split("").map(function (x) { + return x.charCodeAt(0); + }); + return _encode(arr); +} + +function _encode(arr) { + if (arr.length === 0) { + return []; + } + + var _arr = _toArray(arr), + n = _arr[0], + ns = _arr.slice(1); + + if (n < 0) { + throw new Error("utf8"); + } + + if (n < 0x80) { + return [n].concat(_toConsumableArray(_encode(ns))); + } + + if (n < 0x800) { + return [0xc0 | n >>> 6, con(n)].concat(_toConsumableArray(_encode(ns))); + } + + if (n < 0x10000) { + return [0xe0 | n >>> 12, con(n >>> 6), con(n)].concat(_toConsumableArray(_encode(ns))); + } + + if (n < 0x110000) { + return [0xf0 | n >>> 18, con(n >>> 12), con(n >>> 6), con(n)].concat(_toConsumableArray(_encode(ns))); + } + + throw new Error("utf8"); +}
\ No newline at end of file diff --git a/node_modules/@webassemblyjs/utf8/lib/index.js b/node_modules/@webassemblyjs/utf8/lib/index.js new file mode 100644 index 00000000..fef94701 --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/lib/index.js @@ -0,0 +1,21 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "decode", { + enumerable: true, + get: function get() { + return _decoder.decode; + } +}); +Object.defineProperty(exports, "encode", { + enumerable: true, + get: function get() { + return _encoder.encode; + } +}); + +var _decoder = require("./decoder"); + +var _encoder = require("./encoder");
\ No newline at end of file diff --git a/node_modules/@webassemblyjs/utf8/package.json b/node_modules/@webassemblyjs/utf8/package.json new file mode 100644 index 00000000..3da38eb1 --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/package.json @@ -0,0 +1,19 @@ +{ + "name": "@webassemblyjs/utf8", + "version": "1.11.6", + "description": "UTF8 encoder/decoder for WASM", + "main": "lib/index.js", + "module": "esm/index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://github.com/xtuc/webassemblyjs.git" + }, + "publishConfig": { + "access": "public" + }, + "author": "Sven Sauleau", + "license": "MIT" +} diff --git a/node_modules/@webassemblyjs/utf8/src/decoder.js b/node_modules/@webassemblyjs/utf8/src/decoder.js new file mode 100644 index 00000000..de80d125 --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/src/decoder.js @@ -0,0 +1,67 @@ +function con(b) { + if ((b & 0xc0) === 0x80) { + return b & 0x3f; + } else { + throw new Error("invalid UTF-8 encoding"); + } +} + +function code(min, n) { + if (n < min || (0xd800 <= n && n < 0xe000) || n >= 0x10000) { + throw new Error("invalid UTF-8 encoding"); + } else { + return n; + } +} + +export function decode(bytes) { + return _decode(bytes) + .map((x) => String.fromCharCode(x)) + .join(""); +} + +function _decode(bytes) { + const result = []; + while (bytes.length > 0) { + const b1 = bytes[0]; + if (b1 < 0x80) { + result.push(code(0x0, b1)); + bytes = bytes.slice(1); + continue; + } + + if (b1 < 0xc0) { + throw new Error("invalid UTF-8 encoding"); + } + + const b2 = bytes[1]; + if (b1 < 0xe0) { + result.push(code(0x80, ((b1 & 0x1f) << 6) + con(b2))); + bytes = bytes.slice(2); + continue; + } + + const b3 = bytes[2]; + if (b1 < 0xf0) { + result.push(code(0x800, ((b1 & 0x0f) << 12) + (con(b2) << 6) + con(b3))); + bytes = bytes.slice(3); + continue; + } + + const b4 = bytes[3]; + if (b1 < 0xf8) { + result.push( + code( + 0x10000, + ((((b1 & 0x07) << 18) + con(b2)) << 12) + (con(b3) << 6) + con(b4) + ) + ); + bytes = bytes.slice(4); + continue; + } + + throw new Error("invalid UTF-8 encoding"); + } + + return result; +} diff --git a/node_modules/@webassemblyjs/utf8/src/encoder.js b/node_modules/@webassemblyjs/utf8/src/encoder.js new file mode 100644 index 00000000..b17951fd --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/src/encoder.js @@ -0,0 +1,44 @@ +function con(n) { + return 0x80 | (n & 0x3f); +} + +export function encode(str) { + const arr = str.split("").map((x) => x.charCodeAt(0)); + return _encode(arr); +} + +function _encode(arr) { + if (arr.length === 0) { + return []; + } + + const [n, ...ns] = arr; + + if (n < 0) { + throw new Error("utf8"); + } + + if (n < 0x80) { + return [n, ..._encode(ns)]; + } + + if (n < 0x800) { + return [0xc0 | (n >>> 6), con(n), ..._encode(ns)]; + } + + if (n < 0x10000) { + return [0xe0 | (n >>> 12), con(n >>> 6), con(n), ..._encode(ns)]; + } + + if (n < 0x110000) { + return [ + 0xf0 | (n >>> 18), + con(n >>> 12), + con(n >>> 6), + con(n), + ..._encode(ns), + ]; + } + + throw new Error("utf8"); +} diff --git a/node_modules/@webassemblyjs/utf8/src/index.js b/node_modules/@webassemblyjs/utf8/src/index.js new file mode 100644 index 00000000..82cf9a70 --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/src/index.js @@ -0,0 +1,4 @@ +// @flow + +export { decode } from "./decoder"; +export { encode } from "./encoder"; diff --git a/node_modules/@webassemblyjs/utf8/test/index.js b/node_modules/@webassemblyjs/utf8/test/index.js new file mode 100644 index 00000000..dabdc6ca --- /dev/null +++ b/node_modules/@webassemblyjs/utf8/test/index.js @@ -0,0 +1,13 @@ +const { assert } = require("chai"); + +const { decode, encode } = require("../lib"); + +describe("UTF8", () => { + it("should f-1(f(x)) = x", () => { + assert.equal(decode(encode("foo")), "foo"); + assert.equal(decode(encode("éé")), "éé"); + + // TODO(sven): utf8 encoder fails here + // assert.equal(decode(encode("🤣见見")), "🤣见見"); + }); +}); |
