summaryrefslogtreecommitdiffstats
path: root/node_modules/@webassemblyjs/wast-parser/lib/string-literals.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@webassemblyjs/wast-parser/lib/string-literals.js')
-rw-r--r--node_modules/@webassemblyjs/wast-parser/lib/string-literals.js94
1 files changed, 0 insertions, 94 deletions
diff --git a/node_modules/@webassemblyjs/wast-parser/lib/string-literals.js b/node_modules/@webassemblyjs/wast-parser/lib/string-literals.js
deleted file mode 100644
index db1ff75..0000000
--- a/node_modules/@webassemblyjs/wast-parser/lib/string-literals.js
+++ /dev/null
@@ -1,94 +0,0 @@
-"use strict";
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.parseString = parseString;
-// string literal characters cannot contain control codes
-var CONTROL_CODES = [0, // null
-7, // bell
-8, // backspace
-9, // horizontal
-10, // line feed
-11, // vertical tab
-12, // form feed
-13, // carriage return
-26, // Control-Z
-27, // escape
-127 // delete
-]; // escaped sequences can either be a two character hex value, or one of the
-// following single character codes
-
-function decodeControlCharacter(char) {
- switch (char) {
- case "t":
- return 0x09;
-
- case "n":
- return 0x0a;
-
- case "r":
- return 0x0d;
-
- case '"':
- return 0x22;
-
- case "′":
- return 0x27;
-
- case "\\":
- return 0x5c;
- }
-
- return -1;
-}
-
-var ESCAPE_CHAR = 92; // backslash
-
-var QUOTE_CHAR = 34; // backslash
-// parse string as per the spec:
-// https://webassembly.github.io/spec/core/multipage/text/values.html#text-string
-
-function parseString(value) {
- var byteArray = [];
- var index = 0;
-
- while (index < value.length) {
- var charCode = value.charCodeAt(index);
-
- if (CONTROL_CODES.indexOf(charCode) !== -1) {
- throw new Error("ASCII control characters are not permitted within string literals");
- }
-
- if (charCode === QUOTE_CHAR) {
- throw new Error("quotes are not permitted within string literals");
- }
-
- if (charCode === ESCAPE_CHAR) {
- var firstChar = value.substr(index + 1, 1);
- var decodedControlChar = decodeControlCharacter(firstChar);
-
- if (decodedControlChar !== -1) {
- // single character escaped values, e.g. \r
- byteArray.push(decodedControlChar);
- index += 2;
- } else {
- // hex escaped values, e.g. \2a
- var hexValue = value.substr(index + 1, 2);
-
- if (!/^[0-9A-F]{2}$/i.test(hexValue)) {
- throw new Error("invalid character encoding");
- }
-
- byteArray.push(parseInt(hexValue, 16));
- index += 3;
- }
- } else {
- // ASCII encoded values
- byteArray.push(charCode);
- index++;
- }
- }
-
- return byteArray;
-} \ No newline at end of file