What is the rationale behind this behaviour?
function f(x) {
console.log(arguments[0]);
x = 42;
console.log(arguments[0]);
}
f(1);
// => 1
// => 42
Perhaps this was a genuine mistake. Which section of the ECMAScript specification defines this behaviour?