org.mozilla.javascript
public class Context extends Object
Different forms of script execution are supported. Scripts may be evaluated from the source directly, or first compiled and then later executed. Interactive execution is also supported.
Some aspects of script execution, such as type conversions and object creation, may be accessed directly through methods of Context.
See Also: Scriptable
Field Summary | |
---|---|
static Object[] | emptyArgs
Convinient value to use as zero-length array of objects. |
static String | errorReporterProperty |
static int | FEATURE_DYNAMIC_SCOPE
Control if dynamic scope should be used for name access.
|
static int | FEATURE_E4X
Control if support for E4X(ECMAScript for XML) extension is available.
|
static int | FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME
Control if member expression as function name extension is available.
|
static int | FEATURE_NON_ECMA_GET_YEAR
Controls behaviour of Date.prototype.getYear().
|
static int | FEATURE_PARENT_PROTO_PROPRTIES
Control if properties __proto__ and __parent__
are treated specially.
|
static int | FEATURE_RESERVED_KEYWORD_AS_IDENTIFIER
Control if reserved keywords are treated as identifiers.
|
static int | FEATURE_STRICT_EVAL
Control if strict eval mode is enabled.
|
static int | FEATURE_STRICT_VARS
Control if strict variable mode is enabled.
|
static int | FEATURE_TO_STRING_AS_SOURCE
Control if toString() should returns the same result
as toSource() when applied to objects and arrays.
|
static String | languageVersionProperty |
static int | VERSION_1_0
JavaScript 1.0 |
static int | VERSION_1_1
JavaScript 1.1 |
static int | VERSION_1_2
JavaScript 1.2 |
static int | VERSION_1_3
JavaScript 1.3 |
static int | VERSION_1_4
JavaScript 1.4 |
static int | VERSION_1_5
JavaScript 1.5 |
static int | VERSION_1_6
JavaScript 1.5 |
static int | VERSION_DEFAULT
The default version. |
static int | VERSION_UNKNOWN
The unknown version. |
Constructor Summary | |
---|---|
Context()
Create a new Context.
|
Method Summary | |
---|---|
void | addActivationName(String name)
Add a name to the list of names forcing the creation of real
activation objects for functions.
|
static void | addContextListener(ContextListener listener) |
void | addPropertyChangeListener(PropertyChangeListener l)
Register an object to receive notifications when a bound property
has changed |
static Object | call(ContextAction action)
Call {@link ContextAction#run(Context cx)}
using the Context instance associated with the current thread.
|
static Object | call(ContextFactory factory, Callable callable, Scriptable scope, Scriptable thisObj, Object[] args)
Call {@link
Callable#call(Context cx, Scriptable scope, Scriptable thisObj,
Object[] args)}
using the Context instance associated with the current thread.
|
static void | checkLanguageVersion(int version) |
static void | checkOptimizationLevel(int optimizationLevel) |
Function | compileFunction(Scriptable scope, String source, String sourceName, int lineno, Object securityDomain)
Compile a JavaScript function.
|
Script | compileReader(Scriptable scope, Reader in, String sourceName, int lineno, Object securityDomain) |
Script | compileReader(Reader in, String sourceName, int lineno, Object securityDomain)
Compiles the source in the given reader.
|
Script | compileString(String source, String sourceName, int lineno, Object securityDomain)
Compiles the source in the given string.
|
GeneratedClassLoader | createClassLoader(ClassLoader parent)
Create class loader for generated classes.
|
String | decompileFunction(Function fun, int indent)
Decompile a JavaScript Function.
|
String | decompileFunctionBody(Function fun, int indent)
Decompile the body of a JavaScript Function.
|
String | decompileScript(Script script, int indent)
Decompile the script.
|
static Context | enter()
Get a context associated with the current thread, creating
one if need be.
|
static Context | enter(Context cx)
Get a Context associated with the current thread, using
the given Context if need be.
|
Object | evaluateReader(Scriptable scope, Reader in, String sourceName, int lineno, Object securityDomain)
Evaluate a reader as JavaScript source.
|
Object | evaluateString(Scriptable scope, String source, String sourceName, int lineno, Object securityDomain)
Evaluate a JavaScript source string.
|
static void | exit()
Exit a block of code requiring a Context.
|
ClassLoader | getApplicationClassLoader() |
static Context | getCurrentContext()
Get the current Context.
|
static DebuggableScript | getDebuggableView(Script script)
Return DebuggableScript instance if any associated with the script.
|
Debugger | getDebugger()
Return the current debugger. |
Object | getDebuggerContextData()
Return the debugger context data associated with current context. |
Object[] | getElements(Scriptable object)
Get the elements of a JavaScript array.
|
ErrorReporter | getErrorReporter()
Get the current error reporter.
|
ContextFactory | getFactory()
Return {@link ContextFactory} instance used to create this Context
or the result of {@link ContextFactory#getGlobal()} if no factory
was used for Context creation. |
String | getImplementationVersion()
Get the implementation version.
|
int | getInstructionObserverThreshold()
Get/Set threshold of executed instructions counter that triggers call to
observeInstructionCount() .
|
int | getLanguageVersion()
Get the current language version.
|
Locale | getLocale()
Get the current locale. |
int | getMaximumInterpreterStackDepth()
Returns the maximum stack depth (in terms of number of call frames)
allowed in a single invocation of interpreter. |
int | getOptimizationLevel()
Get the current optimization level.
|
Object | getThreadLocal(Object key)
Get a value corresponding to a key.
|
static Object | getUndefinedValue()
Get the singleton object that represents the JavaScript Undefined value. |
WrapFactory | getWrapFactory()
Return the current WrapFactory, or null if none is defined. |
boolean | hasCompileFunctionsWithDynamicScope() |
boolean | hasFeature(int featureIndex)
Controls certain aspects of script semantics.
|
ScriptableObject | initStandardObjects()
Initialize the standard objects.
|
Scriptable | initStandardObjects(ScriptableObject scope)
Initialize the standard objects.
|
ScriptableObject | initStandardObjects(ScriptableObject scope, boolean sealed)
Initialize the standard objects.
|
boolean | isActivationNeeded(String name)
Check whether the name is in the list of names of objects
forcing the creation of activation objects.
|
boolean | isGeneratingDebug()
Tell whether debug information is being generated. |
boolean | isGeneratingDebugChanged() |
boolean | isGeneratingSource()
Tell whether source information is being generated. |
boolean | isSealed()
Checks if this is a sealed Context. |
static boolean | isValidLanguageVersion(int version) |
static boolean | isValidOptimizationLevel(int optimizationLevel) |
static Object | javaToJS(Object value, Scriptable scope)
Convenient method to convert java value to its closest representation
in JavaScript.
|
static Object | jsToJava(Object value, Class desiredType)
Convert a JavaScript value into the desired type.
|
Scriptable | newArray(Scriptable scope, int length)
Create an array with a specified initial length.
|
Scriptable | newArray(Scriptable scope, Object[] elements)
Create an array with a set of initial elements.
|
Scriptable | newObject(Scriptable scope)
Create a new JavaScript object.
|
Scriptable | newObject(Scriptable scope, String constructorName)
Create a new JavaScript object by executing the named constructor.
|
Scriptable | newObject(Scriptable scope, String constructorName, Object[] args)
Creates a new JavaScript object by executing the named constructor.
|
protected void | observeInstructionCount(int instructionCount)
Allow application to monitor counter of executed script instructions
in Context subclasses.
|
void | putThreadLocal(Object key, Object value)
Put a value that can later be retrieved using a given key.
|
void | removeActivationName(String name)
Remove a name from the list of names forcing the creation of real
activation objects for functions.
|
static void | removeContextListener(ContextListener listener) |
void | removePropertyChangeListener(PropertyChangeListener l)
Remove an object from the list of objects registered to receive
notification of changes to a bounded property |
void | removeThreadLocal(Object key)
Remove values from thread-local storage. |
static void | reportError(String message, String sourceName, int lineno, String lineSource, int lineOffset)
Report an error using the error reporter for the current thread.
|
static void | reportError(String message)
Report an error using the error reporter for the current thread.
|
static EvaluatorException | reportRuntimeError(String message, String sourceName, int lineno, String lineSource, int lineOffset)
Report a runtime error using the error reporter for the current thread.
|
static EvaluatorException | reportRuntimeError(String message)
Report a runtime error using the error reporter for the current thread.
|
static void | reportWarning(String message, String sourceName, int lineno, String lineSource, int lineOffset)
Report a warning using the error reporter for the current thread.
|
static void | reportWarning(String message)
Report a warning using the error reporter for the current thread.
|
void | seal(Object sealKey)
Seal this Context object so any attempt to modify any of its properties
including calling {@link #enter()} and {@link #exit()} methods will
throw an exception.
|
void | setApplicationClassLoader(ClassLoader loader) |
static void | setCachingEnabled(boolean cachingEnabled) |
void | setClassShutter(ClassShutter shutter)
Set the LiveConnect access filter for this context.
|
void | setCompileFunctionsWithDynamicScope(boolean flag) |
void | setDebugger(Debugger debugger, Object contextData)
Set the associated debugger. |
ErrorReporter | setErrorReporter(ErrorReporter reporter)
Change the current error reporter.
|
void | setGeneratingDebug(boolean generatingDebug)
Specify whether or not debug information should be generated.
|
void | setGeneratingSource(boolean generatingSource)
Specify whether or not source information should be generated.
|
void | setInstructionObserverThreshold(int threshold) |
void | setLanguageVersion(int version)
Set the language version.
|
Locale | setLocale(Locale loc)
Set the current locale.
|
void | setMaximumInterpreterStackDepth(int max)
Sets the maximum stack depth (in terms of number of call frames)
allowed in a single invocation of interpreter. |
void | setOptimizationLevel(int optimizationLevel)
Set the current optimization level.
|
void | setSecurityController(SecurityController controller)
Set the security controller for this context.
|
void | setWrapFactory(WrapFactory wrapFactory)
Set a WrapFactory for this Context.
|
boolean | stringIsCompilableUnit(String source)
Check whether a string is ready to be compiled.
|
static RuntimeException | throwAsScriptRuntimeEx(Throwable e)
Rethrow the exception wrapping it as the script runtime exception.
|
static boolean | toBoolean(Object value)
Convert the value to a JavaScript boolean value.
|
static double | toNumber(Object value)
Convert the value to a JavaScript Number value.
|
static Scriptable | toObject(Object value, Scriptable scope)
Convert the value to an JavaScript object value.
|
static Scriptable | toObject(Object value, Scriptable scope, Class staticType) |
static String | toString(Object value)
Convert the value to a JavaScript String value.
|
static Object | toType(Object value, Class desiredType) |
void | unseal(Object sealKey)
Unseal previously sealed Context object.
|
This is useful to define shared scope containing functions that can be called from scripts and functions using private scopes.
By default {@link #hasFeature(int)} returns false.
Since: 1.6 Release 1
By default {@link #hasFeature(int)} returns true if the current JS version is set to {@link #VERSION_DEFAULT} or is greater then {@link #VERSION_1_6}.
Since: 1.6 Release 1
The properties allow to query and set scope and prototype chains for the objects. The special meaning of the properties is available only when they are used as the right hand side of the dot operator. For example, while x.__proto__ = y changes the prototype chain of the object x to point to y, x["__proto__"] = y simply assigns a new value to the property __proto__ in x even when the feature is on. By default {@link #hasFeature(int)} returns true.
By default {@link #hasFeature(int)} returns false.
Since: 1.6 Release 1
By default {@link #hasFeature(int)} returns false.
Since: 1.6 Release 1
By default {@link #hasFeature(int)} returns true only if the current JS version is set to {@link #VERSION_1_2}.
Parameters: name the name of the object to add to the list
Deprecated:
See Also: addListener getGlobal
Parameters: l the listener
See Also: java.beans.PropertyChangeEvent Context
Returns: The result of {@link ContextAction#run(Context)}.
It is allowed to use null for factory argument in which case the factory associated with the scope will be used to create new context instances.
See Also: call
The function source must be a function definition as defined by ECMA (e.g., "function f(a) { return a; }").
Parameters: scope the scope to compile relative to source the function definition source sourceName a string describing the source, such as a filename lineno the starting line number securityDomain an arbitrary object that specifies security information about the origin or owner of the script. For implementations that don't care about security, this value may be null.
Returns: a Function that may later be called
See Also: Function
Deprecated:
See Also: Context
Returns a script that may later be executed. Will consume all the source in the reader.
Parameters: in the input reader sourceName a string describing the source, such as a filename lineno the starting line number for reporting errors securityDomain an arbitrary object that specifies security information about the origin or owner of the script. For implementations that don't care about security, this value may be null.
Returns: a script that may later be executed
Throws: IOException if an IOException was generated by the Reader
See Also: Script
Returns a script that may later be executed.
Parameters: source the source string sourceName a string describing the source, such as a filename lineno the starting line number for reporting errors securityDomain an arbitrary object that specifies security information about the origin or owner of the script. For implementations that don't care about security, this value may be null.
Returns: a script that may later be executed
See Also: Script
Decompiles a previously compiled JavaScript function object to canonical source.
Returns function body of '[native code]' if no decompilation information is available.
Parameters: fun the JavaScript function to decompile indent the number of spaces to indent the result
Returns: a string representing the function source
Decompiles the body a previously compiled JavaScript Function object to canonical source, omitting the function header and trailing brace. Returns '[native code]' if no decompilation information is available.
Parameters: fun the JavaScript function to decompile indent the number of spaces to indent the result
Returns: a string representing the function body source.
The canonical source of the script is returned.
Parameters: script the script to decompile indent the number of spaces to indent the result
Returns: a string representing the script source
Calling enter()
will
return either the Context currently associated with the
thread, or will create a new context and associate it
with the current thread. Each call to enter()
must have a matching call to exit()
. For example,
Context cx = Context.enter(); try { ... cx.evaluateString(...); } finally { Context.exit(); }Instead of using enter(), exit() pair consider using {@link #call(ContextAction)} which guarantees proper association of Context instances with the current thread and is faster. With this method the above example becomes:
Context.call(new ContextAction() { public Object run(Context cx) { ... cx.evaluateString(...); return null; } });
Returns: a Context associated with the current thread
See Also: getCurrentContext exit call
The same as enter()
except that cx
is associated with the current thread and returned if
the current thread has no associated context and cx
is not associated with any other thread.
Parameters: cx a Context to associate with the thread if possible
Returns: a Context associated with the current thread
Parameters: scope the scope to execute in in the Reader to get JavaScript source from sourceName a string describing the source, such as a filename lineno the starting line number securityDomain an arbitrary object that specifies security information about the origin or owner of the script. For implementations that don't care about security, this value may be null.
Returns: the result of evaluating the source
Throws: IOException if an IOException was generated by the Reader
Parameters: scope the scope to execute in source the JavaScript source sourceName a string describing the source, such as a filename lineno the starting line number securityDomain an arbitrary object that specifies security information about the origin or owner of the script. For implementations that don't care about security, this value may be null.
Returns: the result of evaluating the string
See Also: SecurityController
exit()
will remove the association between
the current thread and a Context if the prior call to
enter()
on this thread newly associated a Context
with this thread.
Once the current thread no longer has an associated Context,
it cannot be used to execute JavaScript until it is again associated
with a Context.
Returns: the Context associated with the current thread, or null if no context is associated with the current thread.
Returns: the debugger, or null if none is attached.
Returns: the debugger data, or null if debugger is not attached
If the object defines a length property convertible to double number, then the number is converted Uint32 value as defined in Ecma 9.6 and Java array of that size is allocated. The array is initialized with the values obtained by calling get() on object for each value of i in [0,length-1]. If there is not a defined value for a property the Undefined value is used to initialize the corresponding element in the array. The Java array is then returned. If the object doesn't define a length property or it is not a number, empty array is returned.
Parameters: object the JavaScript array or array-like object
Returns: a Java array of objects
Since: 1.4 release 2
See Also: ErrorReporter
The implementation version is of the form
"name langVer release
relNum date"
where name is the name of the product, langVer is
the language version, relNum is the release number, and
date is the release date for that specific
release in the form "yyyy mm dd".
Returns: a string that encodes the product, language version, release number, and date.
observeInstructionCount()
.
When the threshold is zero, instruction counting is disabled,
otherwise each time the run-time executes at least the threshold value
of script instructions, observeInstructionCount()
will
be called.The language version number affects JavaScript semantics as detailed in the overview documentation.
Returns: an integer that is one of VERSION_1_0, VERSION_1_1, etc.
See Also: java.util.Locale
Returns: The current maximum interpreter stack depth.
The optimization level is expressed as an integer between -1 and 9.
Since: 1.3
Since the Context is associated with a thread it can be used to maintain values that can be later retrieved using the current thread.
Note that the values are maintained with the Context, so if the Context is disassociated from the thread the values cannot be retreived. Also, if private data is to be maintained in this manner the key should be a java.lang.Object whose reference is not divulged to untrusted code.
Parameters: key the key used to lookup the value
Returns: a value previously stored using putThreadLocal.
Since: 1.5 Release 4
See Also: WrapFactory
Deprecated:
See Also: FEATURE_DYNAMIC_SCOPE Context
The default implementation calls {@link ContextFactory#hasFeature(Context cx, int featureIndex)} that allows to customize Context behavior without introducing Context subclasses. {@link ContextFactory} documentation gives an example of hasFeature implementation.
Parameters: featureIndex feature index to check
Returns: true if the featureIndex
feature is turned on
See Also: FEATURE_NON_ECMA_GET_YEAR FEATURE_MEMBER_EXPR_AS_FUNCTION_NAME FEATURE_RESERVED_KEYWORD_AS_IDENTIFIER FEATURE_TO_STRING_AS_SOURCE FEATURE_PARENT_PROTO_PROPRTIES FEATURE_E4X FEATURE_DYNAMIC_SCOPE FEATURE_STRICT_VARS FEATURE_STRICT_EVAL
This method must be called to initialize a scope before scripts can be evaluated in that scope.
This method does not affect the Context it is called upon.
Returns: the initialized scope
This method must be called to initialize a scope before scripts can be evaluated in that scope.
This method does not affect the Context it is called upon.
Parameters: scope the scope to initialize, or null, in which case a new object will be created to serve as the scope
Returns: the initialized scope. The method returns the value of the scope argument if it is not null or newly allocated scope object which is an instance {@link ScriptableObject}.
This method must be called to initialize a scope before scripts can be evaluated in that scope.
This method does not affect the Context it is called upon.
This form of the method also allows for creating "sealed" standard objects. An object that is sealed cannot have properties added, changed, or removed. This is useful to create a "superglobal" that can be shared among several top-level objects. Note that sealing is not allowed in the current ECMA/ISO language specification, but is likely for the next version.
Parameters: scope the scope to initialize, or null, in which case a new object will be created to serve as the scope sealed whether or not to create sealed standard objects that cannot be modified.
Returns: the initialized scope. The method returns the value of the scope argument if it is not null or newly allocated scope object.
Since: 1.4R3
Parameters: name the name of the object to test
Returns: true if an function activation object is needed.
Since: 1.3
Since: 1.3
See Also: Context
If value is an instance of String, Number, Boolean, Function or Scriptable, it is returned as it and will be treated as the corresponding JavaScript type of string, number, boolean, function and object.
Note that for Number instances during any arithmetic operation in JavaScript the engine will always use the result of Number.doubleValue() resulting in a precision loss if the number can not fit into double.
If value is an instance of Character, it will be converted to string of length 1 and its JavaScript type will be string.
The rest of values will be wrapped as LiveConnect objects by calling {@link WrapFactory#wrap(Context cx, Scriptable scope, Object obj, Class staticType)} as in:
Context cx = Context.getCurrentContext(); return cx.getWrapFactory().wrap(cx, scope, value, null);
Parameters: value any Java object scope top scope object
Returns: value suitable to pass to any API that takes JavaScript values.
Parameters: value the JavaScript value to convert desiredType the Java type to convert to. Primitive Java types are represented using the TYPE fields in the corresponding wrapper class in java.lang.
Returns: the converted value
Throws: EvaluatorException if the conversion cannot be performed
Parameters: scope the scope to create the object in length the initial length (JavaScript arrays may have additional properties added dynamically).
Returns: the new array object
Parameters: scope the scope to create the object in. elements the initial elements. Each object in this array must be an acceptable JavaScript type and type of array should be exactly Object[], not SomeObjectSubclass[].
Returns: the new array object.
Parameters: scope the scope to search for the constructor and to evaluate against
Returns: the new object
newObject(scope, "Foo")
is equivalent to
evaluating "new Foo()".
Parameters: scope the scope to search for the constructor and to evaluate against constructorName the name of the constructor to call
Returns: the new object
scope
for the named constructor, calls it with
the given arguments, and returns the result.The code
Object[] args = { "a", "b" }; newObject(scope, "Foo", args)is equivalent to evaluating "new Foo('a', 'b')", assuming that the Foo constructor has been defined in
scope
.
Parameters: scope The scope to search for the constructor and to evaluate against constructorName the name of the constructor to call args the array of arguments for the constructor
Returns: the new object
setInstructionObserverThreshold()
.
The method is useful to observe long running scripts and if necessary
to terminate them.
The instruction counting support is available only for interpreted scripts generated when the optimization level is set to -1.
The default implementation calls {@link ContextFactory#observeInstructionCount(Context cx, int instructionCount)} that allows to customize Context behavior without introducing Context subclasses.
Parameters: instructionCount amount of script instruction executed since
last call to observeInstructionCount
Throws: Error to terminate the script
See Also: Context
Parameters: key the key used to index the value value the value to save
Parameters: name the name of the object to remove from the list
Deprecated:
See Also: removeListener getGlobal
Parameters: l the listener
See Also: java.beans.PropertyChangeEvent Context
Parameters: key the key for the entry to remove.
Since: 1.5 release 2
Parameters: message the error message to report sourceName a string describing the source, such as a filename lineno the starting line number lineSource the text of the line (may be null) lineOffset the offset into lineSource where problem was detected
See Also: ErrorReporter
Parameters: message the error message to report
See Also: ErrorReporter
Parameters: message the error message to report sourceName a string describing the source, such as a filename lineno the starting line number lineSource the text of the line (may be null) lineOffset the offset into lineSource where problem was detected
Returns: a runtime exception that will be thrown to terminate the execution of the script
See Also: ErrorReporter
Parameters: message the error message to report
See Also: ErrorReporter
Parameters: message the warning message to report sourceName a string describing the source, such as a filename lineno the starting line number lineSource the text of the line (may be null) lineOffset the offset into lineSource where problem was detected
See Also: ErrorReporter
Parameters: message the warning message to report
See Also: ErrorReporter
If sealKey is not null, calling {@link #unseal(Object sealKey)} with the same key unseals the object. If sealKey is null, unsealing is no longer possible.
Deprecated:
See Also: get ClassCache
{@link ClassShutter} may only be set if it is currently null. Otherwise a SecurityException is thrown.
Parameters: shutter a ClassShutter object
Throws: SecurityException if there is already a ClassShutter object for this Context
Deprecated:
See Also: FEATURE_DYNAMIC_SCOPE Context
Parameters: debugger the debugger to be used on callbacks from the engine. contextData arbitrary object that debugger can use to store per Context data.
Returns: the previous error reporter
See Also: ErrorReporter
Setting the generation of debug information on will set the optimization level to zero.
Since: 1.3
Without source information, evaluating the "toString" method on JavaScript functions produces only "[native code]" for the body of the function. Note that code generated without source is not fully ECMA conformant.
Since: 1.3
Setting the language version will affect functions and scripts compiled subsequently. See the overview documentation for version-specific behavior.
Parameters: version the version as specified by VERSION_1_0, VERSION_1_1, etc.
See Also: java.util.Locale
Parameters: max the new maximum interpreter stack depth
Throws: IllegalStateException if this context's optimization level is not -1 IllegalArgumentException if the new depth is not at least 1
The optimization level is expected to be an integer between -1 and 9. Any negative values will be interpreted as -1, and any values greater than 9 will be interpreted as 9. An optimization level of -1 indicates that interpretive mode will always be used. Levels 0 through 9 indicate that class files may be generated. Higher optimization levels trade off compile time performance for runtime performance. The optimizer level can't be set greater than -1 if the optimizer package doesn't exist at run time.
Parameters: optimizationLevel an integer indicating the level of optimization to perform
Since: 1.3
SecurityController may only be set if it is currently null and {@link SecurityController#hasGlobal()} is false. Otherwise a SecurityException is thrown.
Parameters: controller a SecurityController object
Throws: SecurityException if there is already a SecurityController object for this Context or globally installed.
See Also: SecurityController hasGlobal
The WrapFactory allows custom object wrapping behavior for Java object manipulated with JavaScript.
Since: 1.5 Release 4
See Also: WrapFactory
stringIsCompilableUnit is intended to support interactive compilation of javascript. If compiling the string would result in an error that might be fixed by appending more source, this method returns false. In every other case, it returns true.
Interactive shells may accumulate source lines, using this method after each new line is appended to check whether the statement being entered is complete.
Parameters: source the source buffer to check
Returns: whether the source is ready for compilation
Since: 1.4 Release 2
This method always throws an exception, its return value is provided only for convenience to allow a usage like:
throw Context.throwAsScriptRuntimeEx(ex);to indicate that code after the method is unreachable.
Throws: EvaluatorException EcmaError
See ECMA 9.2.
Parameters: value a JavaScript value
Returns: the corresponding boolean value converted using the ECMA rules
Returns a Java double for the JavaScript Number.
See ECMA 9.3.
Parameters: value a JavaScript value
Returns: the corresponding double value converted using the ECMA rules
Note that a scope must be provided to look up the constructors for Number, Boolean, and String.
See ECMA 9.9.
Additionally, arbitrary Java objects and classes will be wrapped in a Scriptable object with its Java fields and methods reflected as JavaScript properties of the object.
Parameters: value any Java object scope global scope containing constructors for Number, Boolean, and String
Returns: new JavaScript object
Deprecated:
See Also: Context
See ECMA 9.8.
Parameters: value a JavaScript value
Returns: the corresponding String value converted using the ECMA rules
Deprecated:
Throws: IllegalArgumentException if the conversion cannot be performed. Note that {@link #jsToJava(Object, Class)} throws {@link EvaluatorException} instead.
See Also: Context