-
Notifications
You must be signed in to change notification settings - Fork 218
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Continuation of #1221: pathological regular expressions should be dealt with better. Test cases:
set -xe
qjs -e '/(:?(?:a|)+|)+/'
qjs -e '/(:?(:?(?:a|)+|)+|)+/'
qjs -e '/(:?(:?(:?(?:a|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
qjs -e '/(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(:?(?:a|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+|)+/'
The longest ones are blocked off now by a bytecode size check added in #1222 but the ones before the threshold take multiple seconds to process, which is way too long.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working