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