Possible scope leak in Nashorn

A. Sundararajan sundararajan.athijegannathan at oracle.com
Thu Dec 5 05:00:34 PST 2013


Please file a bug using web interface. Process explained in this post by 
Jim:

http://mail.openjdk.java.net/pipermail/nashorn-dev/2013-December/002515.html

Thanks
-Sundar

On Thursday 05 December 2013 06:14 PM, Tim Fox wrote:
> Oops! Forgot to provide a link to the example...
>
> Here it is:
>
> https://gist.github.com/purplefox/7804105
>
> On 05/12/13 12:42, Tim Fox wrote:
>> Hello Nashorn folks,
>>
>> I've been playing around with Nashorn today, and in particular I've 
>> been trying to implement commonJS-like require() functionality, but 
>> having some problems. Most probably I am doing something stupid...
>>
>> I'm sure you all know, with commonJS modules you can "require" them 
>> from your JS scripts, e.g.
>>
>> var someObject = require("modulename");
>>
>> Then in modulename.js
>>
>> you do your stuff then export the object that ends up being returned 
>> from the require, e.g.
>>
>> var someObject = {
>>   foo: "bar"
>> }
>>
>> module.exports = someObject;
>>
>> One key thing is that modules have their own scope, so any globals 
>> defined in modulename.js shouldn't be visible in the script that 
>> requires them, and vice versa.
>>
>> While trying to implement this using Nashorn and running scripts in 
>> different scopes I've found it's possible for Nashorn to get confused 
>> about what scope it's using, and for scopes to leak from one to another.
>>
>> I created this simple runnable example to demonstrate the issue.
>>
>> I wonder if anyone can advise whether this is a bug, or perhaps I am 
>> using the API incorrectly. If the latter, could you advise on the 
>> proper way to use the API to implement this kind of functionality.
>>
>> Many thanks
>>
>>
>



More information about the nashorn-dev mailing list