fix: update punctuation regex syntax for compatibility#3540
Conversation
change the string to a regular expression. Then babel can transpile it correctly.
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
styfle
left a comment
There was a problem hiding this comment.
Looks good. I can't find any docs on which browsers we support but maybe we should add that.
|
We don't have any browser tests. I think if we are going to list specific browsers we should have some tests to make sure we are compatible. We support node >= 18 so really we support any browsers that have the same APIs as node 18 |
## [15.0.2](v15.0.1...v15.0.2) (2024-11-20) ### Bug Fixes * update punctuation regex syntax for compatibility ([#3540](#3540)) ([fd015f1](fd015f1))
Incompatible with React Native (Hermes Engine) |
|
It should work with the latest version facebook/hermes#1295 |
15.0.1 can work with the latest version of Hermes, but 15.0.2 introduced in this PR is not compatible. |
|
@0xDing Can you create a bug at https://github.com/facebook/hermes/ seems like they will have to fix it. |
|
Same issue with angular 18 but on Firefox only, 15.0.1 works fine, but 15.0.2 tells: "SyntaxError: invalid identity escape in regular expression" at getRegex marked.esm.js:45 on: |
|
@twistoliver what version of Firefox? |
|
Usually the last one, mine is 132.0.2 (64-bit), I’m currently investigating my tsconfig file as it’s maybe linked.
|
|
transpile to es5 |
|
anyway, the easiest way to fix is dont use edit to dynamic build regexp with _punctuation , just write it raw and babel will transpile it correct. another way is keep the code struct, then it should be or use a precompile script to generate regex info so It also ensures the neatness of regular spelling and allows babel to process these regular expressions. @UziTech Before we choose a solution, this PR should first be revert, and I'd love to PR to the solution you choose |
I don't think we need to release a version with this reverted. Just fixing it in the next version should be fine. There are multiple places const _punctuation = /[\p{P}\p{S}]/u
const _punctuationOrSpace = /[\s\p{P}\p{S}]/u
const _notPunctuationOrSpace = /[^\s\p{P}\p{S}]/uIt would be great if someone could also figure out a way to write a test for babel so this type of thing doesn't break in the future. |
|
I will stick on 15.0.1 until next release. Thank you both. |
|
Problem solved with 15.0.3, thank you again. |
## [15.0.2](markedjs/marked@v15.0.1...v15.0.2) (2024-11-20) ### Bug Fixes * update punctuation regex syntax for compatibility ([#3540](markedjs/marked#3540)) ([b09e334](markedjs/marked@b09e334))


Marked version: 13.0.1
Markdown flavor: Markdown.pl|CommonMark|GitHub Flavored Markdown|n/a
Description
as pr3229 said, the punctuation regex syntax is not supported in some browser
change the string to a regular expression. Then babel can transpile it correctly.
Expectation
Marked should work fine in most cases.
Result
Host environment reports error due to unsupported regex syntax.
What was attempted
-->
Contributor
Committer
In most cases, this should be a different person than the contributor.