org.mozilla.javascript
Class ScriptRuntime

java.lang.Object
  extended by org.mozilla.javascript.ScriptRuntime
Direct Known Subclasses:
OptRuntime

public class ScriptRuntime
extends java.lang.Object

This is the class that implements the runtime.

Author:
Norris Boyd

Nested Class Summary
static interface ScriptRuntime.MessageProvider
          This is an interface defining a message provider.
 
Field Summary
static java.lang.Class<?> BooleanClass
           
static java.lang.Class<?> ByteClass
           
static java.lang.Class<?> CharacterClass
           
static java.lang.Class<?> ClassClass
           
static java.lang.Class<?> ContextClass
           
static java.lang.Class<?> ContextFactoryClass
           
static java.lang.Class<?> DateClass
           
static java.lang.Class<?> DoubleClass
           
static java.lang.Object[] emptyArgs
           
static java.lang.String[] emptyStrings
           
static int ENUMERATE_ARRAY
           
static int ENUMERATE_ARRAY_NO_ITERATOR
           
static int ENUMERATE_KEYS
           
static int ENUMERATE_KEYS_NO_ITERATOR
           
static int ENUMERATE_VALUES
           
static int ENUMERATE_VALUES_NO_ITERATOR
           
static java.lang.Class<?> FloatClass
           
static java.lang.Class<?> FunctionClass
           
static java.lang.Class<?> IntegerClass
           
static java.lang.Class<?> LongClass
           
static ScriptRuntime.MessageProvider messageProvider
           
static double NaN
           
static java.lang.Double NaNobj
           
static double negativeZero
           
static java.lang.Class<?> NumberClass
           
static java.lang.Class<?> ObjectClass
           
static java.util.Locale ROOT_LOCALE
           
static java.lang.Class<Scriptable> ScriptableClass
           
static java.lang.Class<?> ScriptableObjectClass
           
static java.lang.Class<?> ShortClass
           
static java.lang.Class<?> StringClass
           
 
Constructor Summary
protected ScriptRuntime()
          No instances should be created.
 
Method Summary
static java.lang.CharSequence add(java.lang.CharSequence val1, java.lang.Object val2)
           
static java.lang.CharSequence add(java.lang.Object val1, java.lang.CharSequence val2)
           
static java.lang.Object add(java.lang.Object val1, java.lang.Object val2, Context cx)
           
static void addInstructionCount(Context cx, int instructionsToAdd)
           
static java.lang.Object applyOrCall(boolean isApply, Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)
          Function.prototype.apply and Function.prototype.call See Ecma 15.3.4.[34]
static Scriptable bind(Context cx, Scriptable scope, java.lang.String id)
          Returns the object in the scope chain that has a given property.
static java.lang.Object call(Context cx, java.lang.Object fun, java.lang.Object thisArg, java.lang.Object[] args, Scriptable scope)
          Deprecated. The method is only present for compatibility.
static Ref callRef(Callable function, Scriptable thisObj, java.lang.Object[] args, Context cx)
          Perform function call in reference context.
static java.lang.Object callSpecial(Context cx, Callable fun, Scriptable thisObj, java.lang.Object[] args, Scriptable scope, Scriptable callerThis, int callType, java.lang.String filename, int lineNumber)
           
static RegExpProxy checkRegExpProxy(Context cx)
           
static boolean cmp_LE(java.lang.Object val1, java.lang.Object val2)
           
static boolean cmp_LT(java.lang.Object val1, java.lang.Object val2)
           
static EcmaError constructError(java.lang.String error, java.lang.String message)
           
static EcmaError constructError(java.lang.String error, java.lang.String message, int lineNumberDelta)
           
static EcmaError constructError(java.lang.String error, java.lang.String message, java.lang.String sourceName, int lineNumber, java.lang.String lineSource, int columnNumber)
           
static Scriptable createFunctionActivation(NativeFunction funObj, Scriptable scope, java.lang.Object[] args)
           
static java.lang.Object delete(java.lang.Object obj, java.lang.Object id, Context cx)
          Deprecated.  
static java.lang.Object delete(java.lang.Object obj, java.lang.Object id, Context cx, boolean isName)
          The delete operator See ECMA 11.4.1 In ECMA 0.19, the description of the delete operator (11.4.1) assumes that the [[Delete]] method returns a value.
static boolean deleteObjectElem(Scriptable target, java.lang.Object elem, Context cx)
           
static java.lang.Object doTopCall(Callable callable, Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)
           
static java.lang.Object elemIncrDecr(java.lang.Object obj, java.lang.Object index, Context cx, int incrDecrMask)
           
static void enterActivationFunction(Context cx, Scriptable scope)
           
static Scriptable enterDotQuery(java.lang.Object value, Scriptable scope)
           
static Scriptable enterWith(java.lang.Object obj, Context cx, Scriptable scope)
           
static java.lang.Object enumId(java.lang.Object enumObj, Context cx)
           
static java.lang.Object enumInit(java.lang.Object value, Context cx, boolean enumValues)
           
static java.lang.Object enumInit(java.lang.Object value, Context cx, int enumType)
           
static java.lang.Boolean enumNext(java.lang.Object enumObj)
           
static java.lang.Object enumValue(java.lang.Object enumObj, Context cx)
           
static boolean eq(java.lang.Object x, java.lang.Object y)
          Equality See ECMA 11.9
static java.lang.String escapeAttributeValue(java.lang.Object value, Context cx)
          Escapes the reserved characters in a value of an attribute
static java.lang.String escapeString(java.lang.String s)
           
static java.lang.String escapeString(java.lang.String s, char escapeQuote)
          For escaping strings printed by object and array literals; not quite the same as 'escape.'
static java.lang.String escapeTextValue(java.lang.Object value, Context cx)
          Escapes the reserved characters in a value of a text node
static java.lang.Object evalSpecial(Context cx, Scriptable scope, java.lang.Object thisArg, java.lang.Object[] args, java.lang.String filename, int lineNumber)
          The eval function property of the global object.
