[ 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)