[Webkit-unassigned] [Bug 30672] JS is not properly executed with JIT enabled on ARM platform

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Oct 22 06:26:16 PDT 2009


https://bugs.webkit.org/show_bug.cgi?id=30672





--- Comment #2 from kphanee <kasibhatla.ravi at gmail.com>  2009-10-22 06:26:16 PDT ---
While debugging for the issue, the one thing that was observed was:
When JIT is turned ON, the event listener registration for all the required
events is failing. Probably, this is causing the issue, since the network
requests to be sent by the script are never sent, as the script doesn't realize
that some action has been performed.

For instance, in case of http://www.hotels.com, for the events keyup & keydown,
its event listeners are not getting registered at all. Hence, when we type a
string the javascript never realizes that some string has been entered. As a
result, webkit never sends any request to the server to fetch the suggestions
from the current string. 
Similarly, in instance of http://tom.drastic.net/twitterbrowse/, the listener
for the events mouseover are not registered, which stops any request sent for
the data in the page. 

I tried to figure out why the event registration is failing. I observed that
when JIT is off, the event listener registration happens through the following
backtrace:
#0  0x408849a4 in WebCore::jsNodePrototypeFunctionAddEventListener () from
/usr/local/lib/libwebkit-1.0.so.2
#1  0x40178e48 in JSC::Interpreter::privateExecute () from
/usr/local/lib/libwebkit-1.0.so.2
#2  0x40180c00 in JSC::Interpreter::execute () from
/usr/local/lib/libwebkit-1.0.so.2
#3  0x4022ec58 in JSC::evaluate () from /usr/local/lib/libwebkit-1.0.so.2
#4  0x40299fe0 in WebCore::ScriptController::evaluate () from
/usr/local/lib/libwebkit-1.0.so.2
#5  0x404c4cfc in WebCore::FrameLoader::executeScript () from
/usr/local/lib/libwebkit-1.0.so.2
#6  0x404800dc in WebCore::HTMLTokenizer::scriptExecution () from
/usr/local/lib/libwebkit-1.0.so.2
#7  0x404847a4 in WebCore::HTMLTokenizer::notifyFinished () from
/usr/local/lib/libwebkit-1.0.so.2
#8  0x404acbb4 in WebCore::CachedScript::didAddClient () from
/usr/local/lib/libwebkit-1.0.so.2
#9  0x404ab0a8 in WebCore::CachedResource::addClient () from
/usr/local/lib/libwebkit-1.0.so.2
#10 0x40480cf4 in WebCore::HTMLTokenizer::scriptHandler () from
/usr/local/lib/libwebkit-1.0.so.2
#11 0x40481c50 in WebCore::HTMLTokenizer::parseNonHTMLText () from
/usr/local/lib/libwebkit-1.0.so.2
#12 0x40483c94 in WebCore::HTMLTokenizer::parseTag () from
/usr/local/lib/libwebkit-1.0.so.2
#13 0x404872fc in WebCore::HTMLTokenizer::write () from
/usr/local/lib/libwebkit-1.0.so.2
#14 0x40484850 in WebCore::HTMLTokenizer::timerFired () from
/usr/local/lib/libwebkit-1.0.so.2
#15 0x404877b0 in WebCore::Timer<WebCore::HTMLTokenizer>::fired () from
/usr/local/lib/libwebkit-1.0.so.2
#16 0x405708b8 in WebCore::ThreadTimers::fireTimers () from
/usr/local/lib/libwebkit-1.0.so.2
#17 0x40570bcc in WebCore::ThreadTimers::sharedTimerFiredInternal () from
/usr/local/lib/libwebkit-1.0.so.2
#18 0x407f5be4 in WebCore::timeout_cb () from /usr/local/lib/libwebkit-1.0.so.2
#19 0x429cf34c in g_idle_dispatch (source=<value optimized out>,
callback=0x407f5bbc <WebCore::timeout_cb(void*)>, user_data=0x43574ae0) at
gmain.c:4087
#20 0x429d11bc in IA__g_main_context_dispatch (context=0x8ff80) at gmain.c:2009
#21 0x429d4904 in g_main_context_iterate (context=0x8ff80, block=1106843272,
dispatch=1118233028, self=<value optimized out>) at gmain.c:2642
#22 0x429d4c10 in IA__g_main_loop_run (loop=0xd9c48) at gmain.c:2850
#23 0x42111d8c in gtk_main () from /usr/local/lib/libgtk-x11-2.0.so.0
#24 0x0001ac70 in main (argc=2, argv=0xbe9ffce4) at webkit_browser_app.c:601



On the other hand, when JIT is on, the event listener registration happens
through the following flow:
#0  0x408dbafc in WebCore::jsNodePrototypeFunctionAddEventListener () from
/usr/local/lib/libwebkit-1.0.so.2
#1  0x401964b4 in ctiTrampoline () from /usr/local/lib/libwebkit-1.0.so.2
#2  0x436ca024 in ?? ()


Is there any case where ctiTrampoline() is not called under particular
conditions?

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list