== 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[]
