[ 
https://issues.apache.org/jira/browse/THRIFT-2939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14273085#comment-14273085
 ] 

Radoslaw Gruchalski commented on THRIFT-2939:
---------------------------------------------

Here a sample project using these changes: 
https://github.com/radekg/gossiperl-client-js. To test

{noformat}
git clone https://github.com/radekg/gossiperl-client-js
cd gossiperl-client-js
npm install
nodeunit test/tests.node.js
{noformat}

This also uses https://issues.apache.org/jira/browse/THRIFT-2940 to install 
thrift as a Node module from git.

> JavaScript generated code for Node and browser is different
> -----------------------------------------------------------
>
>                 Key: THRIFT-2939
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2939
>             Project: Thrift
>          Issue Type: Improvement
>          Components: JavaScript - Compiler, JavaScript - Library
>    Affects Versions: 0.9.2
>            Reporter: Radoslaw Gruchalski
>              Labels: javascript, patch
>
> The generated code for regular JS differs from NodeJS code. NodeJS uses 
> direct return values from {{read<Type>()}} while regular JS code expects a 
> value from {{read<Type>()}} to be an object with {{.value}} property.
> This makes it impossible to share generated code between browser JS and 
> NodeJS. The fix is rather simple:
> - do not append {{.value}} in generated code while accessing values read from 
> protocol / transport
> - do not return an object with the value property from {{read}}, return 
> result read
> I am not sure why such difference. Both environment implementations take an 
> input, which is a protocol, and execute the same read methods. There is no 
> need to have an additional complexity in regular JS.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to