Contando las vocales en javascript

Yo uso este código para buscar y contar las vocales en la cadena,

a = "run forest, run";
a = a.split(" ");
var syl = 0;
for (var i = 0; i < a.length - 1; i++) {
    for (var i2 = 0; i2 < a[i].length - 1; i2++) {
        if ('aouie'.search(a[i][i2]) > -1) {
            syl++;
        }
    }
}

alert(syl + " vowels")

Obviamente, debería alertar hasta 4 vocales, pero devuelve 3. ¿Qué está mal y cómo puede simplificarlo?

Respuestas a la pregunta(5)

Su respuesta a la pregunta