Of course it's possible to make C++ objects accessible to JS, that's what
V8's API is for. You'll have to provide accessors for fields you want to
expose. See
https://github.com/v8/v8/wiki/Embedder's-Guide#accessing-dynamic-variables.

On Thu, Mar 16, 2017 at 6:04 PM, Abhishek Singh <singhabhishek....@gmail.com
> wrote:

> Hi,
>
> (responses inline)
>
> On 16-Mar-2017, at 21:53, Jakob Kummerow <jkumme...@chromium.org> wrote:
>
> What do you mean by "native JS JSON"?
>
>
> Apologies, it isn’t technically correct term. I meant javascript object
> carved out of string representation.
>
> JSON ("JavaScript Object Notation") is a standardized format for string
> representations of objects. "JSON.stringify" creates this string
> representation for a given object, "JSON.parse" creates a new object from
> this string representation. If you want to transfer a string, and then
> create an object from it, then JSON.Parse (which is exposed as
> V8::JSON::Parse in the V8 API) is the way to go.
>
>
> (Depending on your use case, instead of transferring a JSON string,
> passing around an ArrayBuffer with externalized data might be a better fit.
> Then there would be no conversions to string and back.)
>
>
> For current use case, I need to operate on few top level fields of JS
> object(made out of stringified representation on already JSON marshalled
> data) - so I think ArrayBuffer might not work out. Sample ex:
>
> function OnUpdate(doc, meta) {
>
>     if (doc.type == “credit_score”) {
> var res = CalculateCreditScore(doc)
>     }
> }
>
> 2 args passed to OnUpdate->Call() are already JSON marshalled(but present
> as string, so was hoping if I could avoid marshalling it twice). I suppose,
> I would have to stick JSON.parse to handle above kind of use case.
>
> Is there a way to expose a custom encoded data(flatbuffer encoded
> probably, it’s cpu footprint looks good) to JS world and access fields from
> it - i.e. args passed to OnUpdate->Call() could be stringified flatbuffer
> encoded data and then somehow we could access fields in flatbuffer schema
> directly from JS?
>
>
>
>
> On Thu, Mar 16, 2017 at 3:39 PM, Abhishek Singh <
> singhabhishek....@gmail.com> wrote:
>
>> Hi,
>>
>> I'm trying to send JSON data to user supplied JS code, which is executed
>> by V8. What I've realised is even if user data is JSON marshalled, I've to
>> explicitly do V8::JSON::Parse on it, so that value received in JS world is
>> native JS JSON. Is that really necessary? Performance penalty because of
>> it, is quite high(screenshot of profile attached).
>>
>>
>>
>> <https://lh3.googleusercontent.com/-y9ml-f0jE8c/WMqjEdHXcrI/AAAAAAAADuo/CiSBic1JwaIxui5NmJvOOpOQpziuVu1ZwCLcB/s1600/Screen%2BShot%2B2017-03-16%2Bat%2B19.53.08.png>
>>
>>
>> --
>> --
>> v8-users mailing list
>> v8-users@googlegroups.com
>> http://groups.google.com/group/v8-users
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "v8-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to v8-users+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to