JS compiler generates code that clobbers existing namespaces
------------------------------------------------------------
Key: THRIFT-1200
URL: https://issues.apache.org/jira/browse/THRIFT-1200
Project: Thrift
Issue Type: Bug
Components: JavaScript - Compiler
Affects Versions: 0.6.1
Environment: all
Reporter: Ilya Maykov
Assignee: Ilya Maykov
The JavaScript compiler currently generates code that will clobber an
already-existing namespace. It should check if the namespace exists before
initializing it to {}. Example code pre-patch, assuming the .thrift file has
the declaration {{namespace js CompanyName.ModuleName}}:
{code:JavaScript}
var CompanyName = {};
CompanyName.ModuleName = {}
{code}
Becomes this after patch:
{code:JavaScript}
if (typeof CompanyName === 'undefined') CompanyName = {};
if (typeof CompanyName.ModuleName === 'undefined') CompanyName.ModuleName = {};
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira