<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>130106</bug_id>
          
          <creation_ts>2014-03-11 18:07:21 -0700</creation_ts>
          <short_desc>DYEBench hits an assertion in JSC::DFG::DCEPhase::fixupBlock DFGDCEPhase.cpp(186)</short_desc>
          <delta_ts>2014-03-11 19:33:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>130069</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>989481</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-11 18:07:21 -0700</bug_when>
    <thetext>With the patch on the bug 130069, we&apos;re not hitting the following assertion:

SHOULD NEVER BE REACHED
/Volumes/Data/webkit3/Source/JavaScriptCore/dfg/DFGDCEPhase.cpp(186) : void JSC::DFG::DCEPhase::fixupBlock(JSC::DFG::BasicBlock *)
1   0x10c95c3d0 WTFCrash
2   0x10c3f16a1 JSC::DFG::DCEPhase::fixupBlock(JSC::DFG::BasicBlock*)
3   0x10c3f11ce JSC::DFG::DCEPhase::run()
4   0x10c3f03a5 bool JSC::DFG::runAndLog&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::DCEPhase&amp;)
5   0x10c3f032e bool JSC::DFG::runPhase&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::Graph&amp;)
6   0x10c3f02e8 JSC::DFG::performDCE(JSC::DFG::Graph&amp;)
7   0x10c4a6360 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;)
8   0x10c4a5a94 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;, JSC::DFG::ThreadData*)
9   0x10c548ef0 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
10  0x10c547b44 JSC::DFG::Worklist::threadFunction(void*)
11  0x10c9abbf0 WTF::threadEntryPoint(void*)
12  0x10c9ac878 WTF::wtfThreadEntryPoint(void*)
13  0x7fff8f8d4899 _pthread_body
14  0x7fff8f8d472a _pthread_struct_init
15  0x7fff8f8d8fc9 thread_start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989491</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-11 18:44:54 -0700</bug_when>
    <thetext>Here&apos;s the graph dump:

block=0x7fa364851600 index=6


DFG for adapterDidCommit#EP3AeT:[0x7fa36895d300-&gt;0x7fa368146200-&gt;0x11b579470, DFGFunctionCall, 192]:
  Fixpoint state: FixpointConverged; Form: LoadStore; Unification state: GloballyUnified; Ref count state: EverythingIsLive

