Bug 69293 - JSC ASSERT Opening the Web Inspector
Summary: JSC ASSERT Opening the Web Inspector
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-03 14:51 PDT by Joseph Pecoraro
Modified: 2011-10-03 18:36 PDT (History)
6 users (show)

See Also:


Attachments
the patch (1.41 KB, patch)
2011-10-03 17:27 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Joseph Pecoraro 2011-10-03 14:51:44 PDT
ASSERT added in r96527 <trac.webkit.org/r96527>:
<http://webkit.org/b/69235> DFG should speculate more aggressively on obvious cases on polymorphic get_by_id

On ToT r96537 I'm seeing the following ASSERT when opening the web inspector:

    ASSERTION FAILED: !contains(structure)
    /Volumes/Data/Code/webkit-open-source/Source/JavaScriptCore/dfg/DFGStructureSet.h(48) : void JSC::DFG::StructureSet::add(JSC::Structure *)
    1   JSC::DFG::StructureSet::add(JSC::Structure*)
    2   JSC::DFG::ByteCodeParser::parseBlock(unsigned int)
    3   JSC::DFG::ByteCodeParser::parse()
    4   JSC::DFG::parse(JSC::DFG::Graph&, JSC::JSGlobalData*, JSC::CodeBlock*)
    5   JSC::DFG::compile(JSC::DFG::CompileMode, JSC::ExecState*, JSC::ExecState*, JSC::CodeBlock*, JSC::JITCode&, JSC::MacroAssemblerCodePtr*)
    6   JSC::DFG::tryCompileFunction(JSC::ExecState*, JSC::ExecState*, JSC::CodeBlock*, JSC::JITCode&, JSC::MacroAssemblerCodePtr&)
    7   JSC::FunctionExecutable::compileForCallInternal(JSC::ExecState*, JSC::ScopeChainNode*, JSC::ExecState*, JSC::JITCode::JITType)
    8   JSC::FunctionExecutable::compileOptimizedForCall(JSC::ExecState*, JSC::ScopeChainNode*, JSC::ExecState*)
    9   JSC::FunctionExecutable::compileOptimizedFor(JSC::ExecState*, JSC::ScopeChainNode*, JSC::CodeSpecializationKind)
    10  JSC::FunctionCodeBlock::compileOptimized(JSC::ExecState*, JSC::ScopeChainNode*)
    11  cti_optimize_from_ret
    12  jscGeneratedNativeCode
    13  JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*)
    14  JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    15  JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    16  JSC::JSObject::put(JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&)
    17  JSC::JSValue::put(JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&)
    18  cti_op_put_by_id_generic
    19  jscGeneratedNativeCode
    20  JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*)
    21  JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    22  JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    23  JSC::JSObject::put(JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&)
    24  JSC::JSValue::put(JSC::ExecState*, JSC::Identifier const&, JSC::JSValue, JSC::PutPropertySlot&)
    25  cti_op_put_by_id
    26  jscGeneratedNativeCode
    27  JSC::JITCode::execute(JSC::RegisterFile*, JSC::ExecState*, JSC::JSGlobalData*)
    28  JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    29  JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    30  WebCore::JSMainThreadExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
    31  WebCore::ScheduledAction::executeFunctionInContext(JSC::JSGlobalObject*, JSC::JSValue, WebCore::ScriptExecutionContext*)
Comment 1 Sam Weinig 2011-10-03 15:03:49 PDT
I am also seeing this when running the tests.
Comment 2 Filip Pizlo 2011-10-03 15:14:55 PDT
I'm on it...
Comment 3 Filip Pizlo 2011-10-03 17:27:23 PDT
Created attachment 109559 [details]
the patch

This fixes the test regressions, and the Web Inspector works for me, with this fix.
Comment 4 WebKit Review Bot 2011-10-03 18:36:27 PDT
Comment on attachment 109559 [details]
the patch

Clearing flags on attachment: 109559

Committed r96564: <http://trac.webkit.org/changeset/96564>
Comment 5 WebKit Review Bot 2011-10-03 18:36:31 PDT
All reviewed patches have been landed.  Closing bug.