Hi Jakob,

Thank you for replying!

To be more specific, I'm looking for the point (function) that initiate the 
compilation process.

In my understanding, when handling an "event", the renderer process in the 
browser will figure out the JavaScript related to the event, and ask the V8 
engine to execute it by calling some api function.

Inside those api function, there should be a point where V8 initiate the 
compilation process, and that is what I'm looking for.

Best regards,



On Sunday, August 27, 2017 at 7:58:37 PM UTC-4, Jakob Kummerow wrote:
>
> 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 <[email protected] 
> <javascript:>> 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/
>> V8AbstractEventListener.cpp:101
>>
>>
>>  #7  0x00007f0cf1887689 in blink::V8AbstractEventListener::handleEvent 
>> (this=0xe9381bfbea0, executionContext=0x201b099829d0, event=0x36f97e2ba60)
>>     at ../../third_party/WebKit/Source/bindings/core/v8/
>> V8AbstractEventListener.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
>> [email protected] <javascript:>
>> 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 [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
-- 
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to