Skip to content

Commit

Permalink
Don't use regex that can be slow
Browse files Browse the repository at this point in the history
  • Loading branch information
tats-u committed Dec 14, 2024
1 parent f3145e8 commit 2535d2d
Showing 1 changed file with 22 additions and 1 deletion.
23 changes: 22 additions & 1 deletion lib/inlines.js
Original file line number Diff line number Diff line change
Expand Up @@ -984,13 +984,34 @@ var parseInlines = function(block) {
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#return_value
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#white_space
// Removes only ASCII tab and space.
this.subject = block._string_content.replace(/^[\t \r\n]+|[\t \r\n]+$/g, "")
this.subject = trim(block._string_content)
this.pos = 0;
this.delimiters = null;
this.brackets = null;
while (this.parseInline(block)) {}
block._string_content = null; // allow raw string to be garbage collected
this.processEmphasis(null);

function trim(str) {
let start = 0;
for(; start < str.length; start++) {
if (!isSpace(str.charCodeAt(start))) {
break;
}
}
let end = str.length - 1;
for(; end >= start; end--) {
if (!isSpace(str.charCodeAt(end))) {
break;
}
}
return str.slice(start, end + 1);

function isSpace(c) {
// U+0020 = space, U+0009 = tab, U+000A = LF, U+000D = CR
return c === 0x20 || c === 9 || c === 0xa || c === 0xd;
}
}
};

// The InlineParser object.
Expand Down

0 comments on commit 2535d2d

Please sign in to comment.