Interface that an object must implement to be considered an EcmaScript
function.
This interface may be implemented by an object which will then be recognized
as a function or a constructor if used in EcmaScript.
Non function objects need not implement any specific interface,
FESI using introspection to discover their properties.
The parameters passed to the doCall or doNew arguments are transformed
as follow:
If they are FESI objects they are wrapped as JSObjects.
If they are FESI primitive, the corresponding most primitive
java object is used (for example Integer).
Otherwise (native objects) they are passed as native objects.