## 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

    public abstract class NativeFunction

extends BaseFunction

This class implements the Function native object. See ECMA 15.3.

Author:
  Norris Boyd
See Also:
  Serialized Form

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
`NativeFunction()`

Method Summary
`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. For backwards compatibility keep an old method name used by Batik and possibly others.
`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, getTypeOf, hasInstance, initPrototypeId, setImmunePrototypeProperty, setInstanceIdValue`

Methods inherited from class org.mozilla.javascript.IdScriptableObject
`activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultPut, defineOwnProperty, delete, exportAsJSClass, get, getAttributes, getOwnPropertyDescriptor, has, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, instanceIdInfo, put, setAttributes`

Methods inherited from class org.mozilla.javascript.ScriptableObject

`applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getSlot, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sealObject, setAttributes, setAttributes, setAttributes, 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

    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.