Thanks Alon, This seems to be difference between WebIDL and Embind, as with Embind if you provide the getter/setter for the attribute then it uses the JS get set properties. The one concern I was having with WebIDL, since these JS getter/setter are automatically generated it is not part of the defined c++ interface, which means the generated interface doesn't match the original.
Is there a way to state a getter/setter for an attribute using the WebIDL interface structure, I am not 100% sure on how that syntax should look (I cant seem to find a decent example of that). But if that is possible, then modifing the code generate seems like a reasonable approach. On Thursday, December 4, 2014 8:40:48 PM UTC-6, Alon Zakai wrote: > > You could modify the code generator to emit a JS setter and getter, but > there isn't an option for that currently. I've preferred to have function > calls to keep it clear that this is going to call into compiled code, as > opposed to doing a quick JS property lookup. But maybe that was the wrong > thing. > > - Alon > > > On Thu, Dec 4, 2014 at 1:57 PM, Corey Clark <[email protected] > <javascript:>> wrote: > >> I am working on setting up a pipeline to do some testing between WebIDL >> and Embind with Emscripten. I am having an issue getting direct access to >> attributes defined in c++ classes when compiled to javascript. >> >> For example, given this C++ class: >> >> class Bar { >> public: >> Bar(float val); >> void doSomething(); >> float myVal; >> }; >> >> When compiled using the following WebIDL interface: >> interface Bar { >> void Bar(float val); >> void doSomething(); >> attribute float myVal; >> }; >> >> The attribute myVal can not be directly accessed from the JS Module >> returned. >> For example: >> >> var b = new Module.Bar(33); >> >> b.myVal <-- does not work >> >> It instead auto generates a getter and setter with this format: >> >> b.get_myVal(); >> b.set_myVal(num); >> >> >> Is there a way to manually define the getter/setter so that b.myVal would >> work? Or just prevent the getter/setter from being created and have direct >> access to the attribute. >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
