Because semicolons at the ends of statements are optional, starting function call arguments on a separate line makes the code confusing and might lead to errors.

Noncompliant Code Example

var fn = function () {
  //...
}

(function () { // Noncompliant
  //...
})();

What was the initial purpose of the developer?

  1. Was it to define a function and then to execute some unrelated code inside a closure?
  2. Or to pass the second function as a parameter to the first one?

The first option will be the one chosen by the JavaScript interpreter.

Compliant Solution

Either

// define a function
var fn = function () {
  //...
}; // <-- semicolon added

// then execute some code inside a closure
(function () {
  //...
})();

or

var fn = function () {
  //...
}(function () { // <-- start function call arguments on same line
  //...
})();

By extension and to improve readability, any kind of function call arguments should not start on new line.