Class JavaFunctionObject

java.lang.Object
org.mozilla.javascript.ScriptableObject
org.loboevolution.js.JavaFunctionObject
All Implemented Interfaces:
Serializable, Callable, ConstProperties, Constructable, DebuggableObject, Function, Scriptable, SymbolScriptable

public class JavaFunctionObject extends ScriptableObject implements Function

JavaFunctionObject class.

See Also:
  • Constructor Details

    • JavaFunctionObject

      public JavaFunctionObject(String name, String className)

      Constructor for JavaFunctionObject.

      Parameters:
      name - a String object.
      className - a String object.
  • Method Details

    • addMethod

      public void addMethod(Method m)

      addMethod.

      Parameters:
      m - a Method object.
    • call

      public Object call(Context cx, Scriptable scope, Scriptable thisObj, Object[] args)
      Call the function.

      Note that the array of arguments is not guaranteed to have length greater than 0.

      Specified by:
      call in interface Callable
      Specified by:
      call in interface Function
      Parameters:
      cx - the current Context for this thread
      scope - the scope to execute the function relative to. This is set to the value returned by getParentScope() except when the function is called from a closure.
      thisObj - the JavaScript this object
      args - the array of arguments
      Returns:
      the result of the call
    • construct

      public Scriptable construct(Context cx, Scriptable scope, Object[] args)
      Call the function as a constructor.

      This method is invoked by the runtime in order to satisfy a use of the JavaScript new operator. This method is expected to create a new object and return it.

      Specified by:
      construct in interface Constructable
      Specified by:
      construct in interface Function
      Parameters:
      cx - the current Context for this thread
      scope - an enclosing scope of the caller except when the function is called from a closure.
      args - the array of arguments
      Returns:
      the allocated object
    • getClassName

      public String getClassName()
      Return the name of the class.

      This is typically the same name as the constructor. Classes extending ScriptableObject must implement this abstract method.

      Specified by:
      getClassName in interface Scriptable
      Specified by:
      getClassName in class ScriptableObject
    • getDefaultValue

      public Object getDefaultValue(Class hint)
      Implements the [[DefaultValue]] internal method.

      Note that the toPrimitive conversion is a no-op for every type other than Object, for which [[DefaultValue]] is called. See ECMA 9.1.

      A hint of null means "no hint".

      Specified by:
      getDefaultValue in interface Scriptable
      Overrides:
      getDefaultValue in class ScriptableObject
      Parameters:
      hint - the type hint
      Returns:
      the default value for the object

      See ECMA 8.6.2.6.