Block #0 (bc#0):  (OSR target)
  Predecessors:
  Dominated by: #0
  Dominates: #0 #1 #2 #6 #7 #8 #9 #10 #14 #15 #16
  vars before: arg1:(Top, TOP, TOP, TOP) arg0:(Top, TOP, TOP, TOP)
  var links: arg1:@1 arg0:@0
   0:           &lt; 1:-&gt;	SetArgument(arg0(a), W:SideState, bc#0)  predicting Final
   1:           &lt; 3:-&gt;	SetArgument(arg1(B~&lt;Other&gt;/FlushedJSValue), W:SideState, bc#0)  predicting Other
   2:           &lt; 3:-&gt;	GetLocal(@0, JS|UseAsOther, Final, arg0(a), R:Variables(6), bc#1)  predicting Final
   3:           &lt;!0:-&gt;	Phantom(Check:FinalObject:@2&lt;Final&gt;, MustGen|CanExit, Final, bc#1)
   4:  skipped  &lt; 0:-&gt;	MovHint(@2&lt;Final&gt;, arg0, W:SideState, bc#1)
   5:           &lt; 2:-&gt;	SetLocal(Cell:@2&lt;Final&gt;, arg0(C&lt;Final&gt;/FlushedCell), W:Variables(6), bc#4)  predicting Final
   6:           &lt;!0:-&gt;	FunctionReentryWatchpoint(MustGen, R:Watchpoint_fire, bc#4)
   7:           &lt; 2:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x11a918930 (%Be:JSActivation), bc#4)
   8:  skipped  &lt; 0:-&gt;	MovHint(@7&lt;Object&gt;, loc5, W:SideState, bc#4)
   9:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#10)
  10:           &lt;!0:-&gt;	Phantom(@7&lt;Object&gt;, MustGen, bc#10)
  11:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7fa3685bc100, R:Watchpoint_fire, W:SideState, bc#10)
  12:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x11a7a8030 (%AT:Function), bc#10)
  13:  skipped  &lt; 0:-&gt;	MovHint(@12&lt;Function&gt;, loc0, W:SideState, bc#10)
  14:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#18)
  15:  skipped  &lt; 0:-&gt;	MovHint(@2&lt;Final&gt;, loc4, W:SideState, bc#18)
  16:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#21)
  17:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Stringident, $0 = String (identifier): isError, ID: 5, bc#21)
  18:  skipped  &lt; 0:-&gt;	MovHint(@17&lt;StringIdent&gt;, loc3, W:SideState, bc#21)
  19:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#24)
  20:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Bool, $1 = False, bc#24)
  21:  skipped  &lt; 0:-&gt;	MovHint(@20&lt;Boolean&gt;, loc2, W:SideState, bc#24)
  22:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#27)
  23:           &lt;!0:-&gt;	Call(@12&lt;Function&gt;, @7&lt;Object&gt;, @2&lt;Final&gt;, @17&lt;StringIdent&gt;, @20&lt;Boolean&gt;, JS|MustGen|VarArgs|Clobbers|PureInt|CanExit, Bool, R:World, W:World, bc#27)  predicting Bool
  24:  skipped  &lt; 0:-&gt;	MovHint(@23&lt;Boolean&gt;, loc0, W:SideState, bc#27)
 364:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#36)
  25:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#36)
  26:           &lt; 1:-&gt;	GetLocal(@1, JS|UseAsOther, Other, arg1(B~&lt;Other&gt;/FlushedJSValue), R:Variables(7), bc#36)  predicting Other
  27:           &lt;!0:-&gt;	Branch(Check:ObjectOrOther:@26&lt;Other&gt;, MustGen|CanExit, T:#1, F:#2, W:SideState, bc#36)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc0:(Top, TOP, TOP, TOP) loc2:(Bool, False) loc3:(Stringident, TOP, TOP, [%C2:string], String (identifier): isError, ID: 5) loc4:(Final, TOP, TOP, TOP) loc5:(Otherobj, TOP, TOP, [%Be:JSActivation], Cell: 0x11a918930 (%Be:JSActivation), ID: 489)
  var links: arg1:@26&lt;Other&gt; arg0:@5

Block #1 (bc#39): 
  Predecessors: #0
  Dominated by: #0 #1
  Dominates: #1
  Phi Nodes: @449&lt;2&gt;-&gt;(), @470&lt;2&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@449 arg0:@470
  28:           &lt; 1:-&gt;	GetLocal(@449, JS|UseAsOther, Other, arg1(B~&lt;Other&gt;/FlushedJSValue), R:Variables(7), bc#39)  predicting Other
  29:           &lt; 2:-&gt;	GetLocal(@470, JS|UseAsOther, Final, arg0(C&lt;Final&gt;/FlushedCell), R:Variables(6), bc#39)  predicting Final
  30:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#39)
 489:           &lt;!0:-&gt;	StoreBarrier(Check:Cell:@29&lt;Final&gt;, MustGen|CanExit, R:BarrierState, W:BarrierState, bc#39)
  31:           &lt;!0:-&gt;	PutById(Check:Cell:@29&lt;Final&gt;, @28&lt;Other&gt;, MustGen|Clobbers|CanExit, id1{_data}, R:World, W:World, bc#39)
 510:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#48)
  32:           &lt;!0:-&gt;	Jump(MustGen|CanExit, T:#6, W:SideState, bc#48)
  vars after: 
  var links: arg1:@28&lt;Other&gt; arg0:@29&lt;Final&gt;

Block #2 (bc#50): 
  Predecessors: #0
  Dominated by: #0 #2
  Dominates: #2
  Phi Nodes: @448&lt;2&gt;-&gt;(), @457&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@457 arg0:@448
  33:           &lt; 4:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x117f2e870 (%Dj:Window), bc#50)
  34:  skipped  &lt; 0:-&gt;	MovHint(@33&lt;Object&gt;, loc3, W:SideState, bc#50)
  35:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#56)
  36:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@33&lt;Object&gt;, MustGen|CanExit, %Dj:Window, R:JSCell_structureID, bc#56)
  37:           &lt;!0:-&gt;	Phantom(@33&lt;Object&gt;, MustGen, bc#56)
  38:           &lt; 1:-&gt;	GetButterfly(Cell:@33&lt;Object&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#56)
  39:           &lt; 4:-&gt;	GetByOffset(@38&lt;Other&gt;, KnownCell:@33&lt;Object&gt;, JS|UseAsOther, Final, id2{Ember}, 152, R:NamedProperties(2), bc#56)  predicting Final
  40:  skipped  &lt; 0:-&gt;	MovHint(@39&lt;Final&gt;, loc3, W:SideState, bc#56)
  41:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#64)
  42:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@39&lt;Final&gt;, MustGen|CanExit, [%Cv:Object], R:JSCell_structureID, bc#64)
  43:           &lt; 1:-&gt;	GetButterfly(Cell:@39&lt;Final&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#64)
  44:           &lt; 1:-&gt;	GetByOffset(@43&lt;Other&gt;, KnownCell:@39&lt;Final&gt;, JS|UseAsOther, Function, id3{mixin}, 218, R:NamedProperties(3), bc#64)  predicting Function
  45:  skipped  &lt; 0:-&gt;	MovHint(@44&lt;Function&gt;, loc0, W:SideState, bc#64)
  46:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#73)
  47:           &lt; 2:-&gt;	GetLocal(@448, JS|UseAsOther, Final, arg0(C&lt;Final&gt;/FlushedCell), R:Variables(6), bc#73)  predicting Final
  48:           &lt;!1:-&gt;	GetById(Cell:@47&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, Final, id1{_data}, R:World, W:World, bc#73)  predicting Final
  49:  skipped  &lt; 0:-&gt;	MovHint(@48&lt;Final&gt;, loc2, W:SideState, bc#73)
 508:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#82)
  50:           &lt; 2:-&gt;	SetLocal(@48&lt;Final&gt;, loc2(P*&lt;Final&gt;/FlushedJSValue), W:Variables(-3), bc#82)  predicting Final
  51:           &lt;!1:-&gt;	GetById(Cell:@47&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, Final, id4{_inFlightAttributes}, R:World, W:World, bc#82)  predicting Final
  52:  skipped  &lt; 0:-&gt;	MovHint(@51&lt;Final&gt;, loc1, W:SideState, bc#82)
 509:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#91)
  53:           &lt; 1:-&gt;	SetLocal(@51&lt;Final&gt;, loc1(Q*&lt;Final&gt;/FlushedJSValue), W:Variables(-2), bc#91)  predicting Final
  54:           &lt;!0:-&gt;	CheckFunction(Check:Cell:@44&lt;Function&gt;, @39&lt;Final&gt;, MustGen|CanExit, function(0x11a7a4430, mixin#AnlAZn/&lt;nogen&gt;:[0x11a3dfc70]), bc#91)
  --&gt; mixin#AnlAZn:&lt;0x11a3dfc70, bc#91, Call, known callee: Cell: 0x11a7a4430 (%AT:Function), ID: 375, numArgs+this = 3, stack &lt; loc9&gt;
    55:           &lt; 2:-&gt;	JSConstant(JS|UseAsOther, Other, $3 = Undefined, bc#0)
    56:  skipped  &lt; 0:-&gt;	MovHint(@55&lt;Other&gt;, loc10, W:SideState, bc#0)
    57:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#0)
    58:  skipped  &lt; 0:-&gt;	MovHint(@55&lt;Other&gt;, loc11, W:SideState, bc#0)
    59:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#0)
    60:  skipped  &lt; 0:-&gt;	MovHint(@55&lt;Other&gt;, loc12, W:SideState, bc#0)
    61:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#0)
    62:           &lt; 5:-&gt;	JSConstant(JS|UseAsOther, Empty, $5 = &lt;JSValue()&gt;, bc#1)
    63:  skipped  &lt; 0:-&gt;	MovHint(@62, loc11, W:SideState, bc#1)
    64:           &lt;!0:-&gt;	Phantom(@55&lt;Other&gt;, MustGen, bc#3)
    65:           &lt; 1:-&gt;	SetLocal(@62, loc11(U*/FlushedJSValue), W:Variables(-12), bc#3)  predicting Empty
    66:  skipped  &lt; 0:-&gt;	MovHint(@62, loc10, W:SideState, bc#3)
    67:           &lt;!0:-&gt;	Phantom(@55&lt;Other&gt;, MustGen, bc#5)
    68:           &lt; 1:-&gt;	SetLocal(@62, loc10(V*/FlushedJSValue), W:Variables(-11), bc#5)  predicting Empty
    69:           &lt;!0:-&gt;	FunctionReentryWatchpoint(MustGen, R:Watchpoint_fire, bc#6)
    70:           &lt; 3:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x11a9ef670 (%Be:JSActivation), bc#6)
    71:  skipped  &lt; 0:-&gt;	MovHint(@70&lt;Object&gt;, loc13, W:SideState, bc#6)
    72:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#12)
    73:           &lt;!0:-&gt;	Phantom(@70&lt;Object&gt;, MustGen, bc#12)
    74:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7fa363869ed0, R:Watchpoint_fire, W:SideState, bc#12)
    75:           &lt; 3:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x1198d52f0 (%Bj:Function), bc#12)
    76:  skipped  &lt; 0:-&gt;	MovHint(@75&lt;Function&gt;, loc14, W:SideState, bc#12)
    77:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#20)
    78:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@75&lt;Function&gt;, MustGen|CanExit, %Bj:Function, R:JSCell_structureID, bc#20)
    79:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x1198af890 (%AY:Function), bc#20)
    80:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@79&lt;Object&gt;, MustGen|CanExit, %AY:Function, R:JSCell_structureID, bc#20)
    81:           &lt;!0:-&gt;	Phantom(@75&lt;Function&gt;, MustGen, bc#20)
    82:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x1198d9430 (%Bj:Function), bc#20)
    83:  skipped  &lt; 0:-&gt;	MovHint(@82&lt;Function&gt;, loc15, W:SideState, bc#20)
    84:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#29)
    85:           &lt;!0:-&gt;	Phantom(Cell:@82&lt;Function&gt;, MustGen, bc#29)
    88:  skipped  &lt; 0:-&gt;	MovHint(@75&lt;Function&gt;, loc16, W:SideState, bc#33)
    89:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#36)
    90:           &lt;!0:-&gt;	Phantom(@62, MustGen, Empty, bc#36)
    91:           &lt; 4:-&gt;	CreateArguments(@62, JS|UseAsOther, Arguments, R:GCState,BarrierState, W:GCState,BarrierState,Watchpoint_fire,SideState, bc#36)
    92:  skipped  &lt; 0:-&gt;	MovHint(@91&lt;Arguments&gt;, loc11, W:SideState, bc#36)
    93:  skipped  &lt; 0:-&gt;	MovHint(@91&lt;Arguments&gt;, loc10, W:SideState, bc#36)
   506:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#38)
    94:           &lt;!0:-&gt;	Flush(@65, MustGen, loc11(U*/FlushedJSValue), W:SideState, bc#38)  predicting Empty
    95:           &lt; 1:-&gt;	SetLocal(@91&lt;Arguments&gt;, loc11(CB*&lt;Arguments&gt;/FlushedJSValue), W:Variables(-12), bc#38)  predicting Arguments
    96:           &lt;!0:-&gt;	Flush(@68, MustGen, loc10(V*/FlushedJSValue), W:SideState, bc#38)  predicting Empty
    97:           &lt; 2:-&gt;	SetLocal(@91&lt;Arguments&gt;, loc10(EB*&lt;Arguments&gt;/FlushedJSValue), W:Variables(-11), bc#38)  predicting Arguments
    98:           &lt;!0:-&gt;	Phantom(@91&lt;Arguments&gt;, MustGen, Arguments, bc#38)
    99:  skipped  &lt; 0:-&gt;	MovHint(@91&lt;Arguments&gt;, loc19, W:SideState, bc#38)
   100:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#41)
   101:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Int32, $4 = Int32: 1, bc#41)
   102:  skipped  &lt; 0:-&gt;	MovHint(@101&lt;Int32&gt;, loc18, W:SideState, bc#41)
   103:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#44)
   104:           &lt;!1:-&gt;	Call(@75&lt;Function&gt;, @91&lt;Arguments&gt;, @101&lt;Int32&gt;, JS|MustGen|VarArgs|Clobbers|UseAsOther|CanExit, Array, R:World, W:World, bc#44)  predicting Array
   105:  skipped  &lt; 0:-&gt;	MovHint(@104&lt;Array&gt;, loc12, W:SideState, bc#44)
   507:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#53)
   106:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#53)
   131:           &lt;!0:-&gt;	FunctionReentryWatchpoint(MustGen, R:Watchpoint_fire, bc#75)
   133:  skipped  &lt; 0:-&gt;	MovHint(@70&lt;Object&gt;, loc17, W:SideState, bc#75)
   134:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#81)
   135:           &lt;!0:-&gt;	Phantom(@70&lt;Object&gt;, MustGen, bc#81)
   136:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7fa363867510, R:Watchpoint_fire, W:SideState, bc#81)
   137:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x11a7a44f0 (%AT:Function), bc#81)
   138:  skipped  &lt; 0:-&gt;	MovHint(@137&lt;Function&gt;, loc13, W:SideState, bc#81)
   139:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#89)
   140:           &lt; 1:-&gt;	GetLocal(@50, JS|UseAsOther, Final, loc2(P*&lt;Final&gt;/FlushedJSValue), R:Variables(-3), bc#89)  predicting Final
   141:  skipped  &lt; 0:-&gt;	MovHint(@140&lt;Final&gt;, loc16, W:SideState, bc#89)
   142:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#92)
   143:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, Array, bc#92)
   144:  skipped  &lt; 0:-&gt;	MovHint(@104&lt;Array&gt;, loc15, W:SideState, bc#92)
   145:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#95)
   146:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Bool, $1 = False, bc#95)
   147:  skipped  &lt; 0:-&gt;	MovHint(@146&lt;Boolean&gt;, loc14, W:SideState, bc#95)
   148:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#98)
   149:           &lt;!0:-&gt;	Call(@137&lt;Function&gt;, @70&lt;Object&gt;, @140&lt;Final&gt;, @104&lt;Array&gt;, @146&lt;Boolean&gt;, JS|MustGen|VarArgs|Clobbers|PureInt|CanExit, Final, R:World, W:World, bc#98)  predicting Final
   150:  skipped  &lt; 0:-&gt;	MovHint(@149&lt;Final&gt;, loc13, W:SideState, bc#98)
   505:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#107)
   151:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#107)
   152:           &lt; 1:-&gt;	GetLocal(@97, JS|UseAsOther, Arguments, loc10(EB*&lt;Arguments&gt;/FlushedJSValue), R:Variables(-11), bc#107)  predicting Arguments
   154:           &lt;!0:-&gt;	TearOffArguments(@152&lt;Arguments&gt;, @62, MustGen, W:Arguments_registers, bc#107)
   155:           &lt;!0:-&gt;	Flush(@53, MustGen, loc1(Q*&lt;Final&gt;/FlushedJSValue), W:SideState, bc#110)  predicting Final
   156:           &lt;!0:-&gt;	Flush(@50, MustGen, loc2(P*&lt;Final&gt;/FlushedJSValue), W:SideState, bc#110)  predicting Final
   157:           &lt;!0:-&gt;	Flush(@97, MustGen, loc10(EB*&lt;Arguments&gt;/FlushedJSValue), W:SideState, bc#110)  predicting Arguments
   158:           &lt;!0:-&gt;	Flush(@95, MustGen, loc11(CB*&lt;Arguments&gt;/FlushedJSValue), W:SideState, bc#110)  predicting Arguments
   159:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, Final, bc#110)
   160:  skipped  &lt; 0:-&gt;	ZombieHint(loc0, W:SideState, bc#110)
   161:           &lt;!0:-&gt;	Phantom(MustGen|CanExit, bc#110)
  &lt;-- mixin#AnlAZn:&lt;0x11a3dfc70, bc#91, Call, known callee: Cell: 0x11a7a4430 (%AT:Function), ID: 375, numArgs+this = 3, stack &lt; loc9&gt;
 162:           &lt;!0:-&gt;	Jump(MustGen, T:#6, W:SideState, bc#100)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc0:(Top, TOP, TOP, TOP) loc1:(Top, TOP, TOP, TOP) loc2:(Top, TOP, TOP, TOP) loc3:(Final, TOP, TOP, [%Cv:Object]) loc10:(Top, TOP, TOP, TOP) loc11:(Top, TOP, TOP, TOP) loc12:(Top, TOP, TOP, TOP) loc13:(Top, TOP, TOP, TOP) loc14:(Bool, False) loc15:(Top, TOP, TOP, TOP) loc16:(Top, TOP, TOP, TOP) loc17:(Otherobj, TOP, TOP, [%Be:JSActivation], Cell: 0x11a9ef670 (%Be:JSActivation), ID: 489) loc18:(Int32, Int32: 1) loc19:(Arguments, TOP, TOP, TOP)
  var links: arg1:@457 arg0:@47&lt;Final&gt; loc1:@53 loc2:@50 loc10:@152&lt;Arguments&gt; loc11:@95

Block #6 (bc#100): 
  Predecessors: #1 #2
  Dominated by: #0 #6
  Dominates: #6 #7 #8 #9 #10 #14 #15 #16
  Phi Nodes: @469&lt;3&gt;-&gt;(), @456&lt;2&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@456 arg0:@469
 163:           &lt; 9:-&gt;	GetLocal(@469, JS|UseAsOther, Final, arg0(C&lt;Final&gt;/FlushedCell), R:Variables(6), bc#100)  predicting Final
 164:  skipped  &lt; 0:-&gt;	MovHint(@163&lt;Final&gt;, loc0, W:SideState, bc#100)
 165:  skipped  &lt; 0:-&gt;	SetLocal(@163&lt;Final&gt;, loc0(FC~&lt;Final&gt;/FlushedJSValue), W:Variables(-1), bc#103)
 166:           &lt; 1:-&gt;	NewObject(JS|UseAsOther, Final, %DB:Object, R:GCState,BarrierState, W:GCState,BarrierState, bc#103)
 167:  skipped  &lt; 0:-&gt;	MovHint(@166&lt;Final&gt;, loc1, W:SideState, bc#103)
 168:  skipped  &lt; 0:-&gt;	SetLocal(@166&lt;Final&gt;, loc1(GC~&lt;Final&gt;/FlushedJSValue), W:Variables(-2), bc#107)
 490:           &lt;!0:-&gt;	StoreBarrier(Cell:@163&lt;Final&gt;, MustGen, R:BarrierState, W:BarrierState, bc#107)
 169:           &lt;!0:-&gt;	PutById(Cell:@163&lt;Final&gt;, @166&lt;Final&gt;, MustGen|Clobbers|CanExit, id4{_inFlightAttributes}, R:World, W:World, bc#107)
 500:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#116)
 170:  skipped  &lt; 0:-&gt;	MovHint(@163&lt;Final&gt;, loc3, W:SideState, bc#116)
 171:  skipped  &lt; 0:-&gt;	SetLocal(@163&lt;Final&gt;, loc3(HC~&lt;Final&gt;/FlushedJSValue), W:Variables(-4), bc#119)
 172:           &lt;!1:-&gt;	GetById(Cell:@163&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, Function, id5{send}, R:World, W:World, bc#119)  predicting Function
 173:  skipped  &lt; 0:-&gt;	MovHint(@172&lt;Function&gt;, loc0, W:SideState, bc#119)
 501:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#128)
 174:  skipped  &lt; 0:-&gt;	SetLocal(@172&lt;Function&gt;, loc0(IC~&lt;Function&gt;/FlushedJSValue), W:Variables(-1), bc#128)
 175:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Stringident, $2 = String (identifier): didCommit, ID: 5, bc#128)
 176:  skipped  &lt; 0:-&gt;	MovHint(@175&lt;StringIdent&gt;, loc2, W:SideState, bc#128)
 177:  skipped  &lt; 0:-&gt;	SetLocal(@175&lt;StringIdent&gt;, loc2(JC~&lt;StringIdent&gt;/FlushedJSValue), W:Variables(-3), bc#131)
 178:           &lt;!0:-&gt;	Call(@172&lt;Function&gt;, @163&lt;Final&gt;, @175&lt;StringIdent&gt;, JS|MustGen|VarArgs|Clobbers|PureInt|CanExit, Other, R:World, W:World, bc#131)  predicting Other
 179:  skipped  &lt; 0:-&gt;	MovHint(@178&lt;Other&gt;, loc0, W:SideState, bc#131)
 502:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#140)
 180:  skipped  &lt; 0:-&gt;	SetLocal(@178&lt;Other&gt;, loc0(KC~&lt;Other&gt;/FlushedJSValue), W:Variables(-1), bc#140)
 181:  skipped  &lt; 0:-&gt;	MovHint(@163&lt;Final&gt;, loc1, W:SideState, bc#140)
 182:  skipped  &lt; 0:-&gt;	SetLocal(@163&lt;Final&gt;, loc1(LC~&lt;Final&gt;/FlushedJSValue), W:Variables(-2), bc#143)
 183:           &lt;!1:-&gt;	GetById(Cell:@163&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, Function, id6{updateRecordArraysLater}, R:World, W:World, bc#143)  predicting Function
 184:  skipped  &lt; 0:-&gt;	MovHint(@183&lt;Function&gt;, loc0, W:SideState, bc#143)
 503:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#152)
 185:  skipped  &lt; 0:-&gt;	SetLocal(@183&lt;Function&gt;, loc0(MC~&lt;Function&gt;/FlushedJSValue), W:Variables(-1), bc#152)
 186:           &lt;!0:-&gt;	CheckFunction(Check:Cell:@183&lt;Function&gt;, @163&lt;Final&gt;, MustGen|CanExit, function(0x11b5d1df0, updateRecordArraysLater#ET1ozr/&lt;nogen&gt;:[0x11b578f70]), bc#152)
  --&gt; updateRecordArraysLater#ET1ozr:&lt;0x11b578f70, bc#152, Call, known callee: Cell: 0x11b5d1df0 (%AT:Function), ID: 375, numArgs+this = 1, stack &lt; loc7&gt;
   187:           &lt;!0:-&gt;	Phantom(FinalObject:@163&lt;Final&gt;, MustGen, Final, bc#1)
   188:  skipped  &lt; 0:-&gt;	MovHint(@163&lt;Final&gt;, loc1, W:SideState, bc#1)
   189:           &lt; 1:-&gt;	SetLocal(Cell:@163&lt;Final&gt;, loc1(NC&lt;Final&gt;/FlushedCell), W:Variables(-2), bc#4)  predicting Final
   190:           &lt;!1:-&gt;	GetById(Cell:@163&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, BoolOther, id11{_updatingRecordArraysLater}, R:World, W:World, bc#4)  predicting BoolOther
   191:  skipped  &lt; 0:-&gt;	MovHint(@190&lt;Misc&gt;, loc8, W:SideState, bc#4)
   504:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#13)
   192:  skipped  &lt; 0:-&gt;	SetLocal(@190&lt;Misc&gt;, loc8(OC~&lt;Misc&gt;/FlushedJSValue), W:Variables(-9), bc#13)
   193:           &lt;!0:-&gt;	Branch(@190&lt;Misc&gt;, MustGen|CanExit, T:#7, F:#8, W:SideState, bc#13)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc0:(Function, TOP, TOP, TOP, Cell: 0x11b5d1df0 (%AT:Function), ID: 375) loc1:(Final, TOP, TOP, TOP) loc2:(Stringident, TOP, TOP, [%C2:string], String (identifier): didCommit, ID: 5) loc3:(Final, TOP, TOP, TOP) loc8:(Top, TOP, TOP, TOP)
  var links: arg1:@456 arg0:@163&lt;Final&gt; loc0:@185 loc1:@189 loc2:@177 loc3:@171 loc8:@192

Block #7 (bc#152 --&gt; updateRecordArraysLater#ET1ozr:&lt;0x11b578f70&gt; bc#16): 
  Predecessors: #6
  Dominated by: #0 #6 #7
  Dominates: #7
  Phi Nodes: @452&lt;1&gt;-&gt;(), @453&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@452 arg0:@453
   194:  skipped  &lt; 0:-&gt;	JSConstant(JS|PureInt, Other, $3 = Undefined, bc#16)
   195:  skipped  &lt; 0:-&gt;	MovHint(@194&lt;Other&gt;, loc0, W:SideState, bc#16)
   196:  skipped  &lt; 0:-&gt;	SetLocal(@194&lt;Other&gt;, loc0(PC~&lt;Other&gt;/FlushedJSValue), W:Variables(-1), bc#16)
   197:           &lt;!0:-&gt;	Jump(MustGen, T:#14, W:SideState, bc#16)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc0:(Other, Undefined)
  var links: arg1:@452 arg0:@453 loc0:@196

Block #8 (bc#152 --&gt; updateRecordArraysLater#ET1ozr:&lt;0x11b578f70&gt; bc#18): 
  Predecessors: #6
  Dominated by: #0 #6 #8
  Dominates: #8 #9 #10
  Phi Nodes: @488&lt;1&gt;-&gt;(), @461&lt;2&gt;-&gt;(), @455&lt;2&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc1:(Final, TOP, TOP, TOP)
  var links: arg1:@461 arg0:@455 loc1:@488
   198:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Bool, $6 = True, bc#18)
   199:           &lt; 4:-&gt;	GetLocal(@488, JS|UseAsOther, Final, loc1(NC&lt;Final&gt;/FlushedCell), R:Variables(-2), bc#18)  predicting Final
   491:           &lt;!0:-&gt;	StoreBarrier(Cell:@199&lt;Final&gt;, MustGen, R:BarrierState, W:BarrierState, bc#18)
   200:           &lt;!0:-&gt;	PutById(Cell:@199&lt;Final&gt;, @198&lt;Boolean&gt;, MustGen|Clobbers|CanExit, id11{_updatingRecordArraysLater}, R:World, W:World, bc#18)
   498:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#27)
   201:           &lt; 8:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x117f2e870 (%Dj:Window), bc#27)
   202:  skipped  &lt; 0:-&gt;	MovHint(@201&lt;Object&gt;, loc14, W:SideState, bc#27)
   203:  skipped  &lt; 0:-&gt;	SetLocal(@201&lt;Object&gt;, loc14(RC~&lt;Object&gt;/FlushedJSValue), W:Variables(-15), bc#33)
   204:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@201&lt;Object&gt;, MustGen|CanExit, %Dj:Window, R:JSCell_structureID, bc#33)
   205:           &lt;!0:-&gt;	Phantom(@201&lt;Object&gt;, MustGen, bc#33)
   206:           &lt; 1:-&gt;	GetButterfly(Cell:@201&lt;Object&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#33)
   207:           &lt; 3:-&gt;	GetByOffset(@206&lt;Other&gt;, KnownCell:@201&lt;Object&gt;, JS|UseAsOther, Final, id2{Ember}, 152, R:NamedProperties(2), bc#33)  predicting Final
   208:  skipped  &lt; 0:-&gt;	MovHint(@207&lt;Final&gt;, loc15, W:SideState, bc#33)
   209:  skipped  &lt; 0:-&gt;	SetLocal(@207&lt;Final&gt;, loc15(SC~&lt;Final&gt;/FlushedJSValue), W:Variables(-16), bc#41)
   210:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@207&lt;Final&gt;, MustGen|CanExit, [%Cv:Object], R:JSCell_structureID, bc#41)
   211:           &lt; 1:-&gt;	GetButterfly(Cell:@207&lt;Final&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#41)
   212:           &lt; 3:-&gt;	GetByOffset(@211&lt;Other&gt;, KnownCell:@207&lt;Final&gt;, JS|UseAsOther, Function, id12{run}, 211, R:NamedProperties(12), bc#41)  predicting Function
   213:  skipped  &lt; 0:-&gt;	MovHint(@212&lt;Function&gt;, loc13, W:SideState, bc#41)
   214:  skipped  &lt; 0:-&gt;	SetLocal(@212&lt;Function&gt;, loc13(TC~&lt;Function&gt;/FlushedJSValue), W:Variables(-14), bc#50)
   215:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@212&lt;Function&gt;, MustGen|CanExit, [%BN:Function], R:JSCell_structureID, bc#50)
   216:           &lt;!0:-&gt;	Phantom(@212&lt;Function&gt;, MustGen, bc#50)
   217:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x11a7a5170 (%AT:Function), bc#50)
   218:  skipped  &lt; 0:-&gt;	MovHint(@217&lt;Function&gt;, loc8, W:SideState, bc#50)
   219:  skipped  &lt; 0:-&gt;	SetLocal(@217&lt;Function&gt;, loc8(UC~&lt;Function&gt;/FlushedJSValue), W:Variables(-9), bc#59)
   220:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Stringident, $7 = String (identifier): actions, ID: 5, bc#59)
   221:  skipped  &lt; 0:-&gt;	MovHint(@220&lt;StringIdent&gt;, loc12, W:SideState, bc#59)
   222:           &lt; 2:-&gt;	SetLocal(@220&lt;StringIdent&gt;, loc12(VC*&lt;StringIdent&gt;/FlushedJSValue), W:Variables(-13), bc#62)  predicting Stringident
   223:  skipped  &lt; 0:-&gt;	MovHint(@199&lt;Final&gt;, loc11, W:SideState, bc#62)
   224:           &lt; 2:-&gt;	SetLocal(@199&lt;Final&gt;, loc11(WC*&lt;Final&gt;/FlushedJSValue), W:Variables(-12), bc#65)  predicting Final
   225:           &lt;!1:-&gt;	GetById(Cell:@199&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, Function, id14{updateRecordArrays}, R:World, W:World, bc#65)  predicting Function
   226:  skipped  &lt; 0:-&gt;	MovHint(@225&lt;Function&gt;, loc10, W:SideState, bc#65)
   499:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#74)
   227:           &lt; 2:-&gt;	SetLocal(@225&lt;Function&gt;, loc10(XC*&lt;Function&gt;/FlushedJSValue), W:Variables(-11), bc#74)  predicting Function
   228:           &lt;!0:-&gt;	Phantom(@217&lt;Function&gt;, @212&lt;Function&gt;, MustGen, bc#74)
    --&gt; schedule#DonjJQ:&lt;0x11a965a70, bc#74, Call, known callee: Cell: 0x11a7a5170 (%AT:Function), ID: 375, numArgs+this = 4, stack &lt; loc19&gt;
     229:           &lt; 2:-&gt;	JSConstant(JS|UseAsOther, Other, $3 = Undefined, bc#0)
     230:  skipped  &lt; 0:-&gt;	MovHint(@229&lt;Other&gt;, loc20, W:SideState, bc#0)
     231:  skipped  &lt; 0:-&gt;	SetLocal(@229&lt;Other&gt;, loc20(YC*&lt;Other&gt;/FlushedJSValue), W:Variables(-21), bc#0)
     232:  skipped  &lt; 0:-&gt;	MovHint(@229&lt;Other&gt;, loc21, W:SideState, bc#0)
     233:  skipped  &lt; 0:-&gt;	SetLocal(@229&lt;Other&gt;, loc21(ZC*&lt;Other&gt;/FlushedJSValue), W:Variables(-22), bc#0)
     234:           &lt; 2:-&gt;	JSConstant(JS|UseAsOther, Empty, $5 = &lt;JSValue()&gt;, bc#1)
     235:  skipped  &lt; 0:-&gt;	MovHint(@234, loc21, W:SideState, bc#1)
     236:           &lt;!0:-&gt;	Phantom(@229&lt;Other&gt;, MustGen, bc#3)
     237:           &lt; 2:-&gt;	SetLocal(@234, loc21(AD*/FlushedJSValue), W:Variables(-22), bc#3)  predicting Empty
     238:  skipped  &lt; 0:-&gt;	MovHint(@234, loc20, W:SideState, bc#3)
     239:           &lt;!0:-&gt;	Phantom(@229&lt;Other&gt;, MustGen, bc#5)
     240:           &lt; 2:-&gt;	SetLocal(@234, loc20(BD*/FlushedJSValue), W:Variables(-21), bc#5)  predicting Empty
     241:           &lt;!0:-&gt;	FunctionReentryWatchpoint(MustGen, R:Watchpoint_fire, bc#6)
     242:           &lt; 2:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x11993d470 (%Be:JSActivation), bc#6)
     243:  skipped  &lt; 0:-&gt;	MovHint(@242&lt;Object&gt;, loc23, W:SideState, bc#6)
     244:  skipped  &lt; 0:-&gt;	SetLocal(@242&lt;Object&gt;, loc23(CD~&lt;Object&gt;/FlushedJSValue), W:Variables(-24), bc#12)
     245:           &lt;!0:-&gt;	Phantom(@242&lt;Object&gt;, MustGen, bc#12)
     246:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7fa36385e4a0, R:Watchpoint_fire, W:SideState, bc#12)
     247:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x11a7a5ab0 (%AT:Function), bc#12)
     248:  skipped  &lt; 0:-&gt;	MovHint(@247&lt;Function&gt;, loc22, W:SideState, bc#12)
     249:  skipped  &lt; 0:-&gt;	SetLocal(@247&lt;Function&gt;, loc22(DD~&lt;Function&gt;/FlushedJSValue), W:Variables(-23), bc#20)
     250:           &lt;!0:-&gt;	Phantom(@247&lt;Function&gt;, @242&lt;Object&gt;, MustGen, bc#20)
      --&gt; checkAutoRun#Di3nk8:&lt;0x11a966170, bc#20, Call, known callee: Cell: 0x11a7a5ab0 (%AT:Function), ID: 375, numArgs+this = 1, stack &lt; loc29&gt;
       251:  skipped  &lt; 0:-&gt;	MovHint(@201&lt;Object&gt;, loc30, W:SideState, bc#1)
       252:  skipped  &lt; 0:-&gt;	SetLocal(@201&lt;Object&gt;, loc30(ED~&lt;Object&gt;/FlushedJSValue), W:Variables(-31), bc#7)
       253:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@201&lt;Object&gt;, MustGen|CanExit, %Dj:Window, R:JSCell_structureID, bc#7)
       254:           &lt;!0:-&gt;	Phantom(@201&lt;Object&gt;, MustGen, bc#7)
       255:           &lt; 1:-&gt;	GetButterfly(Cell:@201&lt;Object&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#7)
       256:           &lt; 3:-&gt;	GetByOffset(@255&lt;Other&gt;, KnownCell:@201&lt;Object&gt;, JS|UseAsOther, Final, id2{Ember}, 152, R:NamedProperties(2), bc#7)  predicting Final
       257:  skipped  &lt; 0:-&gt;	MovHint(@256&lt;Final&gt;, loc31, W:SideState, bc#7)
       258:  skipped  &lt; 0:-&gt;	SetLocal(@256&lt;Final&gt;, loc31(FD~&lt;Final&gt;/FlushedJSValue), W:Variables(-32), bc#15)
       259:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@256&lt;Final&gt;, MustGen|CanExit, [%Cv:Object], R:JSCell_structureID, bc#15)
       260:           &lt; 1:-&gt;	GetButterfly(Cell:@256&lt;Final&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#15)
       261:           &lt; 3:-&gt;	GetByOffset(@260&lt;Other&gt;, KnownCell:@256&lt;Final&gt;, JS|UseAsOther, Function, id12{run}, 211, R:NamedProperties(12), bc#15)  predicting Function
       262:  skipped  &lt; 0:-&gt;	MovHint(@261&lt;Function&gt;, loc30, W:SideState, bc#15)
       263:  skipped  &lt; 0:-&gt;	SetLocal(@261&lt;Function&gt;, loc30(GD~&lt;Function&gt;/FlushedJSValue), W:Variables(-31), bc#24)
       264:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@261&lt;Function&gt;, MustGen|CanExit, [%BN:Function], R:JSCell_structureID, bc#24)
       265:           &lt; 1:-&gt;	GetButterfly(Cell:@261&lt;Function&gt;, Storage|UseAsOther, Other, R:JSObject_butterfly, bc#24)
       266:           &lt; 1:-&gt;	GetByOffset(@265&lt;Other&gt;, KnownCell:@261&lt;Function&gt;, JS|UseAsOther, Final, id18{currentRunLoop}, 102, R:NamedProperties(18), bc#24)  predicting Final
       267:  skipped  &lt; 0:-&gt;	MovHint(@266&lt;Final&gt;, loc30, W:SideState, bc#24)
       268:  skipped  &lt; 0:-&gt;	SetLocal(@266&lt;Final&gt;, loc30(HD~&lt;Final&gt;/FlushedJSValue), W:Variables(-31), bc#33)
       269:           &lt;!0:-&gt;	Branch(Check:ObjectOrOther:@266&lt;Final&gt;, MustGen|CanExit, T:#10, F:#9, W:SideState, bc#33)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc1:(Final, TOP, TOP, TOP) loc8:(Function, TOP, TOP, TOP, Cell: 0x11a7a5170 (%AT:Function), ID: 375) loc10:(Top, TOP, TOP, TOP) loc11:(Final, TOP, TOP, TOP) loc12:(Stringident, TOP, TOP, [%C2:string], String (identifier): actions, ID: 5) loc13:(Function, TOP, TOP, [%BN:Function]) loc14:(Otherobj, NonArray, [%Dj:Window], [%Dj:Window], Cell: 0x117f2e870 (%Dj:Window), ID: 10436) loc15:(Final, TOP, TOP, [%Cv:Object]) loc20:(Empty) loc21:(Empty) loc22:(Function, TOP, TOP, TOP, Cell: 0x11a7a5ab0 (%AT:Function), ID: 375) loc23:(Otherobj, TOP, TOP, [%Be:JSActivation], Cell: 0x11993d470 (%Be:JSActivation), ID: 489) loc30:(ObjectOther, TOP, TOP, TOP) loc31:(Final, NonArray, [%Cv:Object], [%Cv:Object])
  var links: arg1:@461 arg0:@455 loc1:@199&lt;Final&gt; loc8:@219 loc10:@227 loc11:@224 loc12:@222 loc13:@214 loc14:@203 loc15:@209 loc20:@240 loc21:@237 loc22:@249 loc23:@244 loc30:@268 loc31:@258

Block #9 (bc#152 --&gt; updateRecordArraysLater#ET1ozr:&lt;0x11b578f70&gt; bc#74 --&gt; schedule#DonjJQ:&lt;0x11a965a70&gt; bc#20 --&gt; checkAutoRun#Di3nk8:&lt;0x11a966170&gt; bc#36): 
  Predecessors: #8
  Dominated by: #0 #6 #8 #9
  Dominates: #9
  Phi Nodes: @475&lt;1&gt;-&gt;(), @444&lt;1&gt;-&gt;(), @481&lt;1&gt;-&gt;(), @466&lt;1&gt;-&gt;(), @450&lt;1&gt;-&gt;(), @474&lt;1&gt;-&gt;(), @454&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc10:(Top, TOP, TOP, TOP) loc11:(Final, TOP, TOP, TOP) loc12:(Stringident, TOP, TOP, [%C2:string], String (identifier): actions, ID: 5) loc20:(Empty) loc21:(Empty)
  var links: arg1:@474 arg0:@454 loc10:@481 loc11:@466 loc12:@450 loc20:@444 loc21:@475
       270:           &lt; 8:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x117f2e870 (%Dj:Window), bc#36)
       271:  skipped  &lt; 0:-&gt;	MovHint(@270&lt;Object&gt;, loc33, W:SideState, bc#36)
       272:  skipped  &lt; 0:-&gt;	SetLocal(@270&lt;Object&gt;, loc33(ID~&lt;Object&gt;/FlushedJSValue), W:Variables(-34), bc#42)
       273:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#42)
       274:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@270&lt;Object&gt;, MustGen|CanExit, [%AW:Window], R:JSCell_structureID, bc#42)
       275:           &lt;!0:-&gt;	Phantom(@270&lt;Object&gt;, MustGen|CanExit, bc#42)
       276:           &lt; 1:-&gt;	GetButterfly(Check:Cell:@270&lt;Object&gt;, Storage|UseAsOther|CanExit, Other, R:JSObject_butterfly, bc#42)
       277:           &lt; 2:-&gt;	GetByOffset(@276&lt;Other&gt;, Check:KnownCell:@270&lt;Object&gt;, JS|UseAsOther|CanExit, id2{Ember}, 152, R:NamedProperties(2), bc#42)  predicting None
       278:  skipped  &lt; 0:-&gt;	MovHint(@277, loc33, W:SideState, bc#42)
       279:  skipped  &lt; 0:-&gt;	SetLocal(@277, CanExit, loc33(JD~/FlushedJSValue), W:Variables(-34), bc#50)
       280:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#50)
       281:           &lt;!1:-&gt;	GetById(@277, JS|MustGen|Clobbers|UseAsOther|CanExit, id19{assert}, R:World, W:World, bc#50)  predicting None
       282:  skipped  &lt; 0:-&gt;	MovHint(@281, loc30, W:SideState, bc#50)
       495:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#59)
       283:  skipped  &lt; 0:-&gt;	SetLocal(@281, CanExit, loc30(KD~/FlushedJSValue), W:Variables(-31), bc#59)
       284:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Stringident, $8 = String (identifier): You have turned on testing mode, which disabled the run-loop&apos;s autorun. You will need to wrap any code with asynchronous side-effects in an Ember.run, ID: 5, bc#59)
       285:  skipped  &lt; 0:-&gt;	MovHint(@284&lt;StringIdent&gt;, loc32, W:SideState, bc#59)
       286:  skipped  &lt; 0:-&gt;	SetLocal(@284&lt;StringIdent&gt;, CanExit, loc32(LD~&lt;StringIdent&gt;/FlushedJSValue), W:Variables(-33), bc#62)
       287:  skipped  &lt; 0:-&gt;	MovHint(@270&lt;Object&gt;, loc34, W:SideState, bc#62)
       288:  skipped  &lt; 0:-&gt;	SetLocal(@270&lt;Object&gt;, CanExit, loc34(MD~&lt;Object&gt;/FlushedJSValue), W:Variables(-35), bc#68)
       289:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#68)
       290:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@270&lt;Object&gt;, MustGen|CanExit, [%AW:Window], R:JSCell_structureID, bc#68)
       291:           &lt;!0:-&gt;	Phantom(@270&lt;Object&gt;, MustGen|CanExit, bc#68)
       292:           &lt; 1:-&gt;	GetButterfly(Check:Cell:@270&lt;Object&gt;, Storage|UseAsOther|CanExit, Other, R:JSObject_butterfly, bc#68)
       293:           &lt; 1:-&gt;	GetByOffset(@292&lt;Other&gt;, Check:KnownCell:@270&lt;Object&gt;, JS|UseAsOther|CanExit, id2{Ember}, 152, R:NamedProperties(2), bc#68)  predicting None
       294:  skipped  &lt; 0:-&gt;	MovHint(@293, loc35, W:SideState, bc#68)
       295:  skipped  &lt; 0:-&gt;	SetLocal(@293, CanExit, loc35(ND~/FlushedJSValue), W:Variables(-36), bc#76)
       296:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#76)
       297:           &lt;!1:-&gt;	GetById(@293, JS|MustGen|Clobbers|UseAsOther|CanExit, id20{testing}, R:World, W:World, bc#76)  predicting None
       298:  skipped  &lt; 0:-&gt;	MovHint(@297, loc34, W:SideState, bc#76)
       496:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#85)
       299:  skipped  &lt; 0:-&gt;	SetLocal(@297, CanExit, loc34(OD~/FlushedJSValue), W:Variables(-35), bc#85)
       300:           &lt; 1:-&gt;	LogicalNot(@297, Boolean|UseAsOther|CanExit, Bool, bc#85)
       301:  skipped  &lt; 0:-&gt;	MovHint(@300&lt;Boolean&gt;, loc31, W:SideState, bc#85)
       302:  skipped  &lt; 0:-&gt;	SetLocal(@300&lt;Boolean&gt;, CanExit, loc31(PD~&lt;Boolean&gt;/FlushedJSValue), W:Variables(-32), bc#88)
       303:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#88)
       304:           &lt;!0:-&gt;	Call(@281, @277, @284&lt;StringIdent&gt;, @300&lt;Boolean&gt;, JS|MustGen|VarArgs|Clobbers|PureInt|CanExit, R:World, W:World, bc#88)  predicting None
       305:  skipped  &lt; 0:-&gt;	MovHint(@304, loc30, W:SideState, bc#88)
       497:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#97)
       306:  skipped  &lt; 0:-&gt;	SetLocal(@304, CanExit, loc30(QD~/FlushedJSValue), W:Variables(-31), bc#97)
       307:           &lt;!0:-&gt;	Jump(MustGen|CanExit, T:#10, W:SideState, bc#97)
  vars after: 
  var links: arg1:@474 arg0:@454 loc10:@481 loc11:@466 loc12:@450 loc20:@444 loc21:@475 loc30:@306 loc31:@302 loc32:@286 loc33:@279 loc34:@299 loc35:@295

Block #10 (bc#152 --&gt; updateRecordArraysLater#ET1ozr:&lt;0x11b578f70&gt; bc#74 --&gt; schedule#DonjJQ:&lt;0x11a965a70&gt; bc#20 --&gt; checkAutoRun#Di3nk8:&lt;0x11a966170&gt; bc#97): 
  Predecessors: #8 #9
  Dominated by: #0 #6 #8 #10
  Dominates: #10
  Phi Nodes: @476&lt;2&gt;-&gt;(), @484&lt;2&gt;-&gt;(), @473&lt;2&gt;-&gt;(), @463&lt;2&gt;-&gt;(), @471&lt;1&gt;-&gt;(), @451&lt;1&gt;-&gt;(), @459&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc10:(Top, TOP, TOP, TOP) loc11:(Final, TOP, TOP, TOP) loc12:(Stringident, TOP, TOP, [%C2:string], String (identifier): actions, ID: 5) loc20:(Empty) loc21:(Empty)
  var links: arg1:@451 arg0:@459 loc10:@473 loc11:@484 loc12:@365 loc20:@463 loc21:@401
       308:  skipped  &lt; 0:-&gt;	JSConstant(JS|PureInt, Other, $3 = Undefined, bc#97)
       309:  skipped  &lt; 0:-&gt;	MovHint(@308&lt;Other&gt;, loc22, W:SideState, bc#97)
       310:  skipped  &lt; 0:-&gt;	SetLocal(@308&lt;Other&gt;, loc22(RD~&lt;Other&gt;/FlushedJSValue), W:Variables(-23), bc#97)
      &lt;-- checkAutoRun#Di3nk8:&lt;0x11a966170, bc#20, Call, known callee: Cell: 0x11a7a5ab0 (%AT:Function), ID: 375, numArgs+this = 1, stack &lt; loc29&gt;
     311:           &lt;!0:-&gt;	FunctionReentryWatchpoint(MustGen, R:Watchpoint_fire, bc#29)
     312:           &lt; 2:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x11993d470 (%Be:JSActivation), bc#29)
     313:  skipped  &lt; 0:-&gt;	MovHint(@312&lt;Object&gt;, loc22, W:SideState, bc#29)
     314:  skipped  &lt; 0:-&gt;	SetLocal(@312&lt;Object&gt;, loc22(SD~&lt;Object&gt;/FlushedJSValue), W:Variables(-23), bc#35)
     315:           &lt;!0:-&gt;	Phantom(@312&lt;Object&gt;, MustGen, bc#35)
     316:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7fa36385cf00, R:Watchpoint_fire, W:SideState, bc#35)
     317:           &lt; 3:-&gt;	WeakJSConstant(JS|UseAsOther, Final, 0x11993d1b0 (%DU:Object), bc#35)
     318:  skipped  &lt; 0:-&gt;	MovHint(@317&lt;Final&gt;, loc23, W:SideState, bc#35)
     319:  skipped  &lt; 0:-&gt;	SetLocal(@317&lt;Final&gt;, loc23(TD~&lt;Final&gt;/FlushedJSValue), W:Variables(-24), bc#43)
     320:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@317&lt;Final&gt;, MustGen|CanExit, %DU:Object, R:JSCell_structureID, bc#43)
     321:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Final, 0x11997ec70 (%DG:Object), bc#43)
     322:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@321&lt;Final&gt;, MustGen|CanExit, %DG:Object, R:JSCell_structureID, bc#43)
     323:           &lt;!0:-&gt;	Phantom(@317&lt;Final&gt;, MustGen, bc#43)
     324:           &lt; 3:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x11a7a54b0 (%AT:Function), bc#43)
     325:  skipped  &lt; 0:-&gt;	MovHint(@324&lt;Function&gt;, loc22, W:SideState, bc#43)
     326:  skipped  &lt; 0:-&gt;	SetLocal(@324&lt;Function&gt;, loc22(UD~&lt;Function&gt;/FlushedJSValue), W:Variables(-23), bc#52)
     327:           &lt;!0:-&gt;	CheckStructure(Cell:@324&lt;Function&gt;, MustGen|CanExit, [%AT:Function], R:JSCell_structureID, bc#52)
     328:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x1198af890 (%AY:Function), bc#52)
     329:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@328&lt;Object&gt;, MustGen|CanExit, %AY:Function, R:JSCell_structureID, bc#52)
     330:           &lt;!0:-&gt;	Phantom(@324&lt;Function&gt;, MustGen, bc#52)
     331:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x1198d9470 (%Bj:Function), bc#52)
     332:  skipped  &lt; 0:-&gt;	MovHint(@331&lt;Function&gt;, loc24, W:SideState, bc#52)
     333:  skipped  &lt; 0:-&gt;	SetLocal(@331&lt;Function&gt;, loc24(VD~&lt;Function&gt;/FlushedJSValue), W:Variables(-25), bc#61)
     334:           &lt;!0:-&gt;	Phantom(Cell:@331&lt;Function&gt;, MustGen, bc#61)
     337:  skipped  &lt; 0:-&gt;	MovHint(@324&lt;Function&gt;, loc25, W:SideState, bc#65)
     338:  skipped  &lt; 0:-&gt;	SetLocal(@324&lt;Function&gt;, loc25(XD~&lt;Function&gt;/FlushedJSValue), W:Variables(-26), bc#68)
     339:           &lt;!0:-&gt;	FunctionReentryWatchpoint(MustGen, R:Watchpoint_fire, bc#68)
     341:  skipped  &lt; 0:-&gt;	MovHint(@312&lt;Object&gt;, loc26, W:SideState, bc#68)
     342:  skipped  &lt; 0:-&gt;	SetLocal(@312&lt;Object&gt;, loc26(YD~&lt;Object&gt;/FlushedJSValue), W:Variables(-27), bc#74)
     343:           &lt;!0:-&gt;	Phantom(@312&lt;Object&gt;, MustGen, bc#74)
     344:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7fa36385cf00, R:Watchpoint_fire, W:SideState, bc#74)
     346:  skipped  &lt; 0:-&gt;	MovHint(@317&lt;Final&gt;, loc27, W:SideState, bc#74)
     347:  skipped  &lt; 0:-&gt;	SetLocal(@317&lt;Final&gt;, loc27(ZD~&lt;Final&gt;/FlushedJSValue), W:Variables(-28), bc#82)
     349:  skipped  &lt; 0:-&gt;	MovHint(@317&lt;Final&gt;, loc31, W:SideState, bc#82)
     350:  skipped  &lt; 0:-&gt;	SetLocal(@317&lt;Final&gt;, loc31(AE~&lt;Final&gt;/FlushedJSValue), W:Variables(-32), bc#82)
     365:           &lt;!0:-&gt;	PhantomLocal(@476, MustGen, loc12(VC*&lt;StringIdent&gt;/FlushedJSValue), W:SideState, bc#82)  predicting Stringident
     351:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Stringident, $7 = String (identifier): actions, ID: 5, bc#82)
     352:  skipped  &lt; 0:-&gt;	MovHint(@351&lt;StringIdent&gt;, loc30, W:SideState, bc#82)
     353:  skipped  &lt; 0:-&gt;	SetLocal(@351&lt;StringIdent&gt;, loc30(CE~&lt;StringIdent&gt;/FlushedJSValue), W:Variables(-31), bc#82)
     354:           &lt; 1:-&gt;	GetLocal(@484, JS|UseAsOther, Final, loc11(WC*&lt;Final&gt;/FlushedJSValue), R:Variables(-12), bc#82)  predicting Final
     355:  skipped  &lt; 0:-&gt;	MovHint(@354&lt;Final&gt;, loc29, W:SideState, bc#82)
     356:  skipped  &lt; 0:-&gt;	SetLocal(@354&lt;Final&gt;, loc29(EE~&lt;Final&gt;/FlushedJSValue), W:Variables(-30), bc#82)
     357:           &lt; 1:-&gt;	GetLocal(@473, JS|UseAsOther, Function, loc10(XC*&lt;Function&gt;/FlushedJSValue), R:Variables(-11), bc#82)  predicting Function
     358:  skipped  &lt; 0:-&gt;	MovHint(@357&lt;Function&gt;, loc28, W:SideState, bc#82)
     359:  skipped  &lt; 0:-&gt;	SetLocal(@357&lt;Function&gt;, loc28(GE~&lt;Function&gt;/FlushedJSValue), W:Variables(-29), bc#82)
     360:           &lt;!0:-&gt;	Call(@324&lt;Function&gt;, @317&lt;Final&gt;, @351&lt;StringIdent&gt;, @354&lt;Final&gt;, @357&lt;Function&gt;, JS|MustGen|VarArgs|Clobbers|PureInt|CanExit, Final, R:World, W:World, bc#82)  predicting Final
     361:  skipped  &lt; 0:-&gt;	MovHint(@360&lt;Final&gt;, loc23, W:SideState, bc#82)
     494:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#91)
     362:  skipped  &lt; 0:-&gt;	SetLocal(@360&lt;Final&gt;, loc23(HE~&lt;Final&gt;/FlushedJSValue), W:Variables(-24), bc#91)
     394:           &lt; 1:-&gt;	GetLocal(@463, JS|UseAsOther, Empty, loc20(BD*/FlushedJSValue), R:Variables(-21), bc#124)  predicting Empty
     395:  skipped  &lt; 0:-&gt;	JSConstant(JS|UseAsOther, Empty, $5 = &lt;JSValue()&gt;, bc#124)
     396:           &lt;!0:-&gt;	Phantom(@394, MustGen, bc#124)
     397:           &lt;!0:-&gt;	Flush(@473, MustGen, loc10(XC*&lt;Function&gt;/FlushedJSValue), W:SideState, bc#127)  predicting Function
     398:           &lt;!0:-&gt;	Flush(@484, MustGen, loc11(WC*&lt;Final&gt;/FlushedJSValue), W:SideState, bc#127)  predicting Final
     399:           &lt;!0:-&gt;	Flush(@476, MustGen, loc12(VC*&lt;StringIdent&gt;/FlushedJSValue), W:SideState, bc#127)  predicting Stringident
     400:           &lt;!0:-&gt;	Flush(@463, MustGen, loc20(BD*/FlushedJSValue), W:SideState, bc#127)  predicting Empty
     401:           &lt;!0:-&gt;	Flush(@471, MustGen, loc21(AD*/FlushedJSValue), W:SideState, bc#127)  predicting Empty
     403:  skipped  &lt; 0:-&gt;	MovHint(@308&lt;Other&gt;, loc8, W:SideState, bc#127)
     404:  skipped  &lt; 0:-&gt;	SetLocal(@308&lt;Other&gt;, loc8(YE~&lt;Other&gt;/FlushedJSValue), W:Variables(-9), bc#127)
    &lt;-- schedule#DonjJQ:&lt;0x11a965a70, bc#74, Call, known callee: Cell: 0x11a7a5170 (%AT:Function), ID: 375, numArgs+this = 4, stack &lt; loc19&gt;
   405:  skipped  &lt; 0:-&gt;	MovHint(@308&lt;Other&gt;, loc0, W:SideState, bc#83)
   406:  skipped  &lt; 0:-&gt;	SetLocal(@308&lt;Other&gt;, loc0(ZE~&lt;Other&gt;/FlushedJSValue), W:Variables(-1), bc#83)
   407:           &lt;!0:-&gt;	Jump(MustGen, T:#14, W:SideState, bc#83)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP) loc0:(Other, Undefined) loc8:(Other, Undefined) loc10:(Top, TOP, TOP, TOP) loc11:(Top, TOP, TOP, TOP) loc12:(Top, TOP, TOP, TOP) loc20:(TopEmpty, TOP, TOP, TOP) loc21:(TopEmpty, TOP, TOP, TOP) loc22:(Function, TOP, TOP, TOP, Cell: 0x11a7a54b0 (%AT:Function), ID: 375) loc23:(Top, TOP, TOP, TOP) loc24:(Function, TOP, TOP, [%Bj:Function], Cell: 0x1198d9470 (%Bj:Function), ID: 380) loc25:(Function, TOP, TOP, TOP, Cell: 0x11a7a54b0 (%AT:Function), ID: 375) loc26:(Otherobj, TOP, TOP, [%Be:JSActivation], Cell: 0x11993d470 (%Be:JSActivation), ID: 489) loc27:(Final, TOP, TOP, [%DU:Object], Cell: 0x11993d1b0 (%DU:Object), ID: 7337) loc28:(Top, TOP, TOP, TOP) loc29:(Final, TOP, TOP, TOP) loc30:(Stringident, TOP, TOP, [%C2:string], String (identifier): actions, ID: 5) loc31:(Final, TOP, TOP, [%DU:Object], Cell: 0x11993d1b0 (%DU:Object), ID: 7337)
  var links: arg1:@451 arg0:@459 loc0:@406 loc8:@404 loc10:@357&lt;Function&gt; loc11:@354&lt;Final&gt; loc12:@365 loc20:@394 loc21:@401 loc22:@326 loc23:@362 loc24:@333 loc25:@338 loc26:@342 loc27:@347 loc28:@359 loc29:@356 loc30:@353 loc31:@350

Block #14 (bc#161): 
  Predecessors: #7 #10
  Dominated by: #0 #6 #14
  Dominates: #14 #15 #16
  Phi Nodes: @443&lt;3&gt;-&gt;(), @477&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@443 arg0:@477
  &lt;-- updateRecordArraysLater#ET1ozr:&lt;0x11b578f70, bc#152, Call, known callee: Cell: 0x11b5d1df0 (%AT:Function), ID: 375, numArgs+this = 1, stack &lt; loc7&gt;
 408:           &lt; 1:-&gt;	GetLocal(@443, JS|UseAsOther, Other, arg1(B~&lt;Other&gt;/FlushedJSValue), R:Variables(7), bc#161)  predicting Other
 409:           &lt;!0:-&gt;	Branch(ObjectOrOther:@408&lt;Other&gt;, MustGen|CanExit, T:#16, F:#15, W:SideState, bc#161)
  vars after: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@408&lt;Other&gt; arg0:@477

Block #15 (bc#164): 
  Predecessors: #14
  Dominated by: #0 #6 #14 #15
  Dominates: #15
  Phi Nodes: @445&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP)
  var links: arg1:@410
 410:           &lt;!0:-&gt;	Flush(@445, MustGen, arg1(B~&lt;Other&gt;/FlushedJSValue), W:SideState, bc#164)  predicting Other
 411:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Other, $3 = Undefined, bc#164)
 412:           &lt;!0:-&gt;	Return(@411&lt;Other&gt;, MustGen, W:SideState, bc#164)
  vars after: 
  var links: arg1:@410

Block #16 (bc#166): 
  Predecessors: #14
  Dominated by: #0 #6 #14 #16
  Dominates: #16
  Phi Nodes: @446&lt;1&gt;-&gt;(), @447&lt;1&gt;-&gt;()
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@427 arg0:@446
 413:           &lt; 2:-&gt;	GetLocal(@446, JS|UseAsOther, Final, arg0(C&lt;Final&gt;/FlushedCell), R:Variables(6), bc#166)  predicting Final
 414:  skipped  &lt; 0:-&gt;	MovHint(@413&lt;Final&gt;, loc3, W:SideState, bc#166)
 415:  skipped  &lt; 0:-&gt;	SetLocal(@413&lt;Final&gt;, loc3(DF~&lt;Final&gt;/FlushedJSValue), W:Variables(-4), bc#169)
 416:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#169)
 417:           &lt;!1:-&gt;	GetById(Check:Cell:@413&lt;Final&gt;, JS|MustGen|Clobbers|UseAsOther|CanExit, id7{suspendRelationshipObservers}, R:World, W:World, bc#169)  predicting None
 418:  skipped  &lt; 0:-&gt;	MovHint(@417, loc0, W:SideState, bc#169)
 492:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#178)
 419:  skipped  &lt; 0:-&gt;	SetLocal(@417, CanExit, loc0(EF~/FlushedJSValue), W:Variables(-1), bc#178)
 420:           &lt; 1:-&gt;	NewFunctionExpression(JS|UseAsOther|CanExit, Function, #&lt;nogen&gt;/&lt;nogen&gt;:[0x117be0a70], R:GCState,BarrierState, W:GCState,BarrierState, bc#178)
 421:  skipped  &lt; 0:-&gt;	MovHint(@420&lt;Function&gt;, loc2, W:SideState, bc#178)
 422:  skipped  &lt; 0:-&gt;	SetLocal(@420&lt;Function&gt;, CanExit, loc2(FF~&lt;Function&gt;/FlushedJSValue), W:Variables(-3), bc#181)
 423:           &lt;!0:-&gt;	ForceOSRExit(MustGen|CanExit, W:SideState, bc#181)
 424:           &lt;!0:-&gt;	Call(@417, @413&lt;Final&gt;, @420&lt;Function&gt;, JS|MustGen|VarArgs|Clobbers|PureInt|CanExit, R:World, W:World, bc#181)  predicting None
 425:  skipped  &lt; 0:-&gt;	MovHint(@424, loc0, W:SideState, bc#181)
 493:           &lt;!0:-&gt;	InvalidationPoint(MustGen|CanExit, W:SideState, bc#190)
 426:  skipped  &lt; 0:-&gt;	SetLocal(@424, CanExit, loc0(GF~/FlushedJSValue), W:Variables(-1), bc#190)
 427:           &lt;!0:-&gt;	Flush(@447, MustGen, arg1(B~&lt;Other&gt;/FlushedJSValue), W:SideState, bc#190)  predicting Other
 428:           &lt; 1:-&gt;	JSConstant(JS|UseAsOther, Other, $3 = Undefined, bc#190)
 429:           &lt;!0:-&gt;	Return(@428&lt;Other&gt;, MustGen|CanExit, W:SideState, bc#190)
  vars after: 
  var links: arg1:@427 arg0:@413&lt;Final&gt; loc0:@426 loc2:@422 loc3:@415

Structures:
    %AT:Function     = 0x117ee0d70:[Function, {}, NonArray, Proto:0x1198af890]
    %AW:Window       = 0x11b823370:[Window, {Object:100=&gt;0x1198af130, Function:101=&gt;0x1198af110, Array:102=&gt;0x1198af0f0, RegExp:103=&gt;0x11990fc70, EvalError:104=&gt;0x1198aefb0, RangeError:105=&gt;0x1198aef90, ReferenceError:106=&gt;0x1198aef70, SyntaxError:107=&gt;0x1198aef50, TypeError:108=&gt;0x1198aef30, URIError:109=&gt;0x1198aef10, Promise:110=&gt;0x1198aeef0, Set:111=&gt;0x1198af0d0, Map:112=&gt;0x1198af0b0, Date:113=&gt;0x1198af090, String:114=&gt;0x1198af070, Boolean:115=&gt;0x1198af050, Number:116=&gt;0x1198af030, Error:117=&gt;0x1198af010, ArrayBuffer:118=&gt;0x1198aeff0, WeakMap:119=&gt;0x1198aefd0, ArrayIterator:120, ArgumentsIterator:121, MapIterator:122, SetIterator:123, eval:124=&gt;0x1198d6cf0, JSON:125, Math:126, DataView:127=&gt;0x1198aedb0, Float64Array:128=&gt;0x1198aedd0, Float32Array:129=&gt;0x1198aedf0, Uint32Array:130=&gt;0x1198aee10, Int32Array:131=&gt;0x1198aee90, Uint16Array:132=&gt;0x1198aee30, Int16Array:133=&gt;0x1198aeeb0, Uint8ClampedArray:134=&gt;0x1198aee50, Uint8Array:135=&gt;0x1198aee70, Int8Array:136=&gt;0x1198aeed0, console:137, Name:138=&gt;0x1198aed90, testRunner:139, GCController:140, accessibilityController:141, internals:142, appleScriptController:143, eventSender:144, navigationController:145, objCController:146, objCPlugin:147, objCPluginFunction:148, textInputController:149, $:150=&gt;0x1198d51f0, jQuery:151=&gt;0x1198d51f0, Ember:152, Em:153, MetamorphENV:154, DS:155, Todos:156, parseFloat:157=&gt;0x11b658a70}, NonArray, Proto:0x117f1f8b0]
    %AY:Function     = 0x117bd8470:[Function, {name:100, length:101, toString:102=&gt;0x1198d94b0, apply:103=&gt;0x1198d9470, call:104=&gt;0x1198d9430, bind:105=&gt;0x1198d93f0, constructor:106=&gt;0x1198af110, property:107=&gt;0x11a9fe5b0, observes:108=&gt;0x11a9fe570, observesImmediately:109=&gt;0x11a9fe530, observesBefore:110=&gt;0x11a9fe4f0, on:111=&gt;0x11a9fe4b0}, NonArray, Proto:0x117f1f8a0]
    %BN:Function     = 0x11a7e62f0:[Function, {join:100=&gt;0x11a7a5230, backburner:101, currentRunLoop:102, queues:103, begin:104=&gt;0x11a7a51f0, end:105=&gt;0x11a7a51b0, schedule:106=&gt;0x11a7a5170, hasScheduledTimers:107=&gt;0x11a7a5130, cancelTimers:108=&gt;0x11a7a50f0, sync:109=&gt;0x11a7a50b0, later:110=&gt;0x11a7a5070, once:111=&gt;0x11a7a5030, scheduleOnce:112=&gt;0x11a7a4ff0, next:113=&gt;0x11a7a4fb0, cancel:114=&gt;0x11a7a4f70, debounce:115=&gt;0x11a7a4f30, throttle:116=&gt;0x11a7a4ef0}, NonArray, Proto:0x1198af890]
    %Be:JSActivation = 0x119b4d170:[JSActivation, {}, NonArray]
    %Bj:Function     = 0x117ee0af0:[Function, {name:100, length:101}, NonArray, Proto:0x1198af890]
    %C2:string       = 0x117eefd70:[string, {}, NonArray]
    %Cv:Object       = 0x11b701ef0:[Object, {ENV:0, assert:1=&gt;0x11a7a9b30, warn:100=&gt;0x11a7a9af0, debug:101=&gt;0x11a7a9ab0, deprecate:102=&gt;0x11a7a9a70, deprecateFunc:103=&gt;0x11a7a9a30, imports:104, exports:105, lookup:106, isNamespace:107, toString:108=&gt;0x11a7a98b0, VERSION:109, config:110, FEATURES:111, EXTEND_PROTOTYPES:112, LOG_STACKTRACE_ON_DEPRECATION:113, SHIM_ES5:114, LOG_VERSION:115, K:116=&gt;0x11a7a9830, uuid:117, merge:118=&gt;0x11a7a97f0, isNone:119=&gt;0x11a7a97b0, none:120=&gt;0x11a7a9770, isEmpty:121=&gt;0x11a7a9730, empty:122=&gt;0x11a7a96f0, platform:123, create:124=&gt;0x11a7a9670, ArrayPolyfills:125, Error:126=&gt;0x11a7a93b0, onerror:127, handleErrors:128=&gt;0x11a7a9370, GUID_PREFIX:129, GUID_KEY:130, generateGuid:131=&gt;0x11a7a9270, guidFor:132=&gt;0x11a7a9230, META_KEY:133, EMPTY_META:134, meta:135=&gt;0x11a7a91f0, getMeta:136=&gt;0x11a7a91b0, setMeta:137=&gt;0x11a7a9170, metaPath:138=&gt;0x11a7a9130, wrap:139=&gt;0x11a7a90f0, isArray:140=&gt;0x11a7a90b0, makeArray:141=&gt;0x11a7a9070, canInvoke:142=&gt;0x11a7a92b0, tryInvoke:143=&gt;0x11a7a9030, tryFinally:144=&gt;0x11a7a8fb0, tryCatchFinally:145=&gt;0x11a7a8f70, typeOf:146=&gt;0x11a7a8ef0, Instrumentation:147, instrument:148=&gt;0x11a7a8db0, subscribe:149=&gt;0x11a7a8d70, EnumerableUtils:150, normalizeTuple:151=&gt;0x11a7a89b0, _getPath:152=&gt;0x11a7a8970, getWithDefault:153=&gt;0x11a7a8930, get:154=&gt;0x11a7a89f0, on:155=&gt;0x11a7a87f0, addListener:156=&gt;0x11a7a87b0, removeListener:157=&gt;0x11a7a8830, _suspendListener:158=&gt;0x11a7a8770, _suspendListeners:159=&gt;0x11a7a8730, sendEvent:160=&gt;0x11a7a86f0, hasListeners:161=&gt;0x11a7a86b0, watchedEvents:162=&gt;0x11a7a8670, listenersFor:163=&gt;0x11a7a8630, listenersDiff:164=&gt;0x11a7a85f0, listenersUnion:165=&gt;0x11a7a85b0, _ObserverSet:166=&gt;0x11a7a8530, propertyWillChange:167=&gt;0x11a7a83f0, propertyDidChange:168=&gt;0x11a7a83b0, overrideChains:169=&gt;0x11a7a8130, beginPropertyChanges:170=&gt;0x11a7a8230, endPropertyChanges:171=&gt;0x11a7a81f0, changeProperties:172=&gt;0x11a7a80f0, set:173=&gt;0x11a7a8030, trySet:174=&gt;0x11a7a7ff0, OrderedSet:175=&gt;0x11a7a7ef0, Map:176=&gt;0x11a7a7c70, MapWithDefault:177=&gt;0x11a7a7a70, Logger:178, Descriptor:179=&gt;0x11a7a7730, MANDATORY_SETTER_FUNCTION:180=&gt;0x11a7a76f0, DEFAULT_GETTER_FUNCTION:181=&gt;0x11a7a76b0, defineProperty:182=&gt;0x11a7a7670, getProperties:183=&gt;0x11a7a75f0, setProperties:184=&gt;0x11a7a7570, watchKey:185=&gt;0x11a7a74f0, unwatchKey:186=&gt;0x11a7a74b0, flushPendingChains:187=&gt;0x11a7a7370, removeChainWatcher:188=&gt;0x11a7a7330, _ChainNode:189=&gt;0x11a7a72f0, finishChains:190=&gt;0x11a7a6ff0, watchPath:191=&gt;0x11a7a6ef0, unwatchPath:192=&gt;0x11a7a6eb0, watch:193=&gt;0x11a7a6df0, isWatching:194=&gt;0x11a7a6db0, unwatch:195=&gt;0x11a7a6d70, rewatch:196=&gt;0x11a7a6d30, destroy:197=&gt;0x11a7a6cf0, ComputedProperty:198=&gt;0x11a7a6b70, computed:199=&gt;0x11a7a6870, cacheFor:200=&gt;0x11a7a6830, addObserver:201=&gt;0x11a7a5e70, observersFor:202=&gt;0x11a7a5e30, removeObserver:203=&gt;0x11a7a5df0, addBeforeObserver:204=&gt;0x11a7a5db0, _suspendBeforeObserver:205=&gt;0x11a7a5d70, _suspendObserver:206=&gt;0x11a7a5d30, _suspendBeforeObservers:207=&gt;0x11a7a5cf0, _suspendObservers:208=&gt;0x11a7a5cb0, beforeObserversFor:209=&gt;0x11a7a5c70, removeBeforeObserver:210=&gt;0x11a7a5c30, run:211=&gt;0x11a7a5270, LOG_BINDINGS:212, isGlobalPath:213=&gt;0x11a7a4e30, Binding:214=&gt;0x11a7a4df0, bind:215=&gt;0x11a7a49f0, oneWay:216=&gt;0x11a7a49b0, IS_BINDING:217, mixin:218=&gt;0x11a7a4430, Mixin:219=&gt;0x11a7a43f0, anyUnprocessedMixins:220, required:221=&gt;0x11a7a4130, alias:222=&gt;0x11a7a40b0, aliasMethod:223=&gt;0x11a7a4070, observer:224=&gt;0x11a7a4030, immediateObserver:225=&gt;0x11a7a3ff0, beforeObserver:226=&gt;0x11a7a3fb0, libraries:227, MODEL_FACTORY_INJECTIONS:228, compare:229=&gt;0x11a7a36b0, copy:230=&gt;0x11a7a3670, inspect:231=&gt;0x11a7a3630, isEqual:232=&gt;0x11a7a35f0, ORDER_DEFINITION:233, keys:234=&gt;0x11a7a35b0, STRINGS:235, String:236, Observable:237, CoreObject:238=&gt;0x11a7a2a70, Object:239=&gt;0x11a7a2470, Namespace:240=&gt;0x11a7a1fb0, NAME_KEY:241, ObjectProxy:242=&gt;0x11a7a1b70, Enumerable:243, Array:244, ReduceComputedProperty:245=&gt;0x11a7a0970, reduceComputed:246=&gt;0x11a9ffd70, ArrayComputedProperty:247=&gt;0x11a9ffcf0, arrayComputed:248=&gt;0x11a9ffbf0, RSVP:249, Comparable:250, Copyable:251, Freezable:252, FROZEN_ERROR:253, MutableEnumerable:254, MutableArray:255, TargetActionSupport:256, Evented:257, DeferredMixin:258, ActionHandler:259, PromiseProxyMixin:260, TrackedArray:261=&gt;0x11a9fd3f0, SubArray:262=&gt;0x11a9fd130, Container:263=&gt;0x11a9fcf30, Application:264, ArrayProxy:265=&gt;0x11a9fbcb0, EachProxy:266=&gt;0x11a9fb530, NativeArray:267, A:268, Set:269=&gt;0x11a9fa170, Deferred:270=&gt;0x11a9f9f70, onLoad:271=&gt;0x11a9f9d30, runLoadHooks:272=&gt;0x11a9f9cf0, ControllerMixin:273, Controller:274=&gt;0x11a9f9b30, SortableMixin:275, ArrayController:276=&gt;0x11a9f93b0, ObjectController:277=&gt;0x11a9f91b0, $:278=&gt;0x1198d51f0, ViewUtils:279, RenderBuffer:280=&gt;0x11a9f8af0, _RenderBuffer:281=&gt;0x11a9f8ab0, EventDispatcher:282=&gt;0x11a9f8470, TEMPLATES:283, CoreView:284=&gt;0x11a9f7df0, _ViewCollection:285=&gt;0x11a9f7c30, View:286=&gt;0x11a9f6a30, ContainerView:287=&gt;0x11a9f51b0, CollectionView:288=&gt;0x11a9f4cb0, Component:289=&gt;0x11a9f4930, ViewTargetActionSupport:290, Handlebars:291, _Metamorph:292, _MetamorphView:293=&gt;0x11a9f3530, _SimpleMetamorphView:294=&gt;0x11a9f3370, _SimpleHandlebarsView:295=&gt;0x11a9f3170, _HandlebarsBoundView:296=&gt;0x11a9f2e70, Checkbox:297=&gt;0x11a9f1b30, TextSupport:298, TextField:299=&gt;0x11a9f1670, Button:300=&gt;0x11a9f1170, TextArea:301=&gt;0x11a9f0ef0, SelectOption:302=&gt;0x11a9f0bb0, SelectOptgroup:303=&gt;0x11a9f09f0, Select:304=&gt;0x11b5dffb0, ComponentLookup:305=&gt;0x11b5dfcb0, RouterDSL:306=&gt;0x11b5df830, controllerFor:307=&gt;0x11b5df630, generateControllerFactory:308=&gt;0x11b5df5f0, generateController:309=&gt;0x11b5df5b0, Router:310=&gt;0x11b5dd4f0, Route:311=&gt;0x11b5dca30, LinkView:312=&gt;0x11b5dc230, Location:313, NoneLocation:314=&gt;0x11b5db570, HashLocation:315=&gt;0x11b5db1b0, HistoryLocation:316=&gt;0x11b5dacf0, DAG:317=&gt;0x11b5daa30, DefaultResolver:318=&gt;0x11b5da530, DataAdapter:319=&gt;0x11b5d9430, Test:320, StateManager:321, State:322, Date:323, Inflector:324=&gt;0x11b65e5b0, __ember1394588725815_name:325, BOOTED:326}, NonArray, Proto:0x117f1f8a0]
    %DB:Object       = 0x11a5fdcf0:[Object, {}, NonArray, Proto:0x117f1f8a0]
    %DG:Object       = 0x11a7e7170:[Object, {queueNames:0, options:1, currentInstance:2, instanceStack:3, begin:4=&gt;0x11a7a5570, end:5=&gt;0x11a7a5530, run:6=&gt;0x11a7a54f0, defer:7=&gt;0x11a7a54b0, deferOnce:8=&gt;0x11a7a5470, setTimeout:9=&gt;0x11a7a5430, throttle:10=&gt;0x11a7a53f0, debounce:11=&gt;0x11a7a53b0, cancelTimers:12=&gt;0x11a7a5370, hasTimers:13=&gt;0x11a7a5330, cancel:14=&gt;0x11a7a52f0, _cancelItem:15=&gt;0x11a7a52b0, schedule:16=&gt;0x11a7a54b0, scheduleOnce:17=&gt;0x11a7a5470, later:18=&gt;0x11a7a5430}, NonArray, Proto:0x117f1f8a0]
    %DU:Object       = 0x11b85f8f0:[Object, {queueNames:0, options:1, instanceStack:2, currentInstance:3}, NonArray, Proto:0x11997ec70]
    %Dj:Window       = 0x11b6e98f0:[Window, {Object:100=&gt;0x1198af130, Function:101=&gt;0x1198af110, Array:102=&gt;0x1198af0f0, RegExp:103=&gt;0x11990fc70, EvalError:104=&gt;0x1198aefb0, RangeError:105=&gt;0x1198aef90, ReferenceError:106=&gt;0x1198aef70, SyntaxError:107=&gt;0x1198aef50, TypeError:108=&gt;0x1198aef30, URIError:109=&gt;0x1198aef10, Promise:110=&gt;0x1198aeef0, Set:111=&gt;0x1198af0d0, Map:112=&gt;0x1198af0b0, Date:113=&gt;0x1198af090, String:114=&gt;0x1198af070, Boolean:115=&gt;0x1198af050, Number:116=&gt;0x1198af030, Error:117=&gt;0x1198af010, ArrayBuffer:118=&gt;0x1198aeff0, WeakMap:119=&gt;0x1198aefd0, ArrayIterator:120, ArgumentsIterator:121, MapIterator:122, SetIterator:123, eval:124=&gt;0x1198d6cf0, JSON:125, Math:126, DataView:127=&gt;0x1198aedb0, Float64Array:128=&gt;0x1198aedd0, Float32Array:129=&gt;0x1198aedf0, Uint32Array:130=&gt;0x1198aee10, Int32Array:131=&gt;0x1198aee90, Uint16Array:132=&gt;0x1198aee30, Int16Array:133=&gt;0x1198aeeb0, Uint8ClampedArray:134=&gt;0x1198aee50, Uint8Array:135=&gt;0x1198aee70, Int8Array:136=&gt;0x1198aeed0, console:137, Name:138=&gt;0x1198aed90, testRunner:139, GCController:140, accessibilityController:141, internals:142, appleScriptController:143, eventSender:144, navigationController:145, objCController:146, objCPlugin:147, objCPluginFunction:148, textInputController:149, $:150=&gt;0x1198d51f0, jQuery:151=&gt;0x1198d51f0, Ember:152, Em:153, MetamorphENV:154, DS:155, Todos:156, parseFloat:157=&gt;0x11b658a70, parseInt:158=&gt;0x11b656e70, jQuery2100135589261073619130.09239788982085884:159, isNaN:160=&gt;0x11b98b2f0}, NonArray, Proto:0x117f1f8b0]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989497</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-11 19:03:41 -0700</bug_when>
    <thetext>It looks like m_graph.m_form is modified mid-way through the DCEPhase.

I did

+        GraphForm originalForm = m_graph.m_form;
         if (m_graph.m_form == SSA) {
             // Need to process the graph in reverse DFS order, so that we get to the uses
             // of a node before we get to the node itself.
             Vector&lt;BasicBlock*&gt; depthFirst;
             m_graph.getBlocksInDepthFirstOrder(depthFirst);
-            for (unsigned i = depthFirst.size(); i--;)
+            for (unsigned i = depthFirst.size(); i--;) {
                 fixupBlock(depthFirst[i]);
+                ASSERT(originalForm == m_graph.m_form);
+            }
         } else {
             RELEASE_ASSERT(m_graph.m_form == ThreadedCPS);
             
-            for (BlockIndex blockIndex = 0; blockIndex &lt; m_graph.numBlocks(); ++blockIndex)
+            for (BlockIndex blockIndex = 0; blockIndex &lt; m_graph.numBlocks(); ++blockIndex) {
                 fixupBlock(m_graph.block(blockIndex));
+                ASSERT(originalForm == m_graph.m_form);
+            }
             
             cleanVariables(m_graph.m_arguments);

And I&apos;m seeing this assertion being hit.  Upon some investigation this is triggered by m_graph.dethread() added in the patch for the bug 130069.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989498</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-11 19:05:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; It looks like m_graph.m_form is modified mid-way through the DCEPhase.
&gt; 
&gt; I did
&gt; 
&gt; +        GraphForm originalForm = m_graph.m_form;
&gt;          if (m_graph.m_form == SSA) {
&gt;              // Need to process the graph in reverse DFS order, so that we get to the uses
&gt;              // of a node before we get to the node itself.
&gt;              Vector&lt;BasicBlock*&gt; depthFirst;
&gt;              m_graph.getBlocksInDepthFirstOrder(depthFirst);
&gt; -            for (unsigned i = depthFirst.size(); i--;)
&gt; +            for (unsigned i = depthFirst.size(); i--;) {
&gt;                  fixupBlock(depthFirst[i]);
&gt; +                ASSERT(originalForm == m_graph.m_form);
&gt; +            }
&gt;          } else {
&gt;              RELEASE_ASSERT(m_graph.m_form == ThreadedCPS);
&gt; 
&gt; -            for (BlockIndex blockIndex = 0; blockIndex &lt; m_graph.numBlocks(); ++blockIndex)
&gt; +            for (BlockIndex blockIndex = 0; blockIndex &lt; m_graph.numBlocks(); ++blockIndex) {
&gt;                  fixupBlock(m_graph.block(blockIndex));
&gt; +                ASSERT(originalForm == m_graph.m_form);
&gt; +            }
&gt; 
&gt;              cleanVariables(m_graph.m_arguments);
&gt; 
&gt; And I&apos;m seeing this assertion being hit.  Upon some investigation this is triggered by m_graph.dethread() added in the patch for the bug 130069.

Thanks for finding this.  I will fix the other patch before landing and add a test.  We don&apos;t need this bug since this bug doesn&apos;t apply to ToT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989511</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-11 19:33:33 -0700</bug_when>
    <thetext>Yup.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>