static void exitActivationFunction(Context cx)
           
static java.lang.Object[] getArrayElements(Scriptable object)
           
static Callable getElemFunctionAndThis(java.lang.Object obj, java.lang.Object elem, Context cx)
          Prepare for calling obj[id](...): return function corresponding to obj[id] and make obj properly converted to Scriptable available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj.
static ScriptableObject getGlobal(Context cx)
           
static ScriptableObject getLibraryScopeOrNull(Scriptable scope)
           
static java.lang.String getMessage(java.lang.String messageId, java.lang.Object[] arguments)
           
static java.lang.String getMessage0(java.lang.String messageId)
           
static java.lang.String getMessage1(java.lang.String messageId, java.lang.Object arg1)
           
static java.lang.String getMessage2(java.lang.String messageId, java.lang.Object arg1, java.lang.Object arg2)
           
static java.lang.String getMessage3(java.lang.String messageId, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
static java.lang.String getMessage4(java.lang.String messageId, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3, java.lang.Object arg4)
           
static Callable getNameFunctionAndThis(java.lang.String name, Context cx, Scriptable scope)
          Prepare for calling name(...): return function corresponding to name and make current top scope available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj.
static java.lang.Object getObjectElem(java.lang.Object obj, java.lang.Object elem, Context cx)
          Call obj.[[Get]](id)
static java.lang.Object getObjectElem(java.lang.Object obj, java.lang.Object elem, Context cx, Scriptable scope)
          Call obj.[[Get]](id)
static java.lang.Object getObjectElem(Scriptable obj, java.lang.Object elem, Context cx)
           
static java.lang.Object getObjectIndex(java.lang.Object obj, double dblIndex, Context cx)
           
static java.lang.Object getObjectIndex(Scriptable obj, int index, Context cx)
           
static java.lang.Object getObjectProp(java.lang.Object obj, java.lang.String property, Context cx)
          Version of getObjectElem when elem is a valid JS identifier name.
static java.lang.Object getObjectProp(java.lang.Object obj, java.lang.String property, Context cx, Scriptable scope)
           
static java.lang.Object getObjectProp(Scriptable obj, java.lang.String property, Context cx)
           
static java.lang.Object getObjectPropNoWarn(java.lang.Object obj, java.lang.String property, Context cx)
           
static Callable getPropFunctionAndThis(java.lang.Object obj, java.lang.String property, Context cx)
          Prepare for calling obj.property(...): return function corresponding to obj.property and make obj properly converted to Scriptable available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj.
static Callable getPropFunctionAndThis(java.lang.Object obj, java.lang.String property, Context cx, Scriptable scope)
          Prepare for calling obj.property(...): return function corresponding to obj.property and make obj properly converted to Scriptable available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj.
static RegExpProxy getRegExpProxy(Context cx)
           
static Scriptable getTopCallScope(Context cx)
           
static java.lang.Object getTopLevelProp(Scriptable scope, java.lang.String id)
           
static Callable getValueFunctionAndThis(java.lang.Object value, Context cx)
          Prepare for calling (...): return function corresponding to and make parent scope of the function available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj.
static boolean hasObjectElem(Scriptable target, java.lang.Object elem, Context cx)
           
static boolean hasTopCall(Context cx)
           
static boolean in(java.lang.Object a, java.lang.Object b, Context cx)
          The in operator.
static long indexFromString(java.lang.String str)
          Return -1L if str is not an index, or the index value as lower 32 bits of the result.
static void initFunction(Context cx, Scriptable scope, NativeFunction function, int type, boolean fromEvalCode)
           
static void initScript(NativeFunction funObj, Scriptable thisObj, Context cx, Scriptable scope, boolean evalScript)
           
static ScriptableObject initStandardObjects(Context cx, ScriptableObject scope, boolean sealed)
           
static boolean instanceOf(java.lang.Object a, java.lang.Object b, Context cx)
          The instanceof operator.
static boolean isArrayObject(java.lang.Object obj)
           
static boolean isJSLineTerminator(int c)
           
static boolean isJSWhitespaceOrLineTerminator(int c)
           
static boolean isPrimitive(java.lang.Object obj)
           
static boolean isRhinoRuntimeType(java.lang.Class<?> cl)
           
static boolean jsDelegatesTo(Scriptable lhs, Scriptable rhs)
          Delegates to
static Scriptable lastStoredScriptable(Context cx)
           
static long lastUint32Result(Context cx)
           
static Scriptable leaveDotQuery(Scriptable scope)
           
static Scriptable leaveWith(Scriptable scope)
           
static Ref memberRef(java.lang.Object obj, java.lang.Object elem, Context cx, int memberTypeFlags)
           
static Ref memberRef(java.lang.Object obj, java.lang.Object namespace, java.lang.Object elem, Context cx, int memberTypeFlags)
           
static java.lang.Object name(Context cx, Scriptable scope, java.lang.String name)
          Looks up a name in the scope chain and returns its value.
static java.lang.Object nameIncrDecr(Scriptable scopeChain, java.lang.String id, Context cx, int incrDecrMask)
           
static java.lang.Object nameIncrDecr(Scriptable scopeChain, java.lang.String id, int incrDecrMask)
          Deprecated. The method is only present for compatibility.
static Ref nameRef(java.lang.Object name, Context cx, Scriptable scope, int memberTypeFlags)
           
static Ref nameRef(java.lang.Object namespace, java.lang.Object name, Context cx, Scriptable scope, int memberTypeFlags)
           
static Scriptable newArrayLiteral(java.lang.Object[] objects, int[] skipIndices, Context cx, Scriptable scope)
           
static Scriptable newBuiltinObject(Context cx, Scriptable scope, TopLevel.Builtins type, java.lang.Object[] args)
           
static Scriptable newCatchScope(java.lang.Throwable t, Scriptable lastCatchScope, java.lang.String exceptionName, Context cx, Scriptable scope)
           
static Scriptable newObject(Context cx, Scriptable scope, java.lang.String constructorName, java.lang.Object[] args)
           
static Scriptable newObject(java.lang.Object fun, Context cx, Scriptable scope, java.lang.Object[] args)
          Operator new.
static Scriptable newObjectLiteral(java.lang.Object[] propertyIds, java.lang.Object[] propertyValues, Context cx, Scriptable scope)
          Deprecated. This method only present for compatibility.
static Scriptable newObjectLiteral(java.lang.Object[] propertyIds, java.lang.Object[] propertyValues, int[] getterSetters, Context cx, Scriptable scope)
           
static java.lang.Object newSpecial(Context cx, java.lang.Object fun, java.lang.Object[] args, Scriptable scope, int callType)
           
static java.lang.RuntimeException notFoundError(Scriptable object, java.lang.String property)
           
static java.lang.RuntimeException notFunctionError(java.lang.Object value)
           
static java.lang.RuntimeException notFunctionError(java.lang.Object value, java.lang.Object messageHelper)
           
static java.lang.RuntimeException notFunctionError(java.lang.Object obj, java.lang.Object value, java.lang.String propertyName)
           
static java.lang.String numberToString(double d, int base)
           
static java.lang.Object[] padArguments(java.lang.Object[] args, int count)
          Helper function for builtin objects that use the varargs form.
static java.lang.Object propIncrDecr(java.lang.Object obj, java.lang.String id, Context cx, int incrDecrMask)
           
static java.lang.Object refDel(Ref ref, Context cx)
           
static java.lang.Object refGet(Ref ref, Context cx)
           
static java.lang.Object refIncrDecr(Ref ref, Context cx, int incrDecrMask)
           
static java.lang.Object refSet(Ref ref, java.lang.Object value, Context cx)
           
static java.lang.Object searchDefaultNamespace(Context cx)
           
static void setBuiltinProtoAndParent(ScriptableObject object, Scriptable scope, TopLevel.Builtins type)
           
static java.lang.Object setConst(Scriptable bound, java.lang.Object value, Context cx, java.lang.String id)
           
static java.lang.Object setDefaultNamespace(java.lang.Object namespace, Context cx)
           
static void setEnumNumbers(java.lang.Object enumObj, boolean enumNumbers)
           
static void setFunctionProtoAndParent(BaseFunction fn, Scriptable scope)
           
static java.lang.Object setName(Scriptable bound, java.lang.Object value, Context cx, Scriptable scope, java.lang.String id)
           
static java.lang.Object setObjectElem(java.lang.Object obj, java.lang.Object elem, java.lang.Object value, Context cx)
           
static java.lang.Object setObjectElem(Scriptable obj, java.lang.Object elem, java.lang.Object value, Context cx)
           
static java.lang.Object setObjectIndex(java.lang.Object obj, double dblIndex, java.lang.Object value, Context cx)
           
static java.lang.Object setObjectIndex(Scriptable obj, int index, java.lang.Object value, Context cx)
           
static java.lang.Object setObjectProp(java.lang.Object obj, java.lang.String property, java.lang.Object value, Context cx)
          Version of setObjectElem when elem is a valid JS identifier name.
static java.lang.Object setObjectProp(Scriptable obj, java.lang.String property, java.lang.Object value, Context cx)
           
static void setObjectProtoAndParent(ScriptableObject object, Scriptable scope)
           
static void setRegExpProxy(Context cx, RegExpProxy proxy)
           
static boolean shallowEq(java.lang.Object x, java.lang.Object y)
           
static Ref specialRef(java.lang.Object obj, java.lang.String specialProperty, Context cx)
           
static void storeUint32Result(Context cx, long value)
           
static java.lang.Object strictSetName(Scriptable bound, java.lang.Object value, Context cx, Scriptable scope, java.lang.String id)
           
static long testUint32String(java.lang.String str)
          If str is a decimal presentation of Uint32 value, return it as long.
static JavaScriptException throwError(Context cx, Scriptable scope, java.lang.String message)
          Equivalent to executing "new Error(message)" from JavaScript.
static boolean toBoolean(java.lang.Object val)
          Convert the value to a boolean.
static java.lang.CharSequence toCharSequence(java.lang.Object val)
           
static int toInt32(double d)
           
static int toInt32(java.lang.Object val)
          See ECMA 9.5.
static int toInt32(java.lang.Object[] args, int index)
           
static double toInteger(double d)
           
static double toInteger(java.lang.Object val)
          See ECMA 9.4.
static double toInteger(java.lang.Object[] args, int index)
           
static Scriptable toIterator(Context cx, Scriptable scope, Scriptable obj, boolean keyOnly)
           
static double toNumber(java.lang.Object val)
          Convert the value to a number.
static double toNumber(java.lang.Object[] args, int index)
           
static double toNumber(java.lang.String s)
          ToNumber applied to the String type See ECMA 9.3.1
static Scriptable toObject(Context cx, Scriptable scope, java.lang.Object val)
          Convert the value to an object.
static Scriptable toObject(Context cx, Scriptable scope, java.lang.Object val, java.lang.Class<?> staticClass)
          Deprecated. Use toObject(Context, Scriptable, Object) instead.
static Scriptable toObject(Scriptable scope, java.lang.Object val)
           
static Scriptable toObject(Scriptable scope, java.lang.Object val, java.lang.Class<?> staticClass)
          Deprecated. Use toObject(Scriptable, Object) instead.
static Scriptable toObjectOrNull(Context cx, java.lang.Object obj)
          Warning: this doesn't allow to resolve primitive prototype properly when many top scopes are involved
static Scriptable toObjectOrNull(Context cx, java.lang.Object obj, Scriptable scope)
           
static java.lang.Object toPrimitive(java.lang.Object val)
           
static java.lang.Object toPrimitive(java.lang.Object val, java.lang.Class<?> typeHint)
           
static java.lang.String toString(double val)
          Optimized version of toString(Object) for numbers.
static java.lang.String toString(java.lang.Object val)
          Convert the value to a string.
static java.lang.String toString(java.lang.Object[] args, int index)
           
static char toUint16(java.lang.Object val)
          See ECMA 9.7.
static long toUint32(double d)
          See ECMA 9.6.
static long toUint32(java.lang.Object val)
           
static EcmaError typeError(java.lang.String message)
           
static EcmaError typeError0(java.lang.String messageId)
           
static EcmaError typeError1(java.lang.String messageId, java.lang.String arg1)
           
static EcmaError typeError2(java.lang.String messageId, java.lang.String arg1, java.lang.String arg2)
           
static EcmaError typeError3(java.lang.String messageId, java.lang.String arg1, java.lang.String arg2, java.lang.String arg3)
           
static BaseFunction typeErrorThrower()
          Returns representation of the [[ThrowTypeError]] object.
static java.lang.String typeof(java.lang.Object value)
          The typeof operator
static java.lang.String typeofName(Scriptable scope, java.lang.String id)
          The typeof operator that correctly handles the undefined case
static java.lang.RuntimeException undefCallError(java.lang.Object object, java.lang.Object id)
           
static java.lang.RuntimeException undefReadError(java.lang.Object object, java.lang.Object id)
           
static java.lang.RuntimeException undefWriteError(java.lang.Object object, java.lang.Object id, java.lang.Object value)
           
static java.lang.Object updateDotQuery(boolean value, Scriptable scope)
           
static java.lang.Boolean wrapBoolean(boolean b)
           
static java.lang.Integer wrapInt(int i)
           
static java.lang.Number wrapNumber(double x)
           
static Scriptable wrapRegExp(Context cx, Scriptable scope, java.lang.Object compiled)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BooleanClass

public static final java.lang.Class<?> BooleanClass

ByteClass

public static final java.lang.Class<?> ByteClass

CharacterClass

public static final java.lang.Class<?> CharacterClass

ClassClass

public static final java.lang.Class<?> ClassClass

DoubleClass

public static final java.lang.Class<?> DoubleClass

FloatClass

public static final java.lang.Class<?> FloatClass

IntegerClass

public static final java.lang.Class<?> IntegerClass

LongClass

public static final java.lang.Class<?> LongClass

NumberClass

public static final java.lang.Class<?> NumberClass

ObjectClass

public static final java.lang.Class<?> ObjectClass

ShortClass

public static final java.lang.Class<?> ShortClass

StringClass

public static final java.lang.Class<?> StringClass

DateClass

public static final java.lang.Class<?> DateClass

ContextClass

public static final java.lang.Class<?> ContextClass

ContextFactoryClass

public static final java.lang.Class<?> ContextFactoryClass

FunctionClass

public static final java.lang.Class<?> FunctionClass

ScriptableObjectClass

public static final java.lang.Class<?> ScriptableObjectClass

ScriptableClass

public static final java.lang.Class<Scriptable> ScriptableClass

ROOT_LOCALE

public static java.util.Locale ROOT_LOCALE

NaN

public static final double NaN

negativeZero

public static final double negativeZero

NaNobj

public static final java.lang.Double NaNobj

ENUMERATE_KEYS

public static final int ENUMERATE_KEYS
See Also:
Constant Field Values

ENUMERATE_VALUES

public static final int ENUMERATE_VALUES
See Also:
Constant Field Values

ENUMERATE_ARRAY

public static final int ENUMERATE_ARRAY
See Also:
Constant Field Values

ENUMERATE_KEYS_NO_ITERATOR

public static final int ENUMERATE_KEYS_NO_ITERATOR
See Also:
Constant Field Values

ENUMERATE_VALUES_NO_ITERATOR

public static final int ENUMERATE_VALUES_NO_ITERATOR
See Also:
Constant Field Values

ENUMERATE_ARRAY_NO_ITERATOR

public static final int ENUMERATE_ARRAY_NO_ITERATOR
See Also:
Constant Field Values

messageProvider

public static ScriptRuntime.MessageProvider messageProvider

emptyArgs

public static final java.lang.Object[] emptyArgs

emptyStrings

public static final java.lang.String[] emptyStrings
Constructor Detail

ScriptRuntime

protected ScriptRuntime()
No instances should be created.

Method Detail

typeErrorThrower

public static BaseFunction typeErrorThrower()
Returns representation of the [[ThrowTypeError]] object. See ECMA 5 spec, 13.2.3


isRhinoRuntimeType

public static boolean isRhinoRuntimeType(java.lang.Class<?> cl)

initStandardObjects

public static ScriptableObject initStandardObjects(Context cx,
                                                   ScriptableObject scope,
                                                   boolean sealed)

getLibraryScopeOrNull

public static ScriptableObject getLibraryScopeOrNull(Scriptable scope)

isJSLineTerminator

public static boolean isJSLineTerminator(int c)

isJSWhitespaceOrLineTerminator

public static boolean isJSWhitespaceOrLineTerminator(int c)

wrapBoolean

public static java.lang.Boolean wrapBoolean(boolean b)

wrapInt

public static java.lang.Integer wrapInt(int i)

wrapNumber

public static java.lang.Number wrapNumber(double x)

toBoolean

public static boolean toBoolean(java.lang.Object val)
Convert the value to a boolean. See ECMA 9.2.


toNumber

public static double toNumber(java.lang.Object val)
Convert the value to a number. See ECMA 9.3.


toNumber

public static double toNumber(java.lang.Object[] args,
                              int index)

toNumber

public static double toNumber(java.lang.String s)
ToNumber applied to the String type See ECMA 9.3.1


padArguments

public static java.lang.Object[] padArguments(java.lang.Object[] args,
                                              int count)
Helper function for builtin objects that use the varargs form. ECMA function formal arguments are undefined if not supplied; this function pads the argument array out to the expected length, if necessary.


escapeString

public static java.lang.String escapeString(java.lang.String s)

escapeString

public static java.lang.String escapeString(java.lang.String s,
                                            char escapeQuote)
For escaping strings printed by object and array literals; not quite the same as 'escape.'


toCharSequence

public static java.lang.CharSequence toCharSequence(java.lang.Object val)

toString

public static java.lang.String toString(java.lang.Object val)
Convert the value to a string. See ECMA 9.8.


toString

public static java.lang.String toString(java.lang.Object[] args,
                                        int index)

toString

public static java.lang.String toString(double val)
Optimized version of toString(Object) for numbers.


numberToString

public static java.lang.String numberToString(double d,
                                              int base)

toObject

public static Scriptable toObject(Scriptable scope,
                                  java.lang.Object val)

toObjectOrNull

public static Scriptable toObjectOrNull(Context cx,
                                        java.lang.Object obj)
Warning: this doesn't allow to resolve primitive prototype properly when many top scopes are involved


toObjectOrNull

public static Scriptable toObjectOrNull(Context cx,
                                        java.lang.Object obj,
                                        Scriptable scope)
Parameters:
scope - the scope that should be used to resolve primitive prototype

toObject

public static Scriptable toObject(Scriptable scope,
                                  java.lang.Object val,
                                  java.lang.Class<?> staticClass)
Deprecated. Use toObject(Scriptable, Object) instead.


toObject

public static Scriptable toObject(Context cx,
                                  Scriptable scope,
                                  java.lang.Object val)
Convert the value to an object. See ECMA 9.9.


toObject

public static Scriptable toObject(Context cx,
                                  Scriptable scope,
                                  java.lang.Object val,
                                  java.lang.Class<?> staticClass)
Deprecated. Use toObject(Context, Scriptable, Object) instead.


call

public static java.lang.Object call(Context cx,
                                    java.lang.Object fun,
                                    java.lang.Object thisArg,
                                    java.lang.Object[] args,
                                    Scriptable scope)
Deprecated. The method is only present for compatibility.


newObject

public static Scriptable newObject(Context cx,
                                   Scriptable scope,
                                   java.lang.String constructorName,
                                   java.lang.Object[] args)

newBuiltinObject

public static Scriptable newBuiltinObject(Context cx,
                                          Scriptable scope,
                                          TopLevel.Builtins type,
                                          java.lang.Object[] args)

toInteger

public static double toInteger(java.lang.Object val)
See ECMA 9.4.


toInteger

public static double toInteger(double d)

toInteger

public static double toInteger(java.lang.Object[] args,
                               int index)

toInt32

public static int toInt32(java.lang.Object val)
See ECMA 9.5.


toInt32

public static int toInt32(java.lang.Object[] args,
                          int index)

toInt32

public static int toInt32(double d)

toUint32

public static long toUint32(double d)
See ECMA 9.6.

Returns:
long value representing 32 bits unsigned integer

toUint32

public static long toUint32(java.lang.Object val)

toUint16

public static char toUint16(java.lang.Object val)
See ECMA 9.7.


setDefaultNamespace

public static java.lang.Object setDefaultNamespace(java.lang.Object namespace,
                                                   Context cx)

searchDefaultNamespace

public static java.lang.Object searchDefaultNamespace(Context cx)

getTopLevelProp

public static java.lang.Object getTopLevelProp(Scriptable scope,
                                               java.lang.String id)

indexFromString

public static long indexFromString(java.lang.String str)
Return -1L if str is not an index, or the index value as lower 32 bits of the result. Note that the result needs to be cast to an int in order to produce the actual index, which may be negative.


testUint32String

public static long testUint32String(java.lang.String str)
If str is a decimal presentation of Uint32 value, return it as long. Othewise return -1L;


getObjectElem

public static java.lang.Object getObjectElem(java.lang.Object obj,
                                             java.lang.Object elem,
                                             Context cx)
Call obj.[[Get]](id)


getObjectElem

public static java.lang.Object getObjectElem(java.lang.Object obj,
                                             java.lang.Object elem,
                                             Context cx,
                                             Scriptable scope)
Call obj.[[Get]](id)


getObjectElem

public static java.lang.Object getObjectElem(Scriptable obj,
                                             java.lang.Object elem,
                                             Context cx)

getObjectProp

public static java.lang.Object getObjectProp(java.lang.Object obj,
                                             java.lang.String property,
                                             Context cx)
Version of getObjectElem when elem is a valid JS identifier name.


getObjectProp

public static java.lang.Object getObjectProp(java.lang.Object obj,
                                             java.lang.String property,
                                             Context cx,
                                             Scriptable scope)
Parameters:
scope - the scope that should be used to resolve primitive prototype

getObjectProp

public static java.lang.Object getObjectProp(Scriptable obj,
                                             java.lang.String property,
                                             Context cx)

getObjectPropNoWarn

public static java.lang.Object getObjectPropNoWarn(java.lang.Object obj,
                                                   java.lang.String property,
                                                   Context cx)

getObjectIndex

public static java.lang.Object getObjectIndex(java.lang.Object obj,
                                              double dblIndex,
                                              Context cx)

getObjectIndex

public static java.lang.Object getObjectIndex(Scriptable obj,
                                              int index,
                                              Context cx)

setObjectElem

public static java.lang.Object setObjectElem(java.lang.Object obj,
                                             java.lang.Object elem,
                                             java.lang.Object value,
                                             Context cx)

setObjectElem

public static java.lang.Object setObjectElem(Scriptable obj,
                                             java.lang.Object elem,
                                             java.lang.Object value,
                                             Context cx)

setObjectProp

public static java.lang.Object setObjectProp(java.lang.Object obj,
                                             java.lang.String property,
                                             java.lang.Object value,
                                             Context cx)
Version of setObjectElem when elem is a valid JS identifier name.


setObjectProp

public static java.lang.Object setObjectProp(Scriptable obj,
                                             java.lang.String property,
                                             java.lang.Object value,
                                             Context cx)

setObjectIndex

public static java.lang.Object setObjectIndex(java.lang.Object obj,
                                              double dblIndex,
                                              java.lang.Object value,
                                              Context cx)

setObjectIndex

public static java.lang.Object setObjectIndex(Scriptable obj,
                                              int index,
                                              java.lang.Object value,
                                              Context cx)

deleteObjectElem

public static boolean deleteObjectElem(Scriptable target,
                                       java.lang.Object elem,
                                       Context cx)

hasObjectElem

public static boolean hasObjectElem(Scriptable target,
                                    java.lang.Object elem,
                                    Context cx)

refGet

public static java.lang.Object refGet(Ref ref,
                                      Context cx)

refSet

public static java.lang.Object refSet(Ref ref,
                                      java.lang.Object value,
                                      Context cx)

refDel

public static java.lang.Object refDel(Ref ref,
                                      Context cx)

specialRef

public static Ref specialRef(java.lang.Object obj,
                             java.lang.String specialProperty,
                             Context cx)

delete

public static java.lang.Object delete(java.lang.Object obj,
                                      java.lang.Object id,
                                      Context cx)
Deprecated. 


delete

public static java.lang.Object delete(java.lang.Object obj,
                                      java.lang.Object id,
                                      Context cx,
                                      boolean isName)
The delete operator See ECMA 11.4.1 In ECMA 0.19, the description of the delete operator (11.4.1) assumes that the [[Delete]] method returns a value. However, the definition of the [[Delete]] operator (8.6.2.5) does not define a return value. Here we assume that the [[Delete]] method doesn't return a value.


name

public static java.lang.Object name(Context cx,
                                    Scriptable scope,
                                    java.lang.String name)
Looks up a name in the scope chain and returns its value.


bind

public static Scriptable bind(Context cx,
                              Scriptable scope,
                              java.lang.String id)
Returns the object in the scope chain that has a given property. The order of evaluation of an assignment expression involves evaluating the lhs to a reference, evaluating the rhs, and then modifying the reference with the rhs value. This method is used to 'bind' the given name to an object containing that property so that the side effects of evaluating the rhs do not affect which property is modified. Typically used in conjunction with setName. See ECMA 10.1.4


setName

public static java.lang.Object setName(Scriptable bound,
                                       java.lang.Object value,
                                       Context cx,
                                       Scriptable scope,
                                       java.lang.String id)

strictSetName

public static java.lang.Object strictSetName(Scriptable bound,
                                             java.lang.Object value,
                                             Context cx,
                                             Scriptable scope,
                                             java.lang.String id)

setConst

public static java.lang.Object setConst(Scriptable bound,
                                        java.lang.Object value,
                                        Context cx,
                                        java.lang.String id)

toIterator

public static Scriptable toIterator(Context cx,
                                    Scriptable scope,
                                    Scriptable obj,
                                    boolean keyOnly)

enumInit

public static java.lang.Object enumInit(java.lang.Object value,
                                        Context cx,
                                        boolean enumValues)

enumInit

public static java.lang.Object enumInit(java.lang.Object value,
                                        Context cx,
                                        int enumType)

setEnumNumbers

public static void setEnumNumbers(java.lang.Object enumObj,
                                  boolean enumNumbers)

enumNext

public static java.lang.Boolean enumNext(java.lang.Object enumObj)

enumId

public static java.lang.Object enumId(java.lang.Object enumObj,
                                      Context cx)

enumValue

public static java.lang.Object enumValue(java.lang.Object enumObj,
                                         Context cx)

getNameFunctionAndThis

public static Callable getNameFunctionAndThis(java.lang.String name,
                                              Context cx,
                                              Scriptable scope)
Prepare for calling name(...): return function corresponding to name and make current top scope available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj. The caller must call ScriptRuntime.lastStoredScriptable() immediately after calling this method.


getElemFunctionAndThis

public static Callable getElemFunctionAndThis(java.lang.Object obj,
                                              java.lang.Object elem,
                                              Context cx)
Prepare for calling obj[id](...): return function corresponding to obj[id] and make obj properly converted to Scriptable available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj. The caller must call ScriptRuntime.lastStoredScriptable() immediately after calling this method.


getPropFunctionAndThis

public static Callable getPropFunctionAndThis(java.lang.Object obj,
                                              java.lang.String property,
                                              Context cx)
Prepare for calling obj.property(...): return function corresponding to obj.property and make obj properly converted to Scriptable available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj. The caller must call ScriptRuntime.lastStoredScriptable() immediately after calling this method. Warning: this doesn't allow to resolve primitive prototype properly when many top scopes are involved.


getPropFunctionAndThis

public static Callable getPropFunctionAndThis(java.lang.Object obj,
                                              java.lang.String property,
                                              Context cx,
                                              Scriptable scope)
Prepare for calling obj.property(...): return function corresponding to obj.property and make obj properly converted to Scriptable available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj. The caller must call ScriptRuntime.lastStoredScriptable() immediately after calling this method.


getValueFunctionAndThis

public static Callable getValueFunctionAndThis(java.lang.Object value,
                                               Context cx)
Prepare for calling (...): return function corresponding to and make parent scope of the function available as ScriptRuntime.lastStoredScriptable() for consumption as thisObj. The caller must call ScriptRuntime.lastStoredScriptable() immediately after calling this method.


callRef

public static Ref callRef(Callable function,
                          Scriptable thisObj,
                          java.lang.Object[] args,
                          Context cx)
Perform function call in reference context. Should always return value that can be passed to refGet(Ref, Context) or refSet(Ref, Object, Context) arbitrary number of times. The args array reference should not be stored in any object that is can be GC-reachable after this method returns. If this is necessary, store args.clone(), not args array itself.


newObject

public static Scriptable newObject(java.lang.Object fun,
                                   Context cx,
                                   Scriptable scope,
                                   java.lang.Object[] args)
Operator new. See ECMA 11.2.2


callSpecial

public static java.lang.Object callSpecial(Context cx,
                                           Callable fun,
                                           Scriptable thisObj,
                                           java.lang.Object[] args,
                                           Scriptable scope,
                                           Scriptable callerThis,
                                           int callType,
                                           java.lang.String filename,
                                           int lineNumber)

newSpecial

public static java.lang.Object newSpecial(Context cx,
                                          java.lang.Object fun,
                                          java.lang.Object[] args,
                                          Scriptable scope,
                                          int callType)

applyOrCall

public static java.lang.Object applyOrCall(boolean isApply,
                                           Context cx,
                                           Scriptable scope,
                                           Scriptable thisObj,
                                           java.lang.Object[] args)
Function.prototype.apply and Function.prototype.call See Ecma 15.3.4.[34]


evalSpecial

public static java.lang.Object evalSpecial(Context cx,
                                           Scriptable scope,
                                           java.lang.Object thisArg,
                                           java.lang.Object[] args,
                                           java.lang.String filename,
                                           int lineNumber)
The eval function property of the global object. See ECMA 15.1.2.1


typeof

public static java.lang.String typeof(java.lang.Object value)
The typeof operator


typeofName

public static java.lang.String typeofName(Scriptable scope,
                                          java.lang.String id)
The typeof operator that correctly handles the undefined case


add

public static java.lang.Object add(java.lang.Object val1,
                                   java.lang.Object val2,
                                   Context cx)

add

public static java.lang.CharSequence add(java.lang.CharSequence val1,
                                         java.lang.Object val2)

add

public static java.lang.CharSequence add(java.lang.Object val1,
                                         java.lang.CharSequence val2)

nameIncrDecr

public static java.lang.Object nameIncrDecr(Scriptable scopeChain,
                                            java.lang.String id,
                                            int incrDecrMask)
Deprecated. The method is only present for compatibility.


nameIncrDecr

public static java.lang.Object nameIncrDecr(Scriptable scopeChain,
                                            java.lang.String id,
                                            Context cx,
                                            int incrDecrMask)

propIncrDecr

public static java.lang.Object propIncrDecr(java.lang.Object obj,
                                            java.lang.String id,
                                            Context cx,
                                            int incrDecrMask)

elemIncrDecr

public static java.lang.Object elemIncrDecr(java.lang.Object obj,
                                            java.lang.Object index,
                                            Context cx,
                                            int incrDecrMask)

refIncrDecr

public static java.lang.Object refIncrDecr(Ref ref,
                                           Context cx,
                                           int incrDecrMask)

toPrimitive

public static java.lang.Object toPrimitive(java.lang.Object val)

toPrimitive

public static java.lang.Object toPrimitive(java.lang.Object val,
                                           java.lang.Class<?> typeHint)

eq

public static boolean eq(java.lang.Object x,
                         java.lang.Object y)
Equality See ECMA 11.9


isPrimitive

public static boolean isPrimitive(java.lang.Object obj)

shallowEq

public static boolean shallowEq(java.lang.Object x,
                                java.lang.Object y)

instanceOf

public static boolean instanceOf(java.lang.Object a,
                                 java.lang.Object b,
                                 Context cx)
The instanceof operator.

Returns:
a instanceof b

jsDelegatesTo

public static boolean jsDelegatesTo(Scriptable lhs,
                                    Scriptable rhs)
Delegates to

Returns:
true iff rhs appears in lhs' proto chain

in

public static boolean in(java.lang.Object a,
                         java.lang.Object b,
                         Context cx)
The in operator. This is a new JS 1.3 language feature. The in operator mirrors the operation of the for .. in construct, and tests whether the rhs has the property given by the lhs. It is different from the for .. in construct in that:
- it doesn't perform ToObject on the right hand side
- it returns true for DontEnum properties.

Parameters:
a - the left hand operand
b - the right hand operand
Returns:
true if property name or element number a is a property of b

cmp_LT

public static boolean cmp_LT(java.lang.Object val1,
                             java.lang.Object val2)

cmp_LE

public static boolean cmp_LE(java.lang.Object val1,
                             java.lang.Object val2)

getGlobal

public static ScriptableObject getGlobal(Context cx)

hasTopCall

public static boolean hasTopCall(Context cx)

getTopCallScope

public static Scriptable getTopCallScope(Context cx)

doTopCall

public static java.lang.Object doTopCall(Callable callable,
                                         Context cx,
                                         Scriptable scope,
                                         Scriptable thisObj,
                                         java.lang.Object[] args)

addInstructionCount

public static void addInstructionCount(Context cx,
                                       int instructionsToAdd)

initScript

public static void initScript(NativeFunction funObj,
                              Scriptable thisObj,
                              Context cx,
                              Scriptable scope,
                              boolean evalScript)

createFunctionActivation

public static Scriptable createFunctionActivation(NativeFunction funObj,
                                                  Scriptable scope,
                                                  java.lang.Object[] args)

enterActivationFunction

public static void enterActivationFunction(Context cx,
                                           Scriptable scope)

exitActivationFunction

public static void exitActivationFunction(Context cx)

newCatchScope

public static Scriptable newCatchScope(java.lang.Throwable t,
                                       Scriptable lastCatchScope,
                                       java.lang.String exceptionName,
                                       Context cx,
                                       Scriptable scope)

enterWith

public static Scriptable enterWith(java.lang.Object obj,
                                   Context cx,
                                   Scriptable scope)

leaveWith

public static Scriptable leaveWith(Scriptable scope)

enterDotQuery

public static Scriptable enterDotQuery(java.lang.Object value,
                                       Scriptable scope)

updateDotQuery

public static java.lang.Object updateDotQuery(boolean value,
                                              Scriptable scope)

leaveDotQuery

public static Scriptable leaveDotQuery(Scriptable scope)

setFunctionProtoAndParent

public static void setFunctionProtoAndParent(BaseFunction fn,
                                             Scriptable scope)

setObjectProtoAndParent

public static void setObjectProtoAndParent(ScriptableObject object,
                                           Scriptable scope)

setBuiltinProtoAndParent

public static void setBuiltinProtoAndParent(ScriptableObject object,
                                            Scriptable scope,
                                            TopLevel.Builtins type)

initFunction

public static void initFunction(Context cx,
                                Scriptable scope,
                                NativeFunction function,
                                int type,
                                boolean fromEvalCode)

newArrayLiteral

public static Scriptable newArrayLiteral(java.lang.Object[] objects,
                                         int[] skipIndices,
                                         Context cx,
                                         Scriptable scope)

newObjectLiteral

public static Scriptable newObjectLiteral(java.lang.Object[] propertyIds,
                                          java.lang.Object[] propertyValues,
                                          Context cx,
                                          Scriptable scope)
Deprecated. This method only present for compatibility.

This method is here for backward compat with existing compiled code. It is called when an object literal is compiled. The next instance will be the version called from new code.


newObjectLiteral

public static Scriptable newObjectLiteral(java.lang.Object[] propertyIds,
                                          java.lang.Object[] propertyValues,
                                          int[] getterSetters,
                                          Context cx,
                                          Scriptable scope)

isArrayObject

public static boolean isArrayObject(java.lang.Object obj)

getArrayElements

public static java.lang.Object[] getArrayElements(Scriptable object)

getMessage0

public static java.lang.String getMessage0(java.lang.String messageId)

getMessage1

public static java.lang.String getMessage1(java.lang.String messageId,
                                           java.lang.Object arg1)

getMessage2

public static java.lang.String getMessage2(java.lang.String messageId,
                                           java.lang.Object arg1,
                                           java.lang.Object arg2)

getMessage3

public static java.lang.String getMessage3(java.lang.String messageId,
                                           java.lang.Object arg1,
                                           java.lang.Object arg2,
                                           java.lang.Object arg3)

getMessage4

public static java.lang.String getMessage4(java.lang.String messageId,
                                           java.lang.Object arg1,
                                           java.lang.Object arg2,
                                           java.lang.Object arg3,
                                           java.lang.Object arg4)

getMessage

public static java.lang.String getMessage(java.lang.String messageId,
                                          java.lang.Object[] arguments)

constructError

public static EcmaError constructError(java.lang.String error,
                                       java.lang.String message)

constructError

public static EcmaError constructError(java.lang.String error,
                                       java.lang.String message,
                                       int lineNumberDelta)

constructError

public static EcmaError constructError(java.lang.String error,
                                       java.lang.String message,
                                       java.lang.String sourceName,
                                       int lineNumber,
                                       java.lang.String lineSource,
                                       int columnNumber)

typeError

public static EcmaError typeError(java.lang.String message)

typeError0

public static EcmaError typeError0(java.lang.String messageId)

typeError1

public static EcmaError typeError1(java.lang.String messageId,
                                   java.lang.String arg1)

typeError2

public static EcmaError typeError2(java.lang.String messageId,
                                   java.lang.String arg1,
                                   java.lang.String arg2)

typeError3

public static EcmaError typeError3(java.lang.String messageId,
                                   java.lang.String arg1,
                                   java.lang.String arg2,
                                   java.lang.String arg3)

undefReadError

public static java.lang.RuntimeException undefReadError(java.lang.Object object,
                                                        java.lang.Object id)

undefCallError

public static java.lang.RuntimeException undefCallError(java.lang.Object object,
                                                        java.lang.Object id)

undefWriteError

public static java.lang.RuntimeException undefWriteError(java.lang.Object object,
                                                         java.lang.Object id,
                                                         java.lang.Object value)

notFoundError

public static java.lang.RuntimeException notFoundError(Scriptable object,
                                                       java.lang.String property)

notFunctionError

public static java.lang.RuntimeException notFunctionError(java.lang.Object value)

notFunctionError

public static java.lang.RuntimeException notFunctionError(java.lang.Object value,
                                                          java.lang.Object messageHelper)

notFunctionError

public static java.lang.RuntimeException notFunctionError(java.lang.Object obj,
                                                          java.lang.Object value,
                                                          java.lang.String propertyName)

getRegExpProxy

public static RegExpProxy getRegExpProxy(Context cx)

setRegExpProxy

public static void setRegExpProxy(Context cx,
                                  RegExpProxy proxy)

checkRegExpProxy

public static RegExpProxy checkRegExpProxy(Context cx)

wrapRegExp

public static Scriptable wrapRegExp(Context cx,
                                    Scriptable scope,
                                    java.lang.Object compiled)

escapeAttributeValue

public static java.lang.String escapeAttributeValue(java.lang.Object value,
                                                    Context cx)
Escapes the reserved characters in a value of an attribute

Parameters:
value - Unescaped text
Returns:
The escaped text

escapeTextValue

public static java.lang.String escapeTextValue(java.lang.Object value,
                                               Context cx)
Escapes the reserved characters in a value of a text node

Parameters:
value - Unescaped text
Returns:
The escaped text

memberRef

public static Ref memberRef(java.lang.Object obj,
                            java.lang.Object elem,
                            Context cx,
                            int memberTypeFlags)

memberRef

public static Ref memberRef(java.lang.Object obj,
                            java.lang.Object namespace,
                            java.lang.Object elem,
                            Context cx,
                            int memberTypeFlags)

nameRef

public static Ref nameRef(java.lang.Object name,
                          Context cx,
                          Scriptable scope,
                          int memberTypeFlags)

nameRef

public static Ref nameRef(java.lang.Object namespace,
                          java.lang.Object name,
                          Context cx,
                          Scriptable scope,
                          int memberTypeFlags)

storeUint32Result

public static void storeUint32Result(Context cx,
                                     long value)

lastUint32Result

public static long lastUint32Result(Context cx)

lastStoredScriptable

public static Scriptable lastStoredScriptable(Context cx)

throwError

public static JavaScriptException throwError(Context cx,
                                             Scriptable scope,
                                             java.lang.String message)
Equivalent to executing "new Error(message)" from JavaScript.

Parameters:
cx - the current context
scope - the current scope
message - the message
Returns:
a JavaScriptException you should throw