Package org.mozilla.javascript

## Class NativeFunction

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

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

      public abstract class NativeFunction
      extends BaseFunction

  This class implements the Function native object. See ECMA 15.3.
  Author:
    Norris Boyd
  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
    --- | ---
    `NativeFunction()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `getArity()` |
    `DebuggableScript` | `getDebuggableView()` |
    `java.lang.String` | `getEncodedSource()` | Get encoded source string.
    `protected abstract int` | `getLanguageVersion()` |
    `int` | `getLength()` |
    `protected abstract int` | `getParamAndVarCount()` | Get number of declared parameters and variables defined through var statements.
    `protected abstract int` | `getParamCount()` | Get number of declared parameters.
    `protected boolean` | `getParamOrVarConst​(int index)` | Get parameter or variable const-ness.
    `protected abstract java.lang.String` | `getParamOrVarName​(int index)` | Get parameter or variable name.
    `void` | `initScriptFunction​(Context cx, Scriptable scope)` |
    `java.lang.String` | `jsGet_name()` | Deprecated. Use `BaseFunction.getFunctionName()` instead.
    `java.lang.Object` | `resumeGenerator​(Context cx, Scriptable scope, int operation, java.lang.Object state, java.lang.Object value)` | Resume execution of a suspended generator.

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

      `call, construct, createObject, execIdCall, fillConstructorProperties, findInstanceIdInfo, findPrototypeId, getClassName, getClassPrototype, getFunctionName, 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, getPrototype, 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, getPrototype, has, has, put, put, setParentScope, setPrototype`

- - ### Constructor Detail

    - #### NativeFunction

          public NativeFunction()

  - ### Method Detail

    - #### initScriptFunction

          public final void initScriptFunction​(Context cx,
                                               Scriptable scope)

    - #### getLength

          public int getLength()

      Overrides:
        `getLength` in class `BaseFunction`

    - #### getArity

          public int getArity()

      Overrides:
        `getArity` in class `BaseFunction`

    - #### jsGet_name

          @Deprecated
          public java.lang.String jsGet_name()

      Deprecated.
      Use `BaseFunction.getFunctionName()` instead. For backwards compatibility keep an old method name used by Batik and possibly others.

    - #### getEncodedSource

          public java.lang.String getEncodedSource()

      Get encoded source string.

    - #### getDebuggableView

          public DebuggableScript getDebuggableView()

    - #### resumeGenerator

          public java.lang.Object resumeGenerator​(Context cx,
                                                  Scriptable scope,
                                                  int operation,
                                                  java.lang.Object state,
                                                  java.lang.Object value)

      Resume execution of a suspended generator.
      Parameters:
        `cx` - The current context
        `scope` - Scope for the parent generator function
        `operation` - The resumption operation (next, send, etc.. )
        `state` - The generator state (has locals, stack, etc.)
        `value` - The return value of yield (if required).
      Returns:
        The next yielded value (if any)

    - #### getLanguageVersion

          protected abstract int getLanguageVersion()

    - #### getParamCount

          protected abstract int getParamCount()

      Get number of declared parameters. It should be 0 for scripts.

    - #### getParamAndVarCount

          protected abstract int getParamAndVarCount()

      Get number of declared parameters and variables defined through var statements.

    - #### getParamOrVarName

          protected abstract java.lang.String getParamOrVarName​(int index)

      Get parameter or variable name. If `index < `getParamCount()``, then return the name of the corresponding parameter. Otherwise return the name of variable.

    - #### getParamOrVarConst

          protected boolean getParamOrVarConst​(int index)

      Get parameter or variable const-ness. If `index < `getParamCount()``, then return the const-ness of the corresponding parameter. Otherwise return whether the variable is const.