Hi.
A script engine has an associated (default) ScriptContext instance. A
ScriptContext has ENGINE_SCOPE and GLOBAL_SCOPE bindings in it.
ENGINE_SCOPE which is the same as a "global" object of ECMAScript (has
properties like "Object", "Function", "undefined", "parseInt" etc.). If
a variable is missing in ENGINE_SCOPE, then it is searched in GLOBAL_SCOPE.
For more details, please check out
https://wiki.openjdk.java.net/display/Nashorn/Nashorn+jsr223+engine+notes
Hope this helps,
-Sundar
On Thursday 29 January 2015 07:30 PM, Nicolas ALBERT wrote:
I used to use Rhino and to stack scope through Scriptable.setParentScope
I can not find an equivalent with Bindings or ScriptContext.
- if a variable is defined without var, it's a global variable (root
scope)
- if a variable is defined with var, it's a local variable (current
scope)
- if a variable is accessed or modified, engine lookup in its current
scope, and parent, and parent parent ... and the global scope
I miss something or this behavior (with setParentScope) doesn't exist ?
Thanks