| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- "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;
 
- }
 
 
  |