Package org.mozilla.javascript

## Class IdFunctionObject

- java.lang.Object
- - org.mozilla.javascript.ScriptableObject
  - - org.mozilla.javascript.IdScriptableObject
    - - org.mozilla.javascript.BaseFunction
      - - org.mozilla.javascript.IdFunctionObject

- All Implemented Interfaces:
    `java.io.Serializable`, `Callable`, `ConstProperties`, `DebuggableObject`, `Function`, `IdFunctionCall`, `Scriptable`, `SymbolScriptable`
  Direct Known Subclasses:
    `IdFunctionObjectES6`

      public class IdFunctionObject
      extends BaseFunction

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.mozilla.javascript.ScriptableObject

      `ScriptableObject.KeyComparator`

  - ### Field Summary

    - ### Fields inherited from class org.mozilla.javascript.ScriptableObject

      `CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST`

    - ### Fields inherited from interface org.mozilla.javascript.Scriptable

      `NOT_FOUND`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `IdFunctionObject​(IdFunctionCall idcall, java.lang.Object tag, int id, int arity)` |
    `IdFunctionObject​(IdFunctionCall idcall, java.lang.Object tag, int id, java.lang.String name, int arity, Scriptable scope)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addAsProperty​(Scriptable target)` |
    `java.lang.Object` | `call​(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)` | Should be overridden.
    `Scriptable` | `createObject​(Context cx, Scriptable scope)` | Creates new script object.
    `void` | `exportAsScopeProperty()` |
    `int` | `getArity()` |
    `java.lang.String` | `getFunctionName()` |
    `int` | `getLength()` |
    `Scriptable` | `getPrototype()` | Returns the prototype of the object.
    `java.lang.Object` | `getTag()` |
    `boolean` | `hasTag​(java.lang.Object tag)` |
    `void` | `initFunction​(java.lang.String name, Scriptable scope)` |
    `void` | `markAsConstructor​(Scriptable prototypeProperty)` |
    `int` | `methodId()` |
    `java.lang.RuntimeException` | `unknown()` |

    - ### Methods inherited from class org.mozilla.javascript.BaseFunction

      `construct, execIdCall, fillConstructorProperties, findInstanceIdInfo, findPrototypeId, getClassName, getClassPrototype, getInstanceIdName, getInstanceIdValue, getMaxInstanceId, getPrototypeProperty, getTypeOf, hasInstance, hasPrototypeProperty, initPrototypeId, setImmunePrototypeProperty, setInstanceIdAttributes, setInstanceIdValue`

    - ### Methods inherited from class org.mozilla.javascript.IdScriptableObject

      `activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, delete, exportAsJSClass, findInstanceIdInfo, findPrototypeId, get, get, getAttributes, getOwnPropertyDescriptor, has, has, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeMethod, initPrototypeMethod, initPrototypeMethod, initPrototypeValue, initPrototypeValue, instanceIdInfo, put, put, setAttributes`

    - ### Methods inherited from class org.mozilla.javascript.ScriptableObject

      `applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getSlot, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, putProperty, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.mozilla.javascript.Scriptable

      `delete, delete, get, get, getDefaultValue, getIds, getParentScope, has, has, put, put, setParentScope, setPrototype`

- - ### Constructor Detail

    - #### IdFunctionObject

          public IdFunctionObject​(IdFunctionCall idcall,
                                  java.lang.Object tag,
                                  int id,
                                  int arity)

    - #### IdFunctionObject

          public IdFunctionObject​(IdFunctionCall idcall,
                                  java.lang.Object tag,
                                  int id,
                                  java.lang.String name,
                                  int arity,
                                  Scriptable scope)

  - ### Method Detail

    - #### initFunction

          public void initFunction​(java.lang.String name,
                                   Scriptable scope)

    - #### hasTag

          public final boolean hasTag​(java.lang.Object tag)

    - #### getTag

          public java.lang.Object getTag()

    - #### methodId

          public final int methodId()

    - #### markAsConstructor

          public final void markAsConstructor​(Scriptable prototypeProperty)

    - #### addAsProperty

          public final void addAsProperty​(Scriptable target)

    - #### exportAsScopeProperty

          public void exportAsScopeProperty()

    - #### getPrototype

          public Scriptable getPrototype()

      Description copied from class: `ScriptableObject`
      Returns the prototype of the object.
      Specified by:
        `getPrototype` in interface `Scriptable`
      Overrides:
        `getPrototype` in class `ScriptableObject`
      Returns:
        the prototype

    - #### call

          public java.lang.Object call​(Context cx,
                                       Scriptable scope,
                                       Scriptable thisObj,
                                       java.lang.Object[] args)

      Description copied from class: `BaseFunction`
      Should be overridden.
      Specified by:
        `call` in interface `Callable`
      Specified by:
        `call` in interface `Function`
      Overrides:
        `call` in class `BaseFunction`
      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

    - #### createObject

          public Scriptable createObject​(Context cx,
                                         Scriptable scope)

      Description copied from class: `BaseFunction`
      Creates new script object. The default implementation of `BaseFunction.construct(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, java.lang.Object[])` uses the method to to get the value for `thisObj` argument when invoking `BaseFunction.call(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])`. The methos is allowed to return `null` to indicate that `BaseFunction.call(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])` will create a new object itself. In this case `BaseFunction.construct(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, java.lang.Object[])` will set scope and prototype on the result `BaseFunction.call(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])` unless they are already set.
      Overrides:
        `createObject` in class `BaseFunction`

    - #### getArity

          public int getArity()

      Overrides:
        `getArity` in class `BaseFunction`

    - #### getLength

          public int getLength()

      Overrides:
        `getLength` in class `BaseFunction`

    - #### getFunctionName

          public java.lang.String getFunctionName()

      Overrides:
        `getFunctionName` in class `BaseFunction`

    - #### unknown

          public final java.lang.RuntimeException unknown()