A cache V8 compilou expressões regulares automaticamente?
Então eu sei que em Javascript instanciar um regex faz com que ele seja compilado automaticamente e se esse regex é armazenado em uma variável, ele será reutilizado sem recompilar. Exemplo:
var re = /[Ff]oo|[Bb]ar/;
"Foo".match(re); // ["Foo"]
"Baz".match(re); // null
No entanto, expressões regulares duplicadas são recompiladas ou o V8 (Chrome / Node.js) inteligentemente as reutiliza (como o PHP faz com funções preg_ *)?
function isFooBar(str) {
return str.match(/[Ff]oo|[Bb]ar/);
}
isFooBar("Foo"); // ["Foo"]
isFooBar("Baz"); // null
Então, para esclarecer, eu sei que o primeiro exemplo resulta em uma compilação da regex. Mas e o segundo exemplo?