Function formal parameter names have higher priority

Question | Sep 23, 2015 | nextptr 

Javascript has a specified name resolution order. Function formal parameter names take priority over variable declarations in same scope. If a function has a variable declaration and has a formal parameter of same name then the variable declaration will be ignored.

Following code sample assumes that you are already familiar with 'var' hoisting. Look at it and tell what would be alerted.

function mod(prm)
{
    var x = prm;
    if(x < 0)
    {
        var prm = -1*x; // prm is declared
    }    
    return prm;
}

alert(mod(-1));

What would be alerted?

2015 nextptr