Should RegExp(regexp, flags) always return a functional RegExp for reasonable values of flags?

Claude Pache claude.pache at gmail.com
Thu May 19 19:48:06 UTC 2016


Thinking more about it: there is a fatal incompatibility:

```js
/^\u{12345}$/u.test("\u{12345}") // true
/^\u{12345}$/.test("u".repeat(12345)) // true (annex b)
```
and

```js
/^\u{1F4A9}$/u.test("\u{1F4A9}") // true
/^\u{1F4A9}$/.test("u{1F4A9}") // true (annex b)
```

—Claude

> Le 19 mai 2016 à 19:38, Jordan Harband <ljharb at gmail.com> a écrit :
> 
> Ah - in that case, no, I would not necessarily expect that the source of a u-mode regex would produce a valid regex in another context without the "u" flag.
> 
> On Thu, May 19, 2016 at 10:18 AM, Claude Pache <claude.pache at gmail.com <mailto:claude.pache at gmail.com>> wrote:
> 
> > Le 19 mai 2016 à 17:54, Jordan Harband <ljharb at gmail.com <mailto:ljharb at gmail.com>> a écrit :
> >
> > I'm not as sure about `eval`, but absolutely `new RegExp(rx.source, rx.flags)` should always imo reproduce a functionally equivalent regex.
> 
> Sure, but it doesn’t answer the question. I am concerned with, e.g., `new RegExp(rx.source, "u")` where `rx.unicode` is `false`, because u-regexp syntax is stricter.
> 
> —Claude
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20160519/416905f7/attachment.html>


More information about the es-discuss mailing list