<div dir="ltr">node-X3DJSAIL fails on setName return value.  Same issue as PyJNIus possibly. Nashorn does NOT show same problem with near equal code.<div><br></div><div>Suggestions (alternatives):</div><div><br></div><div>Use Nashorn for JavaScript interfacing with X3DJSAIL, use different coding style in NodeSerializer.js/XSLT, use X_ITE for SAI (not tested and generation isn't complete yet, need to change sets/adds to property access--possibly), hope and pray that Nashorn isn't buried, and/or is maintained in OpenJDK or otherwise opensourced, fix contract violation in X3DJSAIL, or complain to node-java developers.<br><div><br></div><div>Recommendation: Move towards X_ITE solution for SAI for now. Test a few individual cases in browser, generate HTML around generated JavaScript code to make it VRMLScript.  Create VRMLScriptSerializer.js based on node/JavaScriptSerializer.js (SAI version).  Create a vrmlscript folder for project on sourceforge.</div><div><br></div><div>Future:  Work towards supporting VRMLScript in X3DOM, possibly based on X3DJSONLD's Script*.js program.</div><div><br></div><div>X3DJSAIL Interfaces:<div><br></div><div>$ grep setName MetadataSetObject.java ../../sai/Core/MetadataSet.java|grep public<br>MetadataSetObject.java: public final MetadataSetObject setName(String newValue)<br>MetadataSetObject.java: public MetadataSetObject setName(SFStringObject newValue)<br>../../sai/Core/MetadataSet.java:     public MetadataSet setName(String newValue);<br></div><div><br></div><div>$ node examples/HelloWorldProgramOutput.js<br>C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\stylesheets\node\examples\HelloWorldProgramOutput.<br>js:95<br>        .setValue(new autoclass.MetadataString().setName("extraChildTest<br>").setValue(java.newArray("java.lang.String", ["checks MetadataSetObject addValu<br>e() method"]))))<br>        ^<br><br>TypeError: Cannot read property 'setValue' of null<br>  at Object.<anonymous> (C:\x3d-code\<a href="http://www.web3d.org">www.web3d.org</a>\x3d\stylesheets\node\exampl<br>es\HelloWorldProgramOutput.js:95:17)<br>?[90m   at Module._compile (internal/modules/cjs/loader.js:1139:30)?[39m<br>?[90m   at Object.Module._extensions..js (internal/modules/cjs/loader.js:1159:1<br>0)?[39m<br>?[90m   at Module.load (internal/modules/cjs/loader.js:988:32)?[39m<br>?[90m   at Function.Module._load (internal/modules/cjs/loader.js:896:14)?[39m<br>?[90m   at Function.executeUserEntryPoint [as runMain] (internal/modules/run_ma<br>in.js:71:12)?[39m<br>?[90m   at internal/main/run_main_module.js:17:47?[39m<br></div></div></div></div>