To reproduce: 1. run-webkit-tests fast/history The new :visited tests are asserting in Debug builds, and failing in Release builds. Here's the backtrace of the assertion: > JavaScriptCore.dll!toJS(JSC::ExecState * exec=0x05a70108, const OpaqueJSValue * v=0x00000000) Line 66 + 0x1f bytes C++ JavaScriptCore.dll!JSC::JSCallbackFunction::call(JSC::ExecState * exec=0x05a70108, JSC::JSObject * functionObject=0x05e83100, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 70 + 0x14 bytes C++ JavaScriptCore.dll!cti_op_call_NotJSFunction(void * * args=0x0012eb30) Line 1901 + 0x31 bytes C++ JavaScriptCore.dll!@cti_op_convert_this@4() + 0x10f bytes C++ JavaScriptCore.dll!JSC::JITCode::execute(JSC::RegisterFile * registerFile=0x040c0654, JSC::ExecState * callFrame=0x05a70050, JSC::JSGlobalData * globalData=0x040be988, JSC::JSValue * exception=0x040bf8c0) Line 77 + 0x24 bytes C++ JavaScriptCore.dll!JSC::Interpreter::execute(JSC::FunctionExecutable * functionExecutable=0x0410f940, JSC::ExecState * callFrame=0x0404a850, JSC::JSFunction * function=0x05e82f00, JSC::JSObject * thisObj=0x05e80000, const JSC::ArgList & args={...}, JSC::ScopeChainNode * scopeChain=0x0410df98, JSC::JSValue * exception=0x040bf8c0) Line 688 + 0x31 bytes C++ JavaScriptCore.dll!JSC::JSFunction::call(JSC::ExecState * exec=0x0404a850, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 122 + 0x4e bytes C++ JavaScriptCore.dll!JSC::call(JSC::ExecState * exec=0x0404a850, JSC::JSValue functionObject={...}, JSC::CallType callType=CallTypeJS, const JSC::CallData & callData={...}, JSC::JSValue thisValue={...}, const JSC::ArgList & args={...}) Line 39 + 0x2b bytes C++ WebKit.dll!WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext * scriptExecutionContext=, WebCore::Event * event=) Line 115 + 0xc7 bytes C++ WebKit.dll!WebCore::EventTarget::fireEventListeners(WebCore::Event * event=0x040baaf8, WebCore::EventTargetData * d=0x0406d53c, WTF::Vector<WebCore::RegisteredEventListener,1> & entry=[1]({listener=0x04109790 {m_functionName={} m_eventParameterName={} m_code={} ...} useCapture=false })) Line 315 + 0x35 bytes C++ WebKit.dll!WebCore::EventTarget::fireEventListeners(WebCore::Event * event=0x040baaf8) Line 281 C++ WebKit.dll!WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr<WebCore::Event> prpEvent={...}, WTF::PassRefPtr<WebCore::EventTarget> prpTarget={...}) Line 1445 + 0x11 bytes C++ WebKit.dll!WebCore::DOMWindow::dispatchLoadEvent() Line 1401 C++ WebKit.dll!WebCore::Document::dispatchWindowLoadEvent() Line 2999 C++ WebKit.dll!WebCore::Document::implicitClose() Line 1824 C++ WebKit.dll!WebCore::FrameLoader::checkCallImplicitClose() Line 1195 C++ WebKit.dll!WebCore::FrameLoader::checkCompleted() Line 1144 C++ WebKit.dll!WebCore::FrameLoader::completed() Line 1865 C++ WebKit.dll!WebCore::FrameLoader::checkCompleted() Line 1147 C++ WebKit.dll!WebCore::FrameLoader::finishedParsing() Line 1083 C++ WebKit.dll!WebCore::Document::finishedParsing() Line 4207 C++ WebKit.dll!WebCore::HTMLParser::finished() Line 1666 + 0x1a bytes C++ WebKit.dll!WebCore::HTMLTokenizer::end() Line 1871 C++ WebKit.dll!WebCore::HTMLTokenizer::finish() Line 1911 C++ WebKit.dll!WebCore::Document::finishParsing() Line 1971 + 0x20 bytes C++ WebKit.dll!WebCore::FrameLoader::endIfNotLoadingMainResource() Line 985 C++ WebKit.dll!WebCore::FrameLoader::end() Line 970 C++ WebKit.dll!WebCore::DocumentLoader::finishedLoading() Line 270 C++ WebKit.dll!WebCore::FrameLoader::finishedLoading() Line 2824 C++ WebKit.dll!WebCore::MainResourceLoader::didFinishLoading() Line 425 C++ WebKit.dll!WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle * __formal=0x0410e7d8) Line 443 + 0xf bytes C++ WebKit.dll!WebCore::didFinishLoading(_CFURLConnection * conn=0x0410fa78, const void * clientInfo=0x0410e7d8) Line 231 + 0x1e bytes C++
The problem is that LayoutTestController::computedStyleIncludingVisitedInfo is returning 0 as a JSValueRef, which is an illegal use of the JSC API.
Let's use this bug to track the assertions.
Bug 37336 will track actually making these tests pass.
...and bug 37337.
Created attachment 52956 [details] Make :visited tests added in r57292 not assert on Windows and GTK builds
Comment on attachment 52956 [details] Make :visited tests added in r57292 not assert on Windows and GTK builds r=me!
Committed r57339: <http://trac.webkit.org/changeset/57339>