mirror of
https://github.com/radareorg/quickjs.git
synced 2026-11-07 06:25:57 -10:00
Replace quickjs-ng's stack-based libregexp with Fabrice Bellard's
register-based backtracking engine, which
is faster and guarantees linear bytecode size growth. This also brings the
regexp implementation to full parity with upstream: v flag, regexp modifiers,
duplicate named capture groups, properties of strings, and Script=Unknown.
Includes the following upstream commits from bellard/quickjs:
7ab2341 faster and simpler implementation of regexp backtracking
a774007 removed buffer overflows introduced in regexp optimizations
371c06e ensure regexp bytecode size grows linearly with the input
47aac8b regexp: a set of registers instead of an auxiliary stack
5907aa6 added missing lre_poll_timeout()
f113949 removed alloca() in lre_exec(); \s/\S opcodes; optimized \b/\B
7bd1ae2 \x{N} is a syntax error
24379bf added regexp duplicate named groups; fixed reset of captures
f95b8ba added regexp modifiers
d7cdfdc regexp: added v flag support; CR_OP_SUB + properties of strings
fc524f7 added missing 'Unknown' unicode Script