RegExps that don't modify global state?

C. Scott Ananian ecmascript at cscott.net
Tue Sep 23 07:35:15 PDT 2014


On Tue, Sep 23, 2014 at 10:04 AM, Claude Pache <claude.pache at gmail.com> wrote:
> Another idea is to  to define a variant of the `RegExp.prototype.exec()` method, that does the Right Thing (doesn't read/write stuff on the RegExp instance, nor on the RegExp global, nor I don't know where):
>
>     RegExp.prototype.run (str, params):
>
>         Do what is currently specified for `RegExp.prototype.exec`, except that:
>
>             * global, sticky and lastIndex properties are read and written on `params` instead of `this`
>             * implementations are not allowed to extend that method in order to mess with `RegExp`, etc.
>
> All other (legacy) methods are rewritten in terms of `RE.p.run` (in the current ES6 draft, they are mostly written in terms of `RE.p.exec`).

+1.  Deprecating the side-effects of the legacy methods might be tricky though.
  --scott


More information about the es-discuss mailing list