¿V8 caché compiló expresiones regulares automáticamente?
Así que sé que en Javascript, la creación de una expresión regular hace que se compile automáticamente y si esa expresión regular se almacena en una variable, se reutilizará sin volver a compilar. Ejemplo:
var re = /[Ff]oo|[Bb]ar/;
"Foo".match(re); // ["Foo"]
"Baz".match(re); // null
Sin embargo, ¿las expresiones regulares duplicadas se vuelven a compilar o V8 (Chrome / Node.js) las reutiliza de manera inteligente (como hace PHP con las funciones preg_ *)?
function isFooBar(str) {
return str.match(/[Ff]oo|[Bb]ar/);
}
isFooBar("Foo"); // ["Foo"]
isFooBar("Baz"); // null
Para aclarar, sé que el primer ejemplo da como resultado una compilación de la expresión regular. Pero ¿qué pasa con el segundo ejemplo?