Sharing native JavaScript objects across contexts
Sundararajan Athijegannathan
sundararajan.athijegannathan at oracle.com
Wed Dec 9 11:33:24 UTC 2015
This is in response to
http://mail.openjdk.java.net/pipermail/nashorn-dev/2015-December/005690.html
[ I accidentally deleted the original email ]
Yes, objects from other ScriptContexts are indeed foreign - but nashorn
allows you to call functions, access properties and so on.And even when
you're using multiple ScriptContexts in the same engine -- compiled
Classes (java.lang.Class instances) are shared. i.e., so long as you use
same script, Nashorn will re-use Class objects.
i.e., compiled code sharing is on per-engine basis. So, you can eval
"common code" again and again -- you'll be re-using same Class object.
You don't share ECMAScript global objects (which are in ENGINE_SCOPE of
the ScriptContexts you use) -- but that is only about objects including
function objects. But you still share nashorn compiled code -- so long
as you use the same script engine instance.
Hope that answers your concerns,
-Sundar
More information about the nashorn-dev
mailing list