UNPKG

30.4 kBJSONView Raw
1{"dependencies":[{"name":"/Users/tevans3/Development/atjson/packages/@atjson/source-prism/package.json","includedInParent":true,"mtime":1553111837746},{"name":"/Users/tevans3/Development/atjson/node_modules/parse5/package.json","includedInParent":true,"mtime":1515875027000},{"name":"../common/unicode","loc":{"line":3,"column":22}}],"generated":{"js":"'use strict';\n\nvar UNICODE = require('../common/unicode');\n\n//Aliases\nvar $ = UNICODE.CODE_POINTS;\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isSurrogatePair(cp1, cp2) {\n return cp1 >= 0xD800 && cp1 <= 0xDBFF && cp2 >= 0xDC00 && cp2 <= 0xDFFF;\n}\n\nfunction getSurrogatePairCodePoint(cp1, cp2) {\n return (cp1 - 0xD800) * 0x400 + 0x2400 + cp2;\n}\n\n\n//Const\nvar DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nvar Preprocessor = module.exports = function () {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n};\n\nPreprocessor.prototype.dropParsedChunk = function () {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n};\n\nPreprocessor.prototype._addGap = function () {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n};\n\nPreprocessor.prototype._processHighRangeCodePoint = function (cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n var nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (isSurrogatePair(cp, nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n cp = getSurrogatePairCodePoint(cp, nextCp);\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n }\n }\n\n // NOTE: we've hit the end of chunk, stop processing at this point\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n\n return cp;\n};\n\nPreprocessor.prototype.write = function (chunk, isLastChunk) {\n if (this.html)\n this.html += chunk;\n\n else\n this.html = chunk;\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n};\n\nPreprocessor.prototype.insertHtmlAtCurrentPos = function (chunk) {\n this.html = this.html.substring(0, this.pos + 1) +\n chunk +\n this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n};\n\n\nPreprocessor.prototype.advance = function () {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n if (!this.lastChunkWritten)\n this.endOfChunkHit = true;\n\n return $.EOF;\n }\n\n var cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n //OPTIMIZATION: first perform check if the code point in the allowed range that covers most common\n //HTML input (e.g. ASCII codes) to avoid performance-cost operations for high-range code points.\n return cp >= 0xD800 ? this._processHighRangeCodePoint(cp) : cp;\n};\n\nPreprocessor.prototype.retreat = function () {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n};\n\n","map":{"mappings":[{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":1,"column":0},"generated":{"line":1,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":2,"column":0},"generated":{"line":2,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":3,"column":0},"generated":{"line":3,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":4,"column":0},"generated":{"line":4,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":5,"column":0},"generated":{"line":5,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":6,"column":0},"generated":{"line":6,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":7,"column":0},"generated":{"line":7,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":8,"column":0},"generated":{"line":8,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":9,"column":0},"generated":{"line":9,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":10,"column":0},"generated":{"line":10,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":11,"column":0},"generated":{"line":11,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":12,"column":0},"generated":{"line":12,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":13,"column":0},"generated":{"line":13,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":14,"column":0},"generated":{"line":14,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":15,"column":0},"generated":{"line":15,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":16,"column":0},"generated":{"line":16,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":17,"column":0},"generated":{"line":17,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":18,"column":0},"generated":{"line":18,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":19,"column":0},"generated":{"line":19,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":20,"column":0},"generated":{"line":20,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":21,"column":0},"generated":{"line":21,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":22,"column":0},"generated":{"line":22,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":23,"column":0},"generated":{"line":23,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":24,"column":0},"generated":{"line":24,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":25,"column":0},"generated":{"line":25,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":26,"column":0},"generated":{"line":26,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":27,"column":0},"generated":{"line":27,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":28,"column":0},"generated":{"line":28,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":29,"column":0},"generated":{"line":29,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":30,"column":0},"generated":{"line":30,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":31,"column":0},"generated":{"line":31,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":32,"column":0},"generated":{"line":32,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":33,"column":0},"generated":{"line":33,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":34,"column":0},"generated":{"line":34,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":35,"column":0},"generated":{"line":35,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":36,"column":0},"generated":{"line":36,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":37,"column":0},"generated":{"line":37,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":38,"column":0},"generated":{"line":38,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":39,"column":0},"generated":{"line":39,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":40,"column":0},"generated":{"line":40,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":41,"column":0},"generated":{"line":41,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":42,"column":0},"generated":{"line":42,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":43,"column":0},"generated":{"line":43,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":44,"column":0},"generated":{"line":44,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":45,"column":0},"generated":{"line":45,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":46,"column":0},"generated":{"line":46,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":47,"column":0},"generated":{"line":47,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":48,"column":0},"generated":{"line":48,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":49,"column":0},"generated":{"line":49,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":50,"column":0},"generated":{"line":50,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":51,"column":0},"generated":{"line":51,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":52,"column":0},"generated":{"line":52,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":53,"column":0},"generated":{"line":53,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":54,"column":0},"generated":{"line":54,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":55,"column":0},"generated":{"line":55,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":56,"column":0},"generated":{"line":56,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":57,"column":0},"generated":{"line":57,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":58,"column":0},"generated":{"line":58,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":59,"column":0},"generated":{"line":59,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":60,"column":0},"generated":{"line":60,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":61,"column":0},"generated":{"line":61,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":62,"column":0},"generated":{"line":62,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":63,"column":0},"generated":{"line":63,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":64,"column":0},"generated":{"line":64,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":65,"column":0},"generated":{"line":65,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":66,"column":0},"generated":{"line":66,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":67,"column":0},"generated":{"line":67,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":68,"column":0},"generated":{"line":68,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":69,"column":0},"generated":{"line":69,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":70,"column":0},"generated":{"line":70,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":71,"column":0},"generated":{"line":71,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":72,"column":0},"generated":{"line":72,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":73,"column":0},"generated":{"line":73,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":74,"column":0},"generated":{"line":74,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":75,"column":0},"generated":{"line":75,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":76,"column":0},"generated":{"line":76,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":77,"column":0},"generated":{"line":77,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":78,"column":0},"generated":{"line":78,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":79,"column":0},"generated":{"line":79,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":80,"column":0},"generated":{"line":80,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":81,"column":0},"generated":{"line":81,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":82,"column":0},"generated":{"line":82,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":83,"column":0},"generated":{"line":83,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":84,"column":0},"generated":{"line":84,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":85,"column":0},"generated":{"line":85,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":86,"column":0},"generated":{"line":86,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":87,"column":0},"generated":{"line":87,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":88,"column":0},"generated":{"line":88,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":89,"column":0},"generated":{"line":89,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":90,"column":0},"generated":{"line":90,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":91,"column":0},"generated":{"line":91,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":92,"column":0},"generated":{"line":92,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":93,"column":0},"generated":{"line":93,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":94,"column":0},"generated":{"line":94,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":95,"column":0},"generated":{"line":95,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":96,"column":0},"generated":{"line":96,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":97,"column":0},"generated":{"line":97,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":98,"column":0},"generated":{"line":98,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":99,"column":0},"generated":{"line":99,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":100,"column":0},"generated":{"line":100,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":101,"column":0},"generated":{"line":101,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":102,"column":0},"generated":{"line":102,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":103,"column":0},"generated":{"line":103,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":104,"column":0},"generated":{"line":104,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":105,"column":0},"generated":{"line":105,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":106,"column":0},"generated":{"line":106,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":107,"column":0},"generated":{"line":107,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":108,"column":0},"generated":{"line":108,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":109,"column":0},"generated":{"line":109,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":110,"column":0},"generated":{"line":110,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":111,"column":0},"generated":{"line":111,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":112,"column":0},"generated":{"line":112,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":113,"column":0},"generated":{"line":113,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":114,"column":0},"generated":{"line":114,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":115,"column":0},"generated":{"line":115,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":116,"column":0},"generated":{"line":116,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":117,"column":0},"generated":{"line":117,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":118,"column":0},"generated":{"line":118,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":119,"column":0},"generated":{"line":119,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":120,"column":0},"generated":{"line":120,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":121,"column":0},"generated":{"line":121,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":122,"column":0},"generated":{"line":122,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":123,"column":0},"generated":{"line":123,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":124,"column":0},"generated":{"line":124,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":125,"column":0},"generated":{"line":125,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":126,"column":0},"generated":{"line":126,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":127,"column":0},"generated":{"line":127,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":128,"column":0},"generated":{"line":128,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":129,"column":0},"generated":{"line":129,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":130,"column":0},"generated":{"line":130,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":131,"column":0},"generated":{"line":131,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":132,"column":0},"generated":{"line":132,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":133,"column":0},"generated":{"line":133,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":134,"column":0},"generated":{"line":134,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":135,"column":0},"generated":{"line":135,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":136,"column":0},"generated":{"line":136,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":137,"column":0},"generated":{"line":137,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":138,"column":0},"generated":{"line":138,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":139,"column":0},"generated":{"line":139,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":140,"column":0},"generated":{"line":140,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":141,"column":0},"generated":{"line":141,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":142,"column":0},"generated":{"line":142,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":143,"column":0},"generated":{"line":143,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":144,"column":0},"generated":{"line":144,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":145,"column":0},"generated":{"line":145,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":146,"column":0},"generated":{"line":146,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":147,"column":0},"generated":{"line":147,"column":0}},{"source":"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js","original":{"line":148,"column":0},"generated":{"line":148,"column":0}}],"sources":{"../../../../node_modules/parse5/lib/tokenizer/preprocessor.js":"'use strict';\n\nvar UNICODE = require('../common/unicode');\n\n//Aliases\nvar $ = UNICODE.CODE_POINTS;\n\n//Utils\n\n//OPTIMIZATION: these utility functions should not be moved out of this module. V8 Crankshaft will not inline\n//this functions if they will be situated in another module due to context switch.\n//Always perform inlining check before modifying this functions ('node --trace-inlining').\nfunction isSurrogatePair(cp1, cp2) {\n return cp1 >= 0xD800 && cp1 <= 0xDBFF && cp2 >= 0xDC00 && cp2 <= 0xDFFF;\n}\n\nfunction getSurrogatePairCodePoint(cp1, cp2) {\n return (cp1 - 0xD800) * 0x400 + 0x2400 + cp2;\n}\n\n\n//Const\nvar DEFAULT_BUFFER_WATERLINE = 1 << 16;\n\n\n//Preprocessor\n//NOTE: HTML input preprocessing\n//(see: http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#preprocessing-the-input-stream)\nvar Preprocessor = module.exports = function () {\n this.html = null;\n\n this.pos = -1;\n this.lastGapPos = -1;\n this.lastCharPos = -1;\n\n this.gapStack = [];\n\n this.skipNextNewLine = false;\n\n this.lastChunkWritten = false;\n this.endOfChunkHit = false;\n this.bufferWaterline = DEFAULT_BUFFER_WATERLINE;\n};\n\nPreprocessor.prototype.dropParsedChunk = function () {\n if (this.pos > this.bufferWaterline) {\n this.lastCharPos -= this.pos;\n this.html = this.html.substring(this.pos);\n this.pos = 0;\n this.lastGapPos = -1;\n this.gapStack = [];\n }\n};\n\nPreprocessor.prototype._addGap = function () {\n this.gapStack.push(this.lastGapPos);\n this.lastGapPos = this.pos;\n};\n\nPreprocessor.prototype._processHighRangeCodePoint = function (cp) {\n //NOTE: try to peek a surrogate pair\n if (this.pos !== this.lastCharPos) {\n var nextCp = this.html.charCodeAt(this.pos + 1);\n\n if (isSurrogatePair(cp, nextCp)) {\n //NOTE: we have a surrogate pair. Peek pair character and recalculate code point.\n this.pos++;\n cp = getSurrogatePairCodePoint(cp, nextCp);\n\n //NOTE: add gap that should be avoided during retreat\n this._addGap();\n }\n }\n\n // NOTE: we've hit the end of chunk, stop processing at this point\n else if (!this.lastChunkWritten) {\n this.endOfChunkHit = true;\n return $.EOF;\n }\n\n return cp;\n};\n\nPreprocessor.prototype.write = function (chunk, isLastChunk) {\n if (this.html)\n this.html += chunk;\n\n else\n this.html = chunk;\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n this.lastChunkWritten = isLastChunk;\n};\n\nPreprocessor.prototype.insertHtmlAtCurrentPos = function (chunk) {\n this.html = this.html.substring(0, this.pos + 1) +\n chunk +\n this.html.substring(this.pos + 1, this.html.length);\n\n this.lastCharPos = this.html.length - 1;\n this.endOfChunkHit = false;\n};\n\n\nPreprocessor.prototype.advance = function () {\n this.pos++;\n\n if (this.pos > this.lastCharPos) {\n if (!this.lastChunkWritten)\n this.endOfChunkHit = true;\n\n return $.EOF;\n }\n\n var cp = this.html.charCodeAt(this.pos);\n\n //NOTE: any U+000A LINE FEED (LF) characters that immediately follow a U+000D CARRIAGE RETURN (CR) character\n //must be ignored.\n if (this.skipNextNewLine && cp === $.LINE_FEED) {\n this.skipNextNewLine = false;\n this._addGap();\n return this.advance();\n }\n\n //NOTE: all U+000D CARRIAGE RETURN (CR) characters must be converted to U+000A LINE FEED (LF) characters\n if (cp === $.CARRIAGE_RETURN) {\n this.skipNextNewLine = true;\n return $.LINE_FEED;\n }\n\n this.skipNextNewLine = false;\n\n //OPTIMIZATION: first perform check if the code point in the allowed range that covers most common\n //HTML input (e.g. ASCII codes) to avoid performance-cost operations for high-range code points.\n return cp >= 0xD800 ? this._processHighRangeCodePoint(cp) : cp;\n};\n\nPreprocessor.prototype.retreat = function () {\n if (this.pos === this.lastGapPos) {\n this.lastGapPos = this.gapStack.pop();\n this.pos--;\n }\n\n this.pos--;\n};\n\n"},"lineCount":148}},"hash":"8047682b75048aa13e928180edd91429","cacheData":{"env":{}}}
\No newline at end of file