Possible scope leak in Nashorn

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


Hi,

Please use "tools" category and include scripting/nashorn in your 
description or title or label somewhere.

PS. we are working on getting appropriate category.

Thanks
Sundar

On Thursday 05 December 2013 06:43 PM, Tim Fox wrote:
> Thanks I am trying to submit a bug here:
>
> http://bugreport.sun.com/bugreport/submit_intro.do
>
> as directed in the link your provided, but I can't see any category I 
> can file it against that seems appropriate for Nashorn...
>
> On 05/12/13 13:00, A. Sundararajan wrote:
>> 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