75d6c996f1
Reviewed-by: hannesw, sundar
625 lines
24 KiB
Plaintext
625 lines
24 KiB
Plaintext
This document describes system properties that are used for internal
|
|
debugging and instrumentation purposes, along with the system loggers,
|
|
which are used for the same thing.
|
|
|
|
This document is intended as a developer resource, and it is not
|
|
needed as Nashorn documentation for normal usage. Flags and system
|
|
properties described herein are subject to change without notice.
|
|
|
|
=====================================
|
|
1. System properties used internally
|
|
=====================================
|
|
|
|
This documentation of the system property flags assume that the
|
|
default value of the flag is false, unless otherwise specified.
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.args=<string>
|
|
|
|
This property takes as its value a space separated list of Nashorn
|
|
command line options that should be passed to Nashorn. This might be
|
|
useful in environments where it is hard to tell how a nashorn.jar is
|
|
launched.
|
|
|
|
Example:
|
|
|
|
> java -Dnashorn.args="--lazy-complation --log=compiler" large-java-app-with-nashorn.jar
|
|
> ant -Dnashorn.args="--log=codegen" antjob
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.args.prepend=<string>
|
|
|
|
This property behaves like nashorn.args, but adds the given arguments
|
|
before the existing ones instead of after them. Later arguments will
|
|
overwrite earlier ones, so this is useful for setting default arguments
|
|
that can be overwritten.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.unstable.relink.threshold=x
|
|
|
|
NOTE: This property is deprecated in favor of the
|
|
"--unstable-relink-threshold" command line option. It controls how many
|
|
call site misses are allowed before a callsite is relinked with "apply"
|
|
semantics to never change again. In the case of megamorphic callsites,
|
|
this is necessary, or the program would spend all its time swapping out
|
|
callsite targets. When neither the system property nor the command line
|
|
option are specified, defaults to 8, or 16 with optimistic types turned
|
|
on.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.compiler.splitter.threshold=x
|
|
|
|
This will change the node weight that requires a subgraph of the IR to
|
|
be split into several classes in order not to run out of bytecode space.
|
|
The default value is 0x8000 (32768).
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.serialize.compression=<x>
|
|
|
|
This property sets the compression level used when deflating serialized
|
|
AST structures of anonymous split functions. Valid values range from 0 to 9,
|
|
the default value is 4. Higher values will reduce memory size of serialized
|
|
AST but increase CPU usage required for compression.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.codegen.debug.trace=<x>
|
|
|
|
See the description of the codegen logger below.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.fields.objects, -Dnashorn.fields.dual
|
|
|
|
When the nashorn.fields.objects property is true, Nashorn will always
|
|
use object fields for AccessorProperties, requiring boxing for all
|
|
primitive property values. When nashorn.fields.dual is set, Nashorn
|
|
will always use dual long/object fields, which allows primitives to be
|
|
stored without boxing. When neither system property is set, Nashorn
|
|
chooses a setting depending on the optimistic types setting (dual
|
|
fields when optimistic types are enabled, object-only fields otherwise).
|
|
|
|
With dual fields, Nashorn uses long fields to store primitive values.
|
|
Ints are represented as the 32 low bits of the long fields. Doubles
|
|
are represented as the doubleToLongBits of their value. This way a
|
|
single field can be used for all primitive types. Packing and
|
|
unpacking doubles to their bit representation is intrinsified by
|
|
the JVM and extremely fast.
|
|
|
|
In the future, this might complement or be replaced by experimental
|
|
feature sun.misc.TaggedArray, which has been discussed on the mlvm
|
|
mailing list. TaggedArrays are basically a way to share data space
|
|
between primitives and references, and have the GC understand this.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.compiler.symbol.trace=[<x>[,*]],
|
|
-Dnashorn.compiler.symbol.stacktrace=[<x>[,*]]
|
|
|
|
When this property is set, creation and manipulation of any symbol
|
|
named "x" will show information about when the compiler changes its
|
|
type assumption, bytecode local variable slot assignment and other
|
|
data. This is useful if, for example, a symbol shows up as an Object,
|
|
when you believe it should be a primitive. Usually there is an
|
|
explanation for this, for example that it exists in the global scope
|
|
and type analysis has to be more conservative.
|
|
|
|
Several symbols names to watch can be specified by comma separation.
|
|
|
|
If no variable name is specified (and no equals sign), all symbols
|
|
will be watched
|
|
|
|
By using "stacktrace" instead of or together with "trace", stack
|
|
traces will be displayed upon symbol changes according to the same
|
|
semantics.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.lexer.xmlliterals
|
|
|
|
If this property it set, it means that the Lexer should attempt to
|
|
parse XML literals, which would otherwise generate syntax
|
|
errors. Warning: there are currently no unit tests for this
|
|
functionality.
|
|
|
|
XML literals, when this is enabled, end up as standard LiteralNodes in
|
|
the IR.
|
|
|
|
|
|
SYSTEM_PROPERTY: -Dnashorn.debug
|
|
|
|
If this property is set to true, Nashorn runs in Debug mode. Debug
|
|
mode is slightly slower, as for example statistics counters are enabled
|
|
during the run. Debug mode makes available a NativeDebug instance
|
|
called "Debug" in the global space that can be used to print property
|
|
maps and layout for script objects, as well as a "dumpCounters" method
|
|
that will print the current values of the previously mentioned stats
|
|
counters.
|
|
|
|
These functions currently exists for Debug:
|
|
|
|
"map" - print(Debug.map(x)) will dump the PropertyMap for object x to
|
|
stdout (currently there also exist functions called "embedX", where X
|
|
is a value from 0 to 3, that will dump the contents of the embed pool
|
|
for the first spill properties in any script object and "spill", that
|
|
will dump the contents of the growing spill pool of spill properties
|
|
in any script object. This is of course subject to change without
|
|
notice, should we change the script object layout.
|
|
|
|
"methodHandle" - this method returns the method handle that is used
|
|
for invoking a particular script function.
|
|
|
|
"identical" - this method compares two script objects for reference
|
|
equality. It is a == Java comparison
|
|
|
|
"equals" - Returns true if two objects are either referentially
|
|
identical or equal as defined by java.lang.Object.equals.
|
|
|
|
"dumpCounters" - will dump the debug counters' current values to
|
|
stdout.
|
|
|
|
Currently we count number of ScriptObjects in the system, number of
|
|
Scope objects in the system, number of ScriptObject listeners added,
|
|
removed and dead (without references).
|
|
|
|
We also count number of ScriptFunctions, ScriptFunction invocations
|
|
and ScriptFunction allocations.
|
|
|
|
Furthermore we count PropertyMap statistics: how many property maps
|
|
exist, how many times were property maps cloned, how many times did
|
|
the property map history cache hit, prevent new allocations, how many
|
|
prototype invalidations were done, how many time the property map
|
|
proto cache hit.
|
|
|
|
Finally we count callsite misses on a per callsite bases, which occur
|
|
when a callsite has to be relinked, due to a previous assumption of
|
|
object layout being invalidated.
|
|
|
|
"getContext" - return the current Nashorn context.
|
|
|
|
"equalWithoutType" - Returns true if if the two objects are both
|
|
property maps, and they have identical properties in the same order,
|
|
but allows the properties to differ in their types.
|
|
|
|
"diffPropertyMaps" Returns a diagnostic string representing the difference
|
|
of two property maps.
|
|
|
|
"getClass" - Returns the Java class of an object, or undefined if null.
|
|
|
|
"toJavaString" - Returns the Java toString representation of an object.
|
|
|
|
"toIdentString" - Returns a string representation of an object consisting
|
|
of its java class name and hash code.
|
|
|
|
"getListenerCount" - Return the number of property listeners for a
|
|
script object.
|
|
|
|
"getEventQueueCapacity" - Get the capacity of the event queue.
|
|
|
|
"setEventQueueCapacity" - Set the event queue capacity.
|
|
|
|
"addRuntimeEvent" - Add a runtime event to the runtime event queue.
|
|
The queue has a fixed size (see -Dnashorn.runtime.event.queue.size)
|
|
and the oldest entry will be thrown out of the queue is about to overflow.
|
|
|
|
"expandEventQueueCapacity" - Expands the event queue capacity,
|
|
or truncates if capacity is lower than current capacity. Then only
|
|
the newest entries are kept.
|
|
|
|
"clearRuntimeEvents" - Clear the runtime event queue.
|
|
|
|
"removeRuntimeEvent" - Remove a specific runtime event from the event queue.
|
|
|
|
"getRuntimeEvents" - Return all runtime events in the queue as an array.
|
|
|
|
"getLastRuntimeEvent" - Return the last runtime event in the queue.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.methodhandles.debug.stacktrace
|
|
|
|
This enhances methodhandles logging (see below) to also dump the
|
|
stack trace for every instrumented method handle operation.
|
|
Warning: This is enormously verbose, but provides a pretty
|
|
decent "grep:able" picture of where the calls are coming from.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.cce
|
|
|
|
Setting this system property causes the Nashorn linker to rely on
|
|
ClassCastExceptions for triggering a callsite relink. If not set, the linker
|
|
will add an explicit instanceof guard.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.spill.threshold=<x>
|
|
|
|
This property sets the number of fields in an object from which to use
|
|
generic array based spill storage instead of Java fields. The default value
|
|
is 256.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.tcs.miss.samplePercent=<x>
|
|
|
|
When running with the trace callsite option (-tcs), Nashorn will count
|
|
and instrument any callsite misses that require relinking. As the
|
|
number of relinks is large and usually produces a lot of output, this
|
|
system property can be used to constrain the percentage of misses that
|
|
should be logged. Typically this is set to 1 or 5 (percent). 1% is the
|
|
default value.
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.persistent.code.cache
|
|
|
|
This property can be used to set the directory where Nashorn stores
|
|
serialized script classes generated with the -pcc/--persistent-code-cache
|
|
option. The default directory name is "nashorn_code_cache".
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.typeInfo.maxFiles
|
|
|
|
Maximum number of files to store in the type info cache. The type info cache
|
|
is used to cache type data of JavaScript functions when running with
|
|
optimistic types (-ot/--optimistic-types). There is one file per JavaScript
|
|
function in the cache.
|
|
|
|
The default value is 0 which means the feature is disabled. Setting this
|
|
to something like 20000 is probably good enough for most applications and
|
|
will usually cap the cache directory to about 80MB presuming a 4kB
|
|
filesystem allocation unit. Set this to "unlimited" to run without limit.
|
|
|
|
If the value is not 0 or "unlimited", Nashorn will spawn a cleanup thread
|
|
that makes sure the number of files in the cache does not exceed the given
|
|
value by deleting the least recently modified files.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.typeInfo.cacheDir
|
|
|
|
This property can be used to set the directory where Nashorn stores the
|
|
type info cache when -Dnashorn.typeInfo.maxFiles is set to a nonzero
|
|
value. The default location is platform specific. On Windows, it is
|
|
"${java.io.tmpdir}\com.oracle.java.NashornTypeInfo". On Linux and
|
|
Solaris it is "~/.cache/com.oracle.java.NashornTypeInfo". On Mac OS X,
|
|
it is "~/Library/Caches/com.oracle.java.NashornTypeInfo".
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.typeInfo.cleanupDelaySeconds=<value>
|
|
|
|
This sets the delay between cleanups of the typeInfo cache, in seconds.
|
|
The default delay is 20 seconds.
|
|
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.profilefile=<filename>
|
|
|
|
When running with the profile callsite options (-pcs), Nashorn will
|
|
dump profiling data for all callsites to stderr as a shutdown hook. To
|
|
instead redirect this to a file, specify the path to the file using
|
|
this system property.
|
|
|
|
|
|
SYSTEM_PROPERTY: -Dnashorn.regexp.impl=[jdk|joni]
|
|
|
|
This property defines the regular expression engine to be used by
|
|
Nashorn. Set this flag to "jdk" to get an implementation based on the
|
|
JDK's java.util.regex package. Set this property to "joni" to install
|
|
an implementation based on Joni, the regular expression engine used by
|
|
the JRuby project. The default value for this flag is "joni"
|
|
|
|
SYSTEM PROPERTY: -Dnashorn.runtime.event.queue.size=<value>
|
|
|
|
Nashorn provides a fixed sized runtime event queue for debugging purposes.
|
|
See -Dnashorn.debug for methods to access the event queue.
|
|
The default value is 1024.
|
|
|
|
===============
|
|
2. The loggers.
|
|
===============
|
|
|
|
It is very simple to create your own logger. Use the DebugLogger class
|
|
and give the subsystem name as a constructor argument.
|
|
|
|
The Nashorn loggers can be used to print per-module or per-subsystem
|
|
debug information with different levels of verbosity. The loggers for
|
|
a given subsystem are available are enabled by using
|
|
|
|
--log=<systemname>[:<level>]
|
|
|
|
on the command line.
|
|
|
|
Here <systemname> identifies the name of the subsystem to be logged
|
|
and the optional colon and level argument is a standard
|
|
java.util.logging.Level name (severe, warning, info, config, fine,
|
|
finer, finest). If the level is left out for a particular subsystem,
|
|
it defaults to "info". Any log message logged as the level or a level
|
|
that is more important will be output to stderr by the logger.
|
|
|
|
Several loggers can be enabled by a single command line option, by
|
|
putting a comma after each subsystem/level tuple (or each subsystem if
|
|
level is unspecified). The --log option can also be given multiple
|
|
times on the same command line, with the same effect.
|
|
|
|
For example: --log=codegen,fields:finest is equivalent to
|
|
--log=codegen:info --log=fields:finest
|
|
|
|
The following is an incomplete list of subsystems that currently
|
|
support logging. Look for classes implementing
|
|
jdk.nashorn.internal.runtime.logging.Loggable for more loggers.
|
|
|
|
|
|
* compiler
|
|
|
|
The compiler is in charge of turning source code and function nodes
|
|
into byte code, and installs the classes into a class loader
|
|
controlled from the Context. Log messages are, for example, about
|
|
things like new compile units being allocated. The compiler has global
|
|
settings that all the tiers of codegen (e.g. Lower and CodeGenerator)
|
|
use.s
|
|
|
|
|
|
* recompile
|
|
|
|
This logger shows information about recompilation of scripts and
|
|
functions at runtime. Recompilation may happen because a function
|
|
was called with different parameter types, or because an optimistic
|
|
assumption failed while executing a function with -ot/--optimistic-types.
|
|
|
|
|
|
* codegen
|
|
|
|
The code generator is the emitter stage of the code pipeline, and
|
|
turns the lowest tier of a FunctionNode into bytecode. Codegen logging
|
|
shows byte codes as they are being emitted, line number information
|
|
and jumps. It also shows the contents of the bytecode stack prior to
|
|
each instruction being emitted. This is a good debugging aid. For
|
|
example:
|
|
|
|
[codegen] #41 line:2 (f)_afc824e
|
|
[codegen] #42 load symbol x slot=2
|
|
[codegen] #43 {1:O} load int 0
|
|
[codegen] #44 {2:I O} dynamic_runtime_call GT:ZOI_I args=2 returnType=boolean
|
|
[codegen] #45 signature (Ljava/lang/Object;I)Z
|
|
[codegen] #46 {1:Z} ifeq ternary_false_5402fe28
|
|
[codegen] #47 load symbol x slot=2
|
|
[codegen] #48 {1:O} goto ternary_exit_107c1f2f
|
|
[codegen] #49 ternary_false_5402fe28
|
|
[codegen] #50 load symbol x slot=2
|
|
[codegen] #51 {1:O} convert object -> double
|
|
[codegen] #52 {1:D} neg
|
|
[codegen] #53 {1:D} convert double -> object
|
|
[codegen] #54 {1:O} ternary_exit_107c1f2f
|
|
[codegen] #55 {1:O} return object
|
|
|
|
shows a ternary node being generated for the sequence "return x > 0 ?
|
|
x : -x"
|
|
|
|
The first number on the log line is a unique monotonically increasing
|
|
emission id per bytecode. There is no guarantee this is the same id
|
|
between runs. depending on non deterministic code
|
|
execution/compilation, but for small applications it usually is. If
|
|
the system variable -Dnashorn.codegen.debug.trace=<x> is set, where x
|
|
is a bytecode emission id, a stack trace will be shown as the
|
|
particular bytecode is about to be emitted. This can be a quick way to
|
|
determine where it comes from without attaching the debugger. "Who
|
|
generated that neg?"
|
|
|
|
The --log=codegen option is equivalent to setting the system variable
|
|
"nashorn.codegen.debug" to true.
|
|
|
|
* fold
|
|
|
|
Shows constant folding taking place before lowering
|
|
|
|
* lower
|
|
|
|
This is the first lowering pass.
|
|
|
|
Lower is a code generation pass that turns high level IR nodes into
|
|
lower level one, for example substituting comparisons to RuntimeNodes
|
|
and inlining finally blocks.
|
|
|
|
Lower is also responsible for determining control flow information
|
|
like end points.
|
|
|
|
* symbols
|
|
|
|
The symbols logger tracks the assignment os symbols to identifiers.
|
|
|
|
* scopedepths
|
|
|
|
This logs the calculation of scope depths for non-local symbols.
|
|
|
|
* fields
|
|
|
|
The --log=fields option (at info level) is equivalent to setting the
|
|
system variable "nashorn.fields.debug" to true. At the info level it
|
|
will only show info about type assumptions that were invalidated. If
|
|
the level is set to finest, it will also trace every AccessorProperty
|
|
getter and setter in the program, show arguments, return values
|
|
etc. It will also show the internal representation of respective field
|
|
(Object in the normal case, unless running with the dual field
|
|
representation)
|
|
|
|
* time
|
|
|
|
This enables timers for various phases of script compilation. The timers
|
|
will be dumped when the Nashorn process exits. We see a percentage value
|
|
of how much time was spent not executing bytecode (i.e. compilation and
|
|
internal tasks) at the end of the report.
|
|
|
|
A finer level than "info" will show individual compilation timings as they
|
|
happen.
|
|
|
|
Here is an example:
|
|
|
|
[time] Accumulated complation phase Timings:
|
|
[time]
|
|
[time] 'JavaScript Parsing' 1076 ms
|
|
[time] 'Constant Folding' 159 ms
|
|
[time] 'Control Flow Lowering' 303 ms
|
|
[time] 'Program Point Calculation' 282 ms
|
|
[time] 'Builtin Replacement' 71 ms
|
|
[time] 'Code Splitting' 670 ms
|
|
[time] 'Symbol Assignment' 474 ms
|
|
[time] 'Scope Depth Computation' 249 ms
|
|
[time] 'Optimistic Type Assignment' 186 ms
|
|
[time] 'Local Variable Type Calculation' 526 ms
|
|
[time] 'Bytecode Generation' 5177 ms
|
|
[time] 'Class Installation' 1854 ms
|
|
[time]
|
|
[time] Total runtime: 11994 ms (Non-runtime: 11027 ms [91%])
|
|
|
|
* methodhandles
|
|
|
|
If this logger is enabled, each MethodHandle related call that uses
|
|
the java.lang.invoke package gets its MethodHandle intercepted and an
|
|
instrumentation printout of arguments and return value appended to
|
|
it. This shows exactly which method handles are executed and from
|
|
where. (Also MethodTypes and SwitchPoints).
|
|
|
|
* classcache
|
|
|
|
This logger shows information about reusing code classes using the
|
|
in-memory class cache. Nashorn will try to avoid compilation of
|
|
scripts by using existing classes. This can significantly improve
|
|
performance when repeatedly evaluating the same script.
|
|
|
|
=======================
|
|
3. Undocumented options
|
|
=======================
|
|
|
|
Here follows a short description of undocumented options for Nashorn.
|
|
To see a list of all undocumented options, use the (undocumented) flag
|
|
"-xhelp".
|
|
|
|
i.e. jjs -xhelp or java -jar nashorn.jar -xhelp
|
|
|
|
Undocumented options are not guaranteed to work, run correctly or be
|
|
bug free. They are experimental and for internal or debugging use.
|
|
They are also subject to change without notice.
|
|
|
|
In practice, though, all options below not explicitly documented as
|
|
EXPERIMENTAL can be relied upon, for example --dump-on-error is useful
|
|
for any JavaScript/Nashorn developer, but there is no guarantee.
|
|
|
|
A short summary follows:
|
|
|
|
-D (-Dname=value. Set a system property. This option can be repeated.)
|
|
|
|
-ccs, --class-cache-size (Size of the Class cache size per global scope.)
|
|
|
|
-cp, -classpath (-cp path. Specify where to find user class files.)
|
|
|
|
-co, --compile-only (Compile without running.)
|
|
param: [true|false] default: false
|
|
|
|
-d, --dump-debug-dir (specify a destination directory to dump class files.)
|
|
param: <path>
|
|
|
|
--debug-lines (Generate line number table in .class files.)
|
|
param: [true|false] default: true
|
|
|
|
--debug-locals (Generate local variable table in .class files.)
|
|
param: [true|false] default: false
|
|
|
|
-doe, -dump-on-error (Dump a stack trace on errors.)
|
|
param: [true|false] default: false
|
|
|
|
--early-lvalue-error (invalid lvalue expressions should be reported as early errors.)
|
|
param: [true|false] default: true
|
|
|
|
--empty-statements (Preserve empty statements in AST.)
|
|
param: [true|false] default: false
|
|
|
|
-fv, -fullversion (Print full version info of Nashorn.)
|
|
param: [true|false] default: false
|
|
|
|
--function-statement-error (Report an error when function declaration is used as a statement.)
|
|
param: [true|false] default: false
|
|
|
|
--function-statement-warning (Warn when function declaration is used as a statement.)
|
|
param: [true|false] default: false
|
|
|
|
-fx (Launch script as an fx application.)
|
|
param: [true|false] default: false
|
|
|
|
--global-per-engine (Use single Global instance per script engine instance.)
|
|
param: [true|false] default: false
|
|
|
|
-h, -help (Print help for command line flags.)
|
|
param: [true|false] default: false
|
|
|
|
--loader-per-compile (Create a new class loader per compile.)
|
|
param: [true|false] default: true
|
|
|
|
-l, --locale (Set Locale for script execution.)
|
|
param: <locale> default: en-US
|
|
|
|
--log (Enable logging of a given level for a given number of sub systems.
|
|
[for example: --log=fields:finest,codegen:info].)
|
|
param: <module:level>,*
|
|
|
|
-nj, --no-java (Disable Java support.)
|
|
param: [true|false] default: false
|
|
|
|
-nse, --no-syntax-extensions (Disallow non-standard syntax extensions.)
|
|
param: [true|false] default: false
|
|
|
|
-nta, --no-typed-arrays (Disable typed arrays support.)
|
|
param: [true|false] default: false
|
|
|
|
--parse-only (Parse without compiling.)
|
|
param: [true|false] default: false
|
|
|
|
--print-ast (Print abstract syntax tree.)
|
|
param: [true|false] default: false
|
|
|
|
-pc, --print-code (Print generated bytecode. If a directory is specified, nothing will
|
|
be dumped to stderr. Also, in that case, .dot files will be generated
|
|
for all functions or for the function with the specified name only.)
|
|
param: [dir:<output-dir>,function:<name>]
|
|
|
|
--print-lower-ast (Print lowered abstract syntax tree.)
|
|
param: [true|false] default: false
|
|
|
|
-plp, --print-lower-parse (Print the parse tree after lowering.)
|
|
param: [true|false] default: false
|
|
|
|
--print-mem-usage (Print memory usage of IR after each compile stage.)
|
|
param: [true|false] default: false
|
|
|
|
--print-no-newline (Print function will not print new line char.)
|
|
param: [true|false] default: false
|
|
|
|
-pp, --print-parse (Print the parse tree.)
|
|
param: [true|false] default: false
|
|
|
|
--print-symbols (Print the symbol table.)
|
|
param: [true|false] default: false
|
|
|
|
-pcs, --profile-callsites (Dump callsite profile data.)
|
|
param: [true|false] default: false
|
|
|
|
-scripting (Enable scripting features.)
|
|
param: [true|false] default: false
|
|
|
|
--stderr (Redirect stderr to a filename or to another tty, e.g. stdout.)
|
|
param: <output console>
|
|
|
|
--stdout (Redirect stdout to a filename or to another tty, e.g. stderr.)
|
|
param: <output console>
|
|
|
|
-strict (Run scripts in strict mode.)
|
|
param: [true|false] default: false
|
|
|
|
-t, -timezone (Set timezone for script execution.)
|
|
param: <timezone> default: Europe/Stockholm
|
|
|
|
-tcs, --trace-callsites (Enable callsite trace mode. Options are: miss [trace callsite misses]
|
|
enterexit [trace callsite enter/exit], objects [print object properties].)
|
|
param: [=[option,]*]
|
|
|
|
-urt, --unstable-relink-threshold (Number of times a dynamic call site has to be relinked before it
|
|
is considered unstable, when the runtime will try to link it as
|
|
if it is megamorphic.)
|
|
|
|
--verify-code (Verify byte code before running.)
|
|
param: [true|false] default: false
|
|
|
|
-v, -version (Print version info of Nashorn.)
|
|
param: [true|false] default: false
|
|
|
|
-xhelp (Print extended help for command line flags.)
|
|
param: [true|false] default: false
|
|
|