marked 9.1.4 → 9.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/marked.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * marked v9.1.4 - a markdown parser
2
+ * marked v9.1.5 - a markdown parser
3
3
  * Copyright (c) 2011-2023, Christopher Jeffrey. (MIT Licensed)
4
4
  * https://github.com/markedjs/marked
5
5
  */
@@ -751,7 +751,7 @@ class _Tokenizer {
751
751
  const endReg = match[0][0] === '*' ? this.rules.inline.emStrong.rDelimAst : this.rules.inline.emStrong.rDelimUnd;
752
752
  endReg.lastIndex = 0;
753
753
  // Clip maskedSrc to same section of string as src (move to lexer?)
754
- maskedSrc = maskedSrc.slice(-1 * src.length + match[0].length - 1);
754
+ maskedSrc = maskedSrc.slice(-1 * src.length + lLength);
755
755
  while ((match = endReg.exec(maskedSrc)) != null) {
756
756
  rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];
757
757
  if (!rDelim)
@@ -772,7 +772,9 @@ class _Tokenizer {
772
772
  continue; // Haven't found enough closing delimiters
773
773
  // Remove extra characters. *a*** -> *a*
774
774
  rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);
775
- const raw = [...src].slice(0, lLength + match.index + rLength + 1).join('');
775
+ // char length can be >1 for unicode characters;
776
+ const lastCharLength = [...match[0]][0].length;
777
+ const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);
776
778
  // Create `em` if smallest delimiter has odd char count. *a***
777
779
  if (Math.min(lLength, rLength) % 2) {
778
780
  const text = raw.slice(1, -1);