== Why is this an issue? The fact that JavaScript is not a strongly typed language allows developers a lot of freedom, but that freedom can be dangerous if you go too far with it. Specifically, it is syntactically acceptable to invoke any expression as though its value were a function. But a ``++TypeError++`` may be raised if you do. === Noncompliant code example [source,javascript] ---- foo = 1; foo(); // Noncompliant; TypeError foo = undefined; foo(); // Noncompliant; TypeError ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] ''' == Comments And Links (visible only on this page) include::comments-and-links.adoc[] endif::env-github,rspecator-view[]