I have found the easiest thing is to delete the built in console
(global->Delete) and then add your own.

Setting the console delegate requires using the inspector API and is harder.

On Tue, Feb 5, 2019, 8:12 AM <ca...@igalia.com wrote:

>
>
> > On Feb 5, 2019, at 10:02 AM, Gerry Sweeney <gezz...@gmail.com> wrote:
> >
> > Hello Caitlin,
> >
> > First of all, thank you for your response, and yes you are right I
> should have been far clearer in my question, please let me clarify.
> >
> > I have a process, is an x64 C++ application that normally runs as a
> Windows service or a Linux Deamon, its job is to provide a way for our user
> to write application logic in JavaScript, which we then invoke using a REST
> type API.  Under normal circumstances, this project runs as a service, but
> when working on the code, it's essentially running as a Windows console
> application, anything emitted on stdout appears in the console window of
> the running process. The process is conceptually similar to a Node.js
> server process.
> >
> > This process is written in C++ and embeds V8, and in the current model,
> we create an Isolate and Context per API request made, and when we process
> a request, we are loading some JavaScript from a cache and executing it.
>  As part of the embedding, we have created a number of native objects in
> C++ that are exposed in the JavaScript domain, classes that provide access
> to the underlying database, memory cache and other relates to web services.
> >
> > When we write JavaScript we have to debug it, and in the absence of
> using CDT for remote debugging (which we are in the process of
> implementing), we could at least do with using console.log().  We have
> implemented a websocket interface that on a call by call basis allows our
> C++ code to send arbitrary content back to the developer (of the
> JavaScript) workstation.
> >
> > So I need a way of implementing console.log() where I can redirect its
> output to my own websocket.  My intention was to create an object called
> "console" and create a function on that object called "log()" and create an
> instance of that object in the global namespace, thus simulating the
> console.log() web developers are used in browsers.
> >
> > However, what I found is, without me creating these objects, they appear
> to already exist in the default implementation of v8. In other words, if I
> write  console.log("Hello, World") the script runs without error, which
> tells me that the console object exists, and the log() function exists.
> >
> > So rather than re-invent the wheel and implement my own version of
> console.log() I thought it might just be simpler to find a way to capture
> the output of what already exists.  Thing is, I have no idea where to
> start.
> >
> > Also, which console.log() implementation are you using? The one from
> d8-console.cc? One from Node.js or Chromium? A custom one?
> > I am assuming that the embedded V8 library includes by default the
> console object
>
> Ah I see you're right, this is now included in the initial context. It
> looks like you need to use `debug::SetConsoleDelegate(isolate,
> ConsoleDelegate*)` in order to provide the behaviour you want --- however,
> I'm not sure how this is exposed to the public API. Inspector folks could
> help more with that.
>
> It looks like by default, the Isolate's console_delegate_ is null, and the
> builtin console.log returns early if that's the case.
>
> > We are using 6.9.167 of the v8 engine in this project.
> >
> > I hope that makes more sense now - sorry for the poor quality initial
> question.
> > Gerry
> >
> >
> > --
> > --
> > 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.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to