Hi Hanyun,

V8 is fairly complicated, and pretty much all it does is to compile and
execute JavaScript. Do you have a more specific question?

If you just want a starting point for reading code: maybe "CompileTopLevel"
in src/compiler.cc would be a reasonable choice.

On Sun, Aug 27, 2017 at 1:06 PM, Hanyun Tao <taohany...@gmail.com> wrote:

> Hi all,
>
> I'm trying to understand how V8 engine compiles and execute JavaScript
> events. I used GDB to track the function call path when handling an event
> and it look like this.
>
>
>
>  #0  v8::internal::Logger::TimerEvent (this=<optimized out>,
> se=<optimized out>, name=<optimized out>) at ../../v8/src/log.cc:866
>
>
>  #1  0x00007f0cfcb23b39 in TimerEventScope (this=<optimized out>,
> isolate=<optimized out>) at ../../v8/src/log.h:354
>
>
>  #2  v8::Function::Call (this=<optimized out>, context=..., recv=...,
> argc=<optimized out>, argv=<optimized out>) at ../../v8/src/api.cc:5094
>
>
>  #3  0x00007f0cf18daa0b in blink::V8ScriptRunner::callFunction
> (function=..., context=0x201b099829d0, receiver=..., argc=1,
> args=0x7fffe9e1cea0,
>     isolate=0x2def318c6020) at ../../third_party/WebKit/Source/bindings/
> core/v8/V8ScriptRunner.cpp:658
>
>
>  #4  0x00007f0cf18a1c26 in blink::V8EventListener::callListenerFunction
> (this=0xe9381bfbea0, scriptState=0x37fa7244c710, jsEvent=..., event=
>     0x36f97e2ba60) at ../../third_party/WebKit/Source/bindings/core/v8/
> V8EventListener.cpp:112
>
>
>
>  #5  0x00007f0cf1887b16 in blink::V8AbstractEventListener::invokeEventHandler
> (this=0xe9381bfbea0, scriptState=0x37fa7244c710,
>     event=0x36f97e2ba60, jsEvent=...) at ../../third_party/WebKit/Source/
> bindings/core/v8/V8AbstractEventListener.cpp:142
>
>
>  #6  0x00007f0cf188787f in blink::V8AbstractEventListener::handleEvent
> (this=0xe9381bfbea0, scriptState=0x37fa7244c710, event=0x36f97e2ba60)
>     at ../../third_party/WebKit/Source/bindings/core/v8/V8AbstractE
> ventListener.cpp:101
>
>
>  #7  0x00007f0cf1887689 in blink::V8AbstractEventListener::handleEvent
> (this=0xe9381bfbea0, executionContext=0x201b099829d0, event=0x36f97e2ba60)
>     at ../../third_party/WebKit/Source/bindings/core/v8/V8AbstractE
> ventListener.cpp:89
>
>
>  #8  0x00007f0cf211c596 in blink::EventTarget::fireEventListeners
> (this=0x201b09982858, event=0x36f97e2ba60, d=0xe9381be9500, entry=...)
>     at ../../third_party/WebKit/Source/core/events/EventTarget.cpp:700
>
>
>  #9  0x00007f0cf211b7cb in blink::EventTarget::fireEventListeners
> (this=0x201b09982858, event=0x36f97e2ba60)
>     at ../../third_party/WebKit/Source/core/events/EventTarget.cpp:56
>
>
> I tried to read the source code to find out where does V8 compiles the
> JavaScript, but unfortunately, I could not find it.
>
> It would be really helpful if someone can explain the process to me, or
> let me know which files(functions) I should read.
>
> Best regards,
>
> --
> --
> 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