Version: 4.6.3 (using KDE 4.6.4) OS: Linux ECMAScript Test262 http://test262.ecmascript.org/ is a 10 thousands tests test suite for the ECMA-262, 5th Edition ECMAScript Language Specification. On June 25th 2011, such test suite is at version: 0.7.3 and has 10,865 tests. In order to keep up with new specifications (HTML5, CSS2.1, CSS3, DOM3, ECMAScript 5), Konqueror developers/testers/fans should visit and try public test suites and keep a record of its overal score, etc. Right now, Konqueror 4.6.4 hangs at test S15.4.4.12_A3_T1 (index 3644 out of 10865): basically, this is why I am opening this bug report. Reproducible: Always Steps to Reproduce: 1- Go to http://test262.ecmascript.org/ 2- Click the Run tab 3- Click the green Start button Actual Results: At test S15.4.4.12_A3_T1 (index 3644 out of 10865), Konqueror application hangs: cpu % activity remains high, will remain high during minutes and Konqueror will not move onto next test. An infinite loop is strongly suspected here. Expected Results: At test S15.4.4.12_A3_T1 (index 3644 out of 10875), Konqueror application should execute test, report result and move onto next test. There is no bug report with regards to Konqueror so far listed in this list https://bugs.ecmascript.org/buglist.cgi?query_format=advanced&resolution=--- I will create an account at https://bugs.ecmascript.org/ and then file a bug report on this issue. What I wish to have is that single S15.4.4.12_A3_T1 test so that we could examine what's blocking Konqueror or what is happening with that S15.4.4.12_A3_T1 test. I have been able to run the whole test suite without a problem (no hang, no crash) in Firefox 5.0, Opera 11.11 and Chrome 12.0.742.100. KDE Platform Version: 4.6.4 Konqueror version: 4.6.4 Qt Version: 4.7.2 Operating System: Linux 2.6.38-10-generic-pae i686 Distribution: Kubuntu 11.04 here. regards, Gérard
I can reproduce the problem with KDE 4.6.5. starting konqi in gdb and breaking while it "hangs" (btw.: here it hangs after 3708 tests): #0 0xb7ddc64e in malloc () from /lib/libc.so.6 #1 0xb62dac05 in operator new(unsigned int) () from /usr/lib/libstdc++.so.6 #2 0xb24d8d2e in KJS::UString::Rep::create (d=0xabec340, l=9) at /usr/src/debug/kdelibs-4.6.5/kjs/ustring.cpp:169 #3 0xb24d8de7 in KJS::UString::Rep::createCopying (d=0xbfffb96e, length=9) at /usr/src/debug/kdelibs-4.6.5/kjs/ustring.cpp:164 #4 0xb24d95fa in KJS::UString::UString (this=0xbfffb9c8, c=0xbfffb96e, length=9) at /usr/src/debug/kdelibs-4.6.5/kjs/ustring.cpp:459 #5 0xb24d9f2d in KJS::UString::from (u=<value optimized out>) at /usr/src/debug/kdelibs-4.6.5/kjs/ustring.cpp:587 #6 0xb251326e in from (this=0xaf138d40, exec=0xbfffbf4c, propertyName=176287591, slot=...) at /usr/src/debug/kdelibs-4.6.5/kjs/identifier.h:78 #7 KJS::JSObject::getOwnPropertySlot (this=0xaf138d40, exec=0xbfffbf4c, propertyName=176287591, slot=...) at /usr/src/debug/kdelibs-4.6.5/kjs/object.cpp:126 #8 0xb25134aa in KJS::JSObject::getPropertySlot (this=0xaf138d40, exec=0xbfffbf4c, propertyName=176287591, slot=...) at /usr/src/debug/kdelibs-4.6.5/kjs/object.cpp:111 #9 0xb2501c1e in KJS::getProperty (exec=0xbfffbf4c, obj=0xaf138d40, index=176287591) at /usr/src/debug/kdelibs-4.6.5/kjs/array_object.cpp:100 #10 0xb250286f in KJS::ArrayProtoFunc::callAsFunction (this=0xaf138d20, exec=0xbfffbf4c, thisObj=0xaf138d40, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/array_object.cpp:401 #11 0xb2530ccb in call (exec=0xbfffbf4c, codeBlock=..., parentExec=0xbfffc41c) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #12 KJS::Machine::runBlock (exec=0xbfffbf4c, codeBlock=..., parentExec=0xbfffc41c) at codes.def:1223 #13 0xb250eaa6 in KJS::FunctionImp::callAsFunction (this=0xaf138e40, exec=0xbfffc41c, thisObj=0xafa90040, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/function.cpp:172 ---Type <return> to continue, or q <return> to quit--- #14 0xb24f4ad6 in call (this=0xaf0bc040, exec=0xbfffc41c, thisObj=0xaf138e40, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #15 KJS::FunctionProtoFunc::callAsFunction (this=0xaf0bc040, exec=0xbfffc41c, thisObj=0xaf138e40, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/function_object.cpp:139 #16 0xb2530ccb in call (exec=0xbfffc41c, codeBlock=..., parentExec=0xbfffc8dc) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #17 KJS::Machine::runBlock (exec=0xbfffc41c, codeBlock=..., parentExec=0xbfffc8dc) at codes.def:1223 #18 0xb250eaa6 in KJS::FunctionImp::callAsFunction (this=0xaf20e800, exec=0xbfffc8dc, thisObj=0xaf20e840, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/function.cpp:172 #19 0xb2530ccb in call (exec=0xbfffc8dc, codeBlock=..., parentExec=0x0) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #20 KJS::Machine::runBlock (exec=0xbfffc8dc, codeBlock=..., parentExec=0x0) at codes.def:1223 #21 0xb24e404c in KJS::FunctionBodyNode::execute (this=0xab8b668, exec=0xbfffc8dc) at /usr/src/debug/kdelibs-4.6.5/kjs/nodes.cpp:927 #22 0xb2517880 in KJS::Interpreter::evaluate (this=0x92440a0, sourceURL=..., startingLineNumber=257, code=0xabfc0a8, codeLength=1402, thisV=0xafa90040) at /usr/src/debug/kdelibs-4.6.5/kjs/interpreter.cpp:564 #23 0xb2517a3a in KJS::Interpreter::evaluate (this=0x92440a0, sourceURL=..., startingLineNumber=257, code=..., thisV= 0xafa90040) at /usr/src/debug/kdelibs-4.6.5/kjs/interpreter.cpp:504 #24 0xb29c3933 in KJSProxy::evaluate (this=0x9244e00, filename=..., baseLine=180373472, str=..., n=..., completion=0xbfffcadc) at /usr/src/debug/kdelibs-4.6.5/khtml/ecma/kjs_proxy.cpp:126 #25 0xb272dad3 in KHTMLPart::executeScript (this=0xab63040, filename=..., baseLine=57, n=..., script=...) at /usr/src/debug/kdelibs-4.6.5/khtml/khtml_part.cpp:1279 #26 0xb2802903 in khtml::HTMLTokenizer::scriptExecution (this=0xabc7440, str=..., scriptURL=..., baseLine=180373472) at /usr/src/debug/kdelibs-4.6.5/khtml/html/htmltokenizer.cpp:517 ---Type <return> to continue, or q <return> to quit--- #27 0xb2806172 in khtml::HTMLTokenizer::scriptHandler (this=0xabc7440) at /usr/src/debug/kdelibs-4.6.5/khtml/html/htmltokenizer.cpp:470 #28 0xb2807c01 in khtml::HTMLTokenizer::parseRawContent (this=0xabc7440, src=...) at /usr/src/debug/kdelibs-4.6.5/khtml/html/htmltokenizer.cpp:379 #29 0xb280af3c in khtml::HTMLTokenizer::parseTag (this=0xabc7440, src=...) at /usr/src/debug/kdelibs-4.6.5/khtml/html/htmltokenizer.cpp:1527 #30 0xb280b5a6 in khtml::HTMLTokenizer::write (this=0xabc7440, str=..., appendData=false) at /usr/src/debug/kdelibs-4.6.5/khtml/html/htmltokenizer.cpp:1798 #31 0xb27b0c32 in DOM::DocumentImpl::write (this=0xab73680, text=...) at /usr/src/debug/kdelibs-4.6.5/khtml/xml/dom_docimpl.cpp:1687 #32 0xb2997af7 in KJS::HTMLDocFunction::callAsFunction (this=0xaf1dbb20, exec=0xbfffd3cc, thisObj=0xbfffd020, args=...) at /usr/src/debug/kdelibs-4.6.5/khtml/ecma/kjs_html.cpp:135 #33 0xb2530ccb in call (exec=0xbfffd3cc, codeBlock=..., parentExec=0xbfffd81c) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #34 KJS::Machine::runBlock (exec=0xbfffd3cc, codeBlock=..., parentExec=0xbfffd81c) at codes.def:1223 #35 0xb250eaa6 in KJS::FunctionImp::callAsFunction (this=0xaf240cc0, exec=0xbfffd81c, thisObj=0xaf240be0, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/function.cpp:172 #36 0xb2530ccb in call (exec=0xbfffd81c, codeBlock=..., parentExec=0xbfffdc6c) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #37 KJS::Machine::runBlock (exec=0xbfffd81c, codeBlock=..., parentExec=0xbfffdc6c) at codes.def:1223 #38 0xb250eaa6 in KJS::FunctionImp::callAsFunction (this=0xaf240f20, exec=0xbfffdc6c, thisObj=0xaf240d00, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/function.cpp:172 #39 0xb2530ccb in call (exec=0xbfffdc6c, codeBlock=..., parentExec=0x8d88858) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 ---Type <return> to continue, or q <return> to quit--- #40 KJS::Machine::runBlock (exec=0xbfffdc6c, codeBlock=..., parentExec=0x8d88858) at codes.def:1223 #41 0xb250eaa6 in KJS::FunctionImp::callAsFunction (this=0xaf240de0, exec=0x8d88858, thisObj=0xafa90000, args=...) at /usr/src/debug/kdelibs-4.6.5/kjs/function.cpp:172 #42 0xb29ab578 in call (this=0xaf240de0, window=0xafa90000) at /usr/src/debug/kdelibs-4.6.5/kjs/object.h:626 #43 KJS::ScheduledAction::execute (this=0xaf240de0, window=0xafa90000) at /usr/src/debug/kdelibs-4.6.5/khtml/ecma/kjs_window.cpp:2283 #44 0xb29ba4f3 in KJS::WindowQObject::timerEvent (this=0x8cfdaf0) at /usr/src/debug/kdelibs-4.6.5/khtml/ecma/kjs_window.cpp:2458 #45 0xb6fd61c4 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4 #46 0xb64566e4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #47 0xb645f4a7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #48 0xb74f50f1 in KApplication::notify (this=0xbfffe790, receiver=0x8cfdaf0, event=0xbfffe31c) at /usr/src/debug/kdelibs-4.6.5/kdeui/kernel/kapplication.cpp:311 #49 0xb6fc0d5e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #50 0xb6ff214e in ?? () from /usr/lib/libQtCore.so.4 #51 0xb6feee12 in ?? () from /usr/lib/libQtCore.so.4 #52 0xb5b56b49 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #53 0xb5b57350 in ?? () from /usr/lib/libglib-2.0.so.0 #54 0xb5b5760e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #55 0xb6fef53b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #56 0xb650d1ca in ?? () from /usr/lib/libQtGui.so.4 #57 0xb6fc003d in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #58 0xb6fc0269 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 ---Type <return> to continue, or q <return> to quit--- #59 0xb6fc4d10 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #60 0xb64543e4 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #61 0xb7f8638f in kdemain (argc=1, argv=0xbfffea44) at /usr/src/debug/kdebase-4.6.5/konqueror/src/konqmain.cpp:219 #62 0x0804860b in main (argc=1, argv=0xbfffea44) at /usr/src/debug/kdebase-4.6.5/build/konqueror/src/konqueror_dummy.cpp:3
Martin, What this bug needs is the exact testcase where the "hang" happens so that we can reproduce, investigate, fix, etc. It's possible to "corner" this. Also, the ECMAScript Test262 is now at version 5.1 and the hang occurs no longer at index 3644; it could be a test after S15.4.4.12_A3_T1 test. Gérard
> it hangs after 3708 tests We would need to have the code of test #3707 and the code of test #3708. Then we would be able to figure out and fix the problem. Gérard
ECMAScript 5.1, approved in June 2011, is a maintenance revision of the ECMAScript 5 specification. Version of ECMAScript test262 test suite: 0.7.5.3 Number of tests: 10927 tests Date of test suite: 2011-07-18 Now, S15.4.4.12_A3_T1 is test 3704 I tried that version of test suite. Konqueror 4.7.0 (KHTML rendering engine) under KDE 4.7.0 platform version had passed 3628 tests out of 3704 tests == 97.9% at that point. ----------------- test262 discussion Archives mailing list https://mail.mozilla.org/pipermail/test262-discuss/ test262 FAQ http://wiki.ecmascript.org/doku.php?id=test262:faq Ideally, one of the best person to contact in order to know what is the code of S15.4.4.12_A3_T1 test would be Dave Fugate regards, Gérard
Number of tests: 11108 tests Date of test suite: 2011-11-28 Now, S15.4.4.12_A3_T1 is test 7553. Konqueror 4.7.4 (KHTML rendering engine) under KDE 4.7.4 platform version had passed 4153 tests out of 7553 tests achieving a performance score of 54.9% at that point. Gérard
Git commit 5084dfd772ac39dbbb91044076f28cfe1be22a9d by Bernd Buschinski. Committed on 17/04/2012 at 00:06. Pushed by buschinski into branch 'KDE/4.8'. kjs: Corretly get the begin and deleteCount for array.splice The current implementation only allows max int values. But ecmascript 15.4.4.12 allows max uint32 (via ToInteger(which is a double) and limits it to the array length(uint32)) FIXED-IN: 4.8.3 REVIEW: 104104 M +6 -5 kjs/array_object.cpp http://commits.kde.org/kdelibs/5084dfd772ac39dbbb91044076f28cfe1be22a9d
Bernd, This is great! I can't wait for 4.8.3 to be released! Thanks for your time and expert knowledge of javascript! :) Gérard
I took the ECMAScript Test262 test suite yesterday: 11570 tests, ES 5.1, Test Suite Date: 2012-05-18 PASS: 7306 FAIL: 4264 Success rate: 63.15% I am using KDE Platform Version: 4.8.4 Konqueror version: 4.8.4 (with KHTML rendering engine) Qt Version: 4.8.1 Operating System: Linux 3.2.0-25-generic-pae i686 (32bits) Distribution: Kubuntu 12.04 LTS here. Therefore, I am marking this bug as VERIFIED. Gérard
Attempting with KDE 4.14.0 this test page no longer works. Consider reopening.
(In reply to nick from comment #9) > Attempting with KDE 4.14.0 this test page no longer works. Consider > reopening. Nick, Could you please create a new bug report for this? And please provide as much useful details as possible... so that the source of regression can be figured out. Gérard
That's odd. Today it's working. Yesterday it wouldn't even fully render the page. Not sure what changed.
Is there any roadmap somewhere to track KJS ES5 support?