# Deprecated API

## Contents

- Deprecated Interfaces
- Deprecated Exceptions
- Deprecated Fields
- Deprecated Methods
- Deprecated Constructors

- Deprecated Interfaces
  Interface and Description
  org.mozilla.javascript.ContextListener Embeddings that wish to customize newly created `Context` instances should implement `ContextFactory.Listener`.

- Deprecated Exceptions
  Exceptions and Description
  org.mozilla.javascript.ClassDefinitionException The exception is no longer thrown by Rhino runtime as `EvaluatorException` is used instead.
  org.mozilla.javascript.NotAFunctionException The exception is no longer thrown by Rhino runtime as `EvaluatorException` is used instead.
  org.mozilla.javascript.PropertyException This exception is no longer thrown by Rhino runtime.

- Deprecated Fields
  Field and Description
  org.mozilla.javascript.Context.FEATURE_PARENT_PROTO_PROPRTIES In previous releases, this name was given to FEATURE_PARENT_PROTO_PROPERTIES.
  org.mozilla.javascript.Context.FEATURE_PARENT_PROTO_PROPRTIES In previous releases, this name was given to FEATURE_PARENT_PROTO_PROPERTIES.

- Deprecated Methods
  Method and Description
  org.mozilla.javascript.Context.addContextListener(ContextListener)
  org.mozilla.javascript.Context.addContextListener(ContextListener)
  org.mozilla.javascript.Context.call(ContextAction) use `ContextFactory.call(ContextAction)` instead as this method relies on usage of a static singleton "global" ContextFactory.
  org.mozilla.javascript.Context.call(ContextAction) use `ContextFactory.call(ContextAction)` instead as this method relies on usage of a static singleton "global" ContextFactory.
  org.mozilla.javascript.ScriptRuntime.call(Context, Object, Object, Object[], Scriptable) The method is only present for compatibility.
  org.mozilla.javascript.NativeJavaObject.coerceType(Class<?>, Object) as of 1.5 Release 4
  org.mozilla.javascript.Context.compileReader(Scriptable, Reader, String, int, Object)
  org.mozilla.javascript.Context.compileReader(Scriptable, Reader, String, int, Object)
  org.mozilla.javascript.NativeGlobal.constructError(Context, String, String, Scriptable) Use `ScriptRuntime.constructError(String,String)` instead.
  org.mozilla.javascript.NativeGlobal.constructError(Context, String, String, Scriptable, String, int, int, String) Use `ScriptRuntime.constructError(String,String,String,int,String,int)` instead.
  org.mozilla.javascript.ContextListener.contextEntered(Context) Rhino runtime never calls the method.
  org.mozilla.javascript.ContextListener.contextExited(Context) Rhino runtime never calls the method.
  org.mozilla.javascript.FunctionObject.convertArg(Context, Scriptable, Object, Class<?>) Use `FunctionObject.getTypeTag(Class)` and `FunctionObject.convertArg(Context, Scriptable, Object, int)` for type conversion.
  org.mozilla.javascript.FunctionObject.convertArg(Context, Scriptable, Object, Class<?>) Use `FunctionObject.getTypeTag(Class)` and `FunctionObject.convertArg(Context, Scriptable, Object, int)` for type conversion.
  org.mozilla.javascript.ScriptRuntime.delete(Object, Object, Context) Use `ScriptRuntime.delete(Object, Object, Context, Scriptable, boolean)` instead
  org.mozilla.javascript.ScriptRuntime.delete(Object, Object, Context, boolean) Use `ScriptRuntime.delete(Object, Object, Context, Scriptable, boolean)` instead
  org.mozilla.javascript.optimizer.OptRuntime.elemIncrDecr(Object, double, Context, int) Use `OptRuntime.elemIncrDecr(Object, double, Context, Scriptable, int)` instead
  org.mozilla.javascript.ScriptRuntime.elemIncrDecr(Object, Object, Context, int) Use `ScriptRuntime.elemIncrDecr(Object, Object, Context, Scriptable, int)` instead
  org.mozilla.javascript.ContextFactory.enter() use `ContextFactory.enterContext()` instead
  org.mozilla.javascript.ContextFactory.enter() use `ContextFactory.enterContext()` instead
  org.mozilla.javascript.Context.enter(Context) use `ContextFactory.enterContext(Context)` instead as this method relies on usage of a static singleton "global" ContextFactory.
  org.mozilla.javascript.Context.enter(Context) use `ContextFactory.enterContext(Context)` instead as this method relies on usage of a static singleton "global" ContextFactory.
  org.mozilla.javascript.ScriptRuntime.enumInit(Object, Context, boolean) Use `ScriptRuntime.enumInit(Object, Context, Scriptable, int)` instead
  org.mozilla.javascript.ScriptRuntime.enumInit(Object, Context, int) Use `ScriptRuntime.enumInit(Object, Context, Scriptable, int)` instead
  org.mozilla.javascript.SecurityController.execWithDomain(Context, Scriptable, Script, Object) The application should not override this method and instead override `SecurityController.callWithDomain(Object securityDomain, Context cx, Callable callable, Scriptable scope, Scriptable thisObj, Object[] args)`.
  org.mozilla.javascript.SecurityController.execWithDomain(Context, Scriptable, Script, Object) The application should not override this method and instead override `SecurityController.callWithDomain(Object securityDomain, Context cx, Callable callable, Scriptable scope, Scriptable thisObj, Object[] args)`.
  org.mozilla.javascript.ContextFactory.exit() Use `Context.exit()` instead.
  org.mozilla.javascript.ContextFactory.exit() Use `Context.exit()` instead.
  org.mozilla.javascript.ScriptableObject.getAttributes(int, Scriptable) Use `ScriptableObject.getAttributes(int index)`. The engine always ignored the start argument.
  org.mozilla.javascript.ScriptableObject.getAttributes(int, Scriptable) Use `ScriptableObject.getAttributes(int index)`. The engine always ignored the start argument.
  org.mozilla.javascript.ScriptableObject.getAttributes(String, Scriptable) Use `ScriptableObject.getAttributes(String name)`. The engine always ignored the start argument.
  org.mozilla.javascript.ScriptableObject.getAttributes(String, Scriptable) Use `ScriptableObject.getAttributes(String name)`. The engine always ignored the start argument.
  org.mozilla.javascript.EcmaError.getColumnNumber() Use `RhinoException.columnNumber()` from the super class.
  org.mozilla.javascript.EvaluatorException.getColumnNumber() Use `RhinoException.columnNumber()` from the super class.
  org.mozilla.javascript.EvaluatorException.getColumnNumber() Use `RhinoException.columnNumber()` from the super class.
  org.mozilla.javascript.EcmaError.getColumnNumber() Use `RhinoException.columnNumber()` from the super class.
  org.mozilla.javascript.ScriptRuntime.getElemFunctionAndThis(Object, Object, Context) Use `ScriptRuntime.getElemFunctionAndThis(Object, Object, Context, Scriptable)` instead
  org.mozilla.javascript.EcmaError.getErrorObject() Always returns null.
  org.mozilla.javascript.EcmaError.getErrorObject() Always returns null.
  org.mozilla.javascript.EcmaError.getLineNumber() Use `RhinoException.lineNumber()` from the super class.
  org.mozilla.javascript.EvaluatorException.getLineNumber() Use `RhinoException.lineNumber()` from the super class.
  org.mozilla.javascript.JavaScriptException.getLineNumber() Use `RhinoException.lineNumber()` from the super class.
  org.mozilla.javascript.EvaluatorException.getLineNumber() Use `RhinoException.lineNumber()` from the super class.
  org.mozilla.javascript.EcmaError.getLineNumber() Use `RhinoException.lineNumber()` from the super class.
  org.mozilla.javascript.JavaScriptException.getLineNumber() Use `RhinoException.lineNumber()` from the super class.
  org.mozilla.javascript.EcmaError.getLineSource() Use `RhinoException.lineSource()` from the super class.
  org.mozilla.javascript.EvaluatorException.getLineSource() Use `RhinoException.lineSource()` from the super class.
  org.mozilla.javascript.EvaluatorException.getLineSource() Use `RhinoException.lineSource()` from the super class.
  org.mozilla.javascript.EcmaError.getLineSource() Use `RhinoException.lineSource()` from the super class.
  org.mozilla.javascript.ScriptRuntime.getObjectElem(Object, Object, Context) Use `ScriptRuntime.getObjectElem(Object, Object, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.getObjectIndex(Object, double, Context) Use `ScriptRuntime.getObjectIndex(Object, double, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.getObjectProp(Object, String, Context) Use `ScriptRuntime.getObjectProp(Object, String, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.getObjectPropNoWarn(Object, String, Context) Use `ScriptRuntime.getObjectPropNoWarn(Object, String, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(Object, String, Context) Use `ScriptRuntime.getPropFunctionAndThis(Object, String, Context, Scriptable)` instead
  org.mozilla.javascript.RhinoException.getScriptStackTrace(FilenameFilter) the filter argument is ignored as we are able to recognize script stack elements by our own. Use #getScriptStackTrace() instead.
  org.mozilla.javascript.RhinoException.getScriptStackTrace(FilenameFilter) the filter argument is ignored as we are able to recognize script stack elements by our own. Use #getScriptStackTrace() instead.
  org.mozilla.javascript.EcmaError.getSourceName() Use `RhinoException.sourceName()` from the super class.
  org.mozilla.javascript.EvaluatorException.getSourceName() Use `RhinoException.sourceName()` from the super class.
  org.mozilla.javascript.JavaScriptException.getSourceName() Use `RhinoException.sourceName()` from the super class.
  org.mozilla.javascript.EvaluatorException.getSourceName() Use `RhinoException.sourceName()` from the super class.
  org.mozilla.javascript.EcmaError.getSourceName() Use `RhinoException.sourceName()` from the super class.
  org.mozilla.javascript.JavaScriptException.getSourceName() Use `RhinoException.sourceName()` from the super class.
  org.mozilla.javascript.ImporterTopLevel.importPackage(Context, Scriptable, Object[], Function) Kept only for compatibility.
  org.mozilla.javascript.ImporterTopLevel.importPackage(Context, Scriptable, Object[], Function) Kept only for compatibility.
  org.mozilla.javascript.ClassCache.isInvokerOptimizationEnabled() The method always returns false.
  org.mozilla.javascript.ClassCache.isInvokerOptimizationEnabled() The method always returns false.
  org.mozilla.javascript.NativeArray.jsGet_length() Use `NativeArray.getLength()` instead.
  org.mozilla.javascript.NativeFunction.jsGet_name() Use `BaseFunction.getFunctionName()` instead. For backwards compatibility keep an old method name used by Batik and possibly others.
  org.mozilla.javascript.ScriptRuntime.nameIncrDecr(Scriptable, String, int) Use `ScriptRuntime.nameIncrDecr(Scriptable, String, Context, int)` instead
  org.mozilla.javascript.ScriptRuntime.newObjectLiteral(Object[], Object[], Context, Scriptable) Use `ScriptRuntime.newObjectLiteral(Object[], Object[], int[], Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.propIncrDecr(Object, String, Context, int) Use `ScriptRuntime.propIncrDecr(Object, String, Context, Scriptable, int)` instead
  org.mozilla.javascript.ScriptRuntime.refIncrDecr(Ref, Context, int) Use `ScriptRuntime.refIncrDecr(Ref, Context, Scriptable, int)` instead
  org.mozilla.javascript.ScriptRuntime.refSet(Ref, Object, Context) Use `ScriptRuntime.refSet(Ref, Object, Context, Scriptable)` instead
  org.mozilla.javascript.Context.removeContextListener(ContextListener)
  org.mozilla.javascript.Context.removeContextListener(ContextListener)
  org.mozilla.javascript.Ref.set(Context, Object) Use `Ref.set(Context, Scriptable, Object)` instead
  org.mozilla.javascript.ScriptableObject.setAttributes(int, Scriptable, int) Use `ScriptableObject.setAttributes(int index, int attributes)`. The engine always ignored the start argument.
  org.mozilla.javascript.ScriptableObject.setAttributes(int, Scriptable, int) Use `ScriptableObject.setAttributes(int index, int attributes)`. The engine always ignored the start argument.
  org.mozilla.javascript.ScriptableObject.setAttributes(String, Scriptable, int) Use `ScriptableObject.setAttributes(String name, int attributes)`. The engine always ignored the start argument.
  org.mozilla.javascript.ScriptableObject.setAttributes(String, Scriptable, int) Use `ScriptableObject.setAttributes(String name, int attributes)`. The engine always ignored the start argument.
  org.mozilla.javascript.Context.setCachingEnabled(boolean)
  org.mozilla.javascript.Context.setCachingEnabled(boolean)
  org.mozilla.javascript.ClassCache.setInvokerOptimizationEnabled(boolean) The method does nothing. Invoker optimization is no longer used by Rhino. On modern JDK like 1.4 or 1.5 the disadvantages of the optimization like increased memory usage or longer initialization time overweight small speed increase that can be gained using generated proxy class to replace reflection.
  org.mozilla.javascript.ClassCache.setInvokerOptimizationEnabled(boolean) The method does nothing. Invoker optimization is no longer used by Rhino. On modern JDK like 1.4 or 1.5 the disadvantages of the optimization like increased memory usage or longer initialization time overweight small speed increase that can be gained using generated proxy class to replace reflection.
  org.mozilla.javascript.ScriptRuntime.setObjectElem(Object, Object, Object, Context) Use `ScriptRuntime.setObjectElem(Object, Object, Object, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.setObjectIndex(Object, double, Object, Context) Use `ScriptRuntime.setObjectIndex(Object, double, Object, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.setObjectProp(Object, String, Object, Context) Use `ScriptRuntime.setObjectProp(Object, String, Object, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.specialRef(Object, String, Context) Use `ScriptRuntime.specialRef(Object, String, Context, Scriptable)` instead
  org.mozilla.javascript.ScriptRuntime.toObject(Context, Scriptable, Object, Class<?>) Use `ScriptRuntime.toObject(Context, Scriptable, Object)` instead.
  org.mozilla.javascript.Context.toObject(Object, Scriptable, Class<?>)
  org.mozilla.javascript.Context.toObject(Object, Scriptable, Class<?>)
  org.mozilla.javascript.ScriptRuntime.toObject(Scriptable, Object, Class<?>) Use `ScriptRuntime.toObject(Scriptable, Object)` instead.
  org.mozilla.javascript.ScriptRuntime.toObjectOrNull(Context, Object) Use `ScriptRuntime.toObjectOrNull(Context, Object, Scriptable)` instead
  org.mozilla.javascript.Context.toType(Object, Class<?>)
  org.mozilla.javascript.Context.toType(Object, Class<?>)
  org.mozilla.javascript.ScriptRuntime.typeErrorThrower() `ScriptRuntime.typeErrorThrower(Context)`
  org.mozilla.javascript.WrappedException.unwrap() Use `WrappedException.getWrappedException()` instead.
  org.mozilla.javascript.WrappedException.unwrap() Use `WrappedException.getWrappedException()` instead.
  org.mozilla.javascript.NativeJavaObject.wrap(Scriptable, Object, Class<?>) Use `Context.getWrapFactory()` together with calling `WrapFactory.wrap(Context, Scriptable, Object, Class)`

- Deprecated Constructors
  Constructor and Description
  org.mozilla.javascript.Context() this constructor is deprecated because it creates a dependency on a static singleton context factory. Use `ContextFactory.enter()` or `ContextFactory.call(ContextAction)` instead. If you subclass this class, consider using `Context.Context(ContextFactory)` constructor instead in the subclasses' constructors.
  org.mozilla.javascript.Context() this constructor is deprecated because it creates a dependency on a static singleton context factory. Use `ContextFactory.enter()` or `ContextFactory.call(ContextAction)` instead. If you subclass this class, consider using `Context.Context(ContextFactory)` constructor instead in the subclasses' constructors.
  org.mozilla.javascript.EcmaError(Scriptable, String, int, int, String) EcmaError error instances should not be constructed explicitly since they are generated by the engine.
  org.mozilla.javascript.EcmaError(Scriptable, String, int, int, String) EcmaError error instances should not be constructed explicitly since they are generated by the engine.
  org.mozilla.javascript.JavaScriptException(Object) Use `WrappedException.WrappedException(Throwable)` to report exceptions in Java code.
  org.mozilla.javascript.JavaScriptException(Object) Use `WrappedException.WrappedException(Throwable)` to report exceptions in Java code.
  org.mozilla.javascript.NativeJavaPackage(String) NativeJavaPackage is an internal class, do not use it directly.
  org.mozilla.javascript.NativeJavaPackage(String, ClassLoader) NativeJavaPackage is an internal class, do not use it directly.