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.