== Why is this an issue?

Because semicolons at the ends of statements are optional, starting function call arguments on a separate line makes the code confusing. It could lead to errors and most likely _will_ lead to questions for maintainers.


What was the initial intent of the developer?

. Define a function and then execute some unrelated code inside a closure ?
. Pass the second function as a parameter to the first one ?

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


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


=== Noncompliant code example

[source,flex]
----
var fn = function () {
  //...
}

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


=== Compliant solution

Either


[source,flex]
----
// define a function
var fn = function () {
  //...
}; // <-- semicolon added

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

Or 


[source,flex]
----
var fn = function () {
  //...
}(function () { // <-- start function call arguments on same line
  //...
})();
----


ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

include::../message.adoc[]

include::../highlighting.adoc[]

'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
