chakra-core/ChakraCore

[RegExp] Unicode-mode RegExp incorrectly matches lone surrogates

Open

#98 ouverte le 14 janv. 2016

Voir sur GitHub
 (2 commentaires) (0 réactions) (0 assignés)JavaScript (1 374 forks)batch import
BugSeverity: 2help wanted

Métriques du dépôt

Stars
 (9 000 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

Description

I was able to observe this in Edge 25.10586.0.0:

/[\ud800-\ud805]+/u.exec("\u{10000}\ud801\ud802") should return ["\ud801\ud802] but instead returns["\ud800"], which is the first half of "\u{10000}".

The spec requires the input string to be interpreted as a sequence of code points, i.e. surrogate pairs to be combined. So matching the lead surrogate of "\u{10000}" is incorrect.

A bit more reduced would be: /\ud800+/u.exec("\u{10000}") should return null, but returns ["\ud800"] instead.

Guide contributeur