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

### Property Summary

### Properties inherited from class org.mozilla.javascript.BaseFunction

`hasPrototypeProperty`

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

### Method Summary

Methods
`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, getPrototypeProperty, getTypeOf, hasInstance, hasPrototypeProperty, 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, setInstanceIdAttributes`

### 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, 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, sameValue, 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.