<?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>130069</bug_id>
          
          <creation_ts>2014-03-10 22:43:48 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: node-&gt;op() == Phi || node-&gt;op() == SetArgument</short_desc>
          <delta_ts>2014-03-12 18:51:25 -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>FIXED</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>
          
          <blocked>130106</blocked>
    
    <blocked>130115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</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>989250</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-10 22:43:48 -0700</bug_when>
    <thetext>Tools/Scripts/run-perf-tests PerformanceTests/DoYouEvenBench/Full.html --test-runner-count=4 --reset-results --debug

hits the following assertion

ASSERTION FAILED: node-&gt;op() == Phi || node-&gt;op() == SetArgument
/Volumes/Data/webkit/Source/JavaScriptCore/dfg/DFGDCEPhase.cpp(262) : void JSC::DFG::DCEPhase::cleanVariables(VariablesVectorType &amp;) [VariablesVectorType = JSC::Operands&lt;JSC::DFG::Node *, JSC::DFG::NodePointerTraits&gt;]
1   0x1067dc750 WTFCrash
2   0x1062728e1 void JSC::DFG::DCEPhase::cleanVariables&lt;JSC::Operands&lt;JSC::DFG::Node*, JSC::DFG::NodePointerTraits&gt; &gt;(JSC::Operands&lt;JSC::DFG::Node*, JSC::DFG::NodePointerTraits&gt;&amp;)
3   0x1062722d0 JSC::DFG::DCEPhase::fixupBlock(JSC::DFG::BasicBlock*)
4   0x106271e2e JSC::DFG::DCEPhase::run()
5   0x106271005 bool JSC::DFG::runAndLog&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::DCEPhase&amp;)
6   0x106270f8e bool JSC::DFG::runPhase&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::Graph&amp;)
7   0x106270f48 JSC::DFG::performDCE(JSC::DFG::Graph&amp;)
8   0x106326f40 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;)
9   0x106326674 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;, JSC::DFG::ThreadData*)
10  0x1063c9ac0 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
11  0x1063c8714 JSC::DFG::Worklist::threadFunction(void*)
12  0x10682bf70 WTF::threadEntryPoint(void*)
13  0x10682cbf8 WTF::wtfThreadEntryPoint(void*)
14  0x7fff8f8d4899 _pthread_body
15  0x7fff8f8d472a _pthread_struct_init
16  0x7fff8f8d8fc9 thread_start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989251</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-10 22:44:56 -0700</bug_when>
    <thetext>I&apos;ve added instrumentation suggested in https://bugs.webkit.org/show_bug.cgi?id=130066#c7
as
Index: Source/JavaScriptCore/dfg/DFGDCEPhase.cpp
===================================================================
--- Source/JavaScriptCore/dfg/DFGDCEPhase.cpp	(revision 165407)
+++ Source/JavaScriptCore/dfg/DFGDCEPhase.cpp	(working copy)
@@ -259,6 +259,11 @@
                 continue;
             if (node-&gt;op() == GetLocal) {
                 node = node-&gt;child1().node();
+                if (!(node-&gt;op() == Phi || node-&gt;op() == SetArgument)) {
+                    m_graph.dump();
+                    fputs(&quot;\n\n\n\n\n&quot;, stderr);
+                    dataLog(&quot;node = &quot;, node, &quot;\n&quot;);
+                }
                 ASSERT(node-&gt;op() == Phi || node-&gt;op() == SetArgument);
                 if (node-&gt;shouldGenerate()) {
                     variables[i] = node;

but Graph::dump itself crashes hitting another assertion:


DFG for adapterDidCommit#&lt;no-hash&gt;:[0x7fe40a014860-&gt;0x7fe4064996a0-&gt;0x113b19470, DFGFunctionCall, 192]:
  Fixpoint state: FixpointConverged; Form: ThreadedCPS; 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, 0x1131b8930 (%DE: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, 0x7fe4062d6b80, R:Watchpoint_fire, W:SideState, bc#10)
  12:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x113048030 (%Ct: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, [%Ch:string], String (identifier): isError, ID: 5) loc4:(Final, TOP, TOP, TOP) loc5:(Otherobj, TOP, TOP, [%DE:JSActivation], Cell: 0x1131b8930 (%DE: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;(@1), @470&lt;2&gt;-&gt;(@5)
  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;(@5), @457&lt;1&gt;-&gt;(@1)
  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, 0x11212e870 (%CR:Window), bc#50)
  34:  skipped  &lt; 0:-&gt;	MovHint(@33&lt;Object&gt;, loc3, W:SideState, bc#50)
  35:  skipped  &lt; 0:-&gt;	SetLocal(@33&lt;Object&gt;, loc3(L~&lt;Object&gt;/FlushedJSValue), W:Variables(-4), bc#56)
  36:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@33&lt;Object&gt;, MustGen|CanExit, %CR: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:  skipped  &lt; 0:-&gt;	SetLocal(@39&lt;Final&gt;, loc3(M~&lt;Final&gt;/FlushedJSValue), W:Variables(-4), bc#64)
  42:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@39&lt;Final&gt;, MustGen|CanExit, [%BN: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:  skipped  &lt; 0:-&gt;	SetLocal(@44&lt;Function&gt;, loc0(N~&lt;Function&gt;/FlushedJSValue), W:Variables(-1), 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(0x113044430, mixin#ASSERTION FAILED: isSafeToComputeHash()
/Volumes/Data/webkit3/Source/JavaScriptCore/bytecode/CodeBlock.cpp(102) : JSC::CodeBlockHash JSC::CodeBlock::hash() const
1   0x1018e34b0 WTFCrash
2   0x101247a97 JSC::CodeBlock::hash() const
3   0x1014ef4fe JSC::FunctionExecutableDump::dump(WTF::PrintStream&amp;) const
4   0x1013b683d void WTF::printInternal&lt;JSC::FunctionExecutableDump&gt;(WTF::PrintStream&amp;, JSC::FunctionExecutableDump const&amp;)
5   0x1013aab3d void WTF::PrintStream::print&lt;JSC::FunctionExecutableDump&gt;(JSC::FunctionExecutableDump const&amp;)
6   0x1013a5d16 JSC::DFG::Graph::dump(WTF::PrintStream&amp;, char const*, JSC::DFG::Node*, JSC::DumpContext*)
7   0x1013a80a4 JSC::DFG::Graph::dump(WTF::PrintStream&amp;, JSC::DumpContext*)
8   0x1013795bb void JSC::DFG::DCEPhase::cleanVariables&lt;JSC::Operands&lt;JSC::DFG::Node*, JSC::DFG::NodePointerTraits&gt; &gt;(JSC::Operands&lt;JSC::DFG::Node*, JSC::DFG::NodePointerTraits&gt;&amp;)
9   0x101378e40 JSC::DFG::DCEPhase::fixupBlock(JSC::DFG::BasicBlock*)
10  0x10137899e JSC::DFG::DCEPhase::run()
11  0x101377b75 bool JSC::DFG::runAndLog&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::DCEPhase&amp;)
12  0x101377afe bool JSC::DFG::runPhase&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::Graph&amp;)
13  0x101377ab8 JSC::DFG::performDCE(JSC::DFG::Graph&amp;)
14  0x10142dca0 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;)
15  0x10142d3d4 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;, JSC::DFG::ThreadData*)
16  0x1014d0820 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
17  0x1014cf474 JSC::DFG::Worklist::threadFunction(void*)
18  0x101932cd0 WTF::threadEntryPoint(void*)
19  0x101933958 WTF::wtfThreadEntryPoint(void*)
20  0x7fff8f8d4899 _pthread_body
21  0x7fff8f8d472a _pthread_struct_init
22  0x7fff8f8d8fc9 thread_start</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989253</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-10 22:46:15 -0700</bug_when>
    <thetext>As Phil suggested, you can get around that ASSERT by setting the following environment variable:

JSC_alwaysComputeHash=true</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989254</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-10 22:49:55 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; As Phil suggested, you can get around that ASSERT by setting the following environment variable:
&gt; 
&gt; JSC_alwaysComputeHash=true

Thanks. Will do that.  Just saw what this assertion is about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989256</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-10 23:00:20 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; As Phil suggested, you can get around that ASSERT by setting the following environment variable:
&gt; &gt; 
&gt; &gt; JSC_alwaysComputeHash=true
&gt; 
&gt; Thanks. Will do that.  Just saw what this assertion is about.

Just finished rebuilding (accidentally svn upped and had to rebuild the world :-S ). Here&apos;s the full dump:

node = @50

DFG for adapterDidCommit#EP3AeT:[0x7ff93cb416d0-&gt;0x7ff931f8ac40-&gt;0x124fdc470, DFGFunctionCall, 192]:
  Fixpoint state: FixpointConverged; Form: ThreadedCPS; 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, 0x124ff87f0 (%EL: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, 0x7ff93384e3a0, R:Watchpoint_fire, W:SideState, bc#10)
  12:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x1250cddb0 (%CK: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, [%Dw:string], String (identifier): isError, ID: 5) loc4:(Final, TOP, TOP, TOP) loc5:(Otherobj, TOP, TOP, [%EL:JSActivation], Cell: 0x124ff87f0 (%EL:JSActivation), ID: 1074)
  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;(@1), @470&lt;2&gt;-&gt;(@5)
  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;(@5), @457&lt;1&gt;-&gt;(@1)
  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, 0x11449d670 (%Eg:Window), bc#50)
  34:  skipped  &lt; 0:-&gt;	MovHint(@33&lt;Object&gt;, loc3, W:SideState, bc#50)
  35:  skipped  &lt; 0:-&gt;	SetLocal(@33&lt;Object&gt;, loc3(L~&lt;Object&gt;/FlushedJSValue), W:Variables(-4), bc#56)
  36:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@33&lt;Object&gt;, MustGen|CanExit, %Eg: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}, 141, R:NamedProperties(2), bc#56)  predicting Final
  40:  skipped  &lt; 0:-&gt;	MovHint(@39&lt;Final&gt;, loc3, W:SideState, bc#56)
  41:  skipped  &lt; 0:-&gt;	SetLocal(@39&lt;Final&gt;, loc3(M~&lt;Final&gt;/FlushedJSValue), W:Variables(-4), bc#64)
  42:           &lt;!0:-&gt;	CheckStructure(Check:Cell:@39&lt;Final&gt;, MustGen|CanExit, [%Bm: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:  skipped  &lt; 0:-&gt;	SetLocal(@44&lt;Function&gt;, loc0(N~&lt;Function&gt;/FlushedJSValue), W:Variables(-1), 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(0x1250ca1b0, mixin#AnlAZn/&lt;nogen&gt;:[0x125083070]), bc#91)
  --&gt; mixin#AnlAZn:&lt;0x125083070, bc#91, Call, known callee: Cell: 0x1250ca1b0 (%CK:Function), ID: 930, 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:  skipped  &lt; 0:-&gt;	SetLocal(@55&lt;Other&gt;, loc10(R*&lt;Other&gt;/FlushedJSValue), W:Variables(-11), bc#0)
    58:  skipped  &lt; 0:-&gt;	MovHint(@55&lt;Other&gt;, loc11, W:SideState, bc#0)
    59:  skipped  &lt; 0:-&gt;	SetLocal(@55&lt;Other&gt;, loc11(S*&lt;Other&gt;/FlushedJSValue), W:Variables(-12), bc#0)
    60:  skipped  &lt; 0:-&gt;	MovHint(@55&lt;Other&gt;, loc12, W:SideState, bc#0)
    61:  skipped  &lt; 0:-&gt;	SetLocal(@55&lt;Other&gt;, loc12(T~&lt;Other&gt;/FlushedJSValue), W:Variables(-13), 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, 0x122b8f470 (%EL:JSActivation), bc#6)
    71:  skipped  &lt; 0:-&gt;	MovHint(@70&lt;Object&gt;, loc13, W:SideState, bc#6)
    72:  skipped  &lt; 0:-&gt;	SetLocal(@70&lt;Object&gt;, loc13(W~&lt;Object&gt;/FlushedJSValue), W:Variables(-14), bc#12)
    73:           &lt;!0:-&gt;	Phantom(@70&lt;Object&gt;, MustGen, bc#12)
    74:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7ff931db5ab0, R:Watchpoint_fire, W:SideState, bc#12)
    75:           &lt; 3:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x122bbb130 (%CC:Function), bc#12)
    76:  skipped  &lt; 0:-&gt;	MovHint(@75&lt;Function&gt;, loc14, W:SideState, bc#12)
    77:  skipped  &lt; 0:-&gt;	SetLocal(@75&lt;Function&gt;, loc14(X~&lt;Function&gt;/FlushedJSValue), W:Variables(-15), bc#20)
    78:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@75&lt;Function&gt;, MustGen|CanExit, %CC:Function, R:JSCell_structureID, bc#20)
    79:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x1144cd810 (%BC:Function), bc#20)
    80:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@79&lt;Object&gt;, MustGen|CanExit, %BC: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, 0x122bbe4f0 (%CC:Function), bc#20)
    83:  skipped  &lt; 0:-&gt;	MovHint(@82&lt;Function&gt;, loc15, W:SideState, bc#20)
    84:  skipped  &lt; 0:-&gt;	SetLocal(@82&lt;Function&gt;, loc15(Y~&lt;Function&gt;/FlushedJSValue), W:Variables(-16), 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:  skipped  &lt; 0:-&gt;	SetLocal(@75&lt;Function&gt;, loc16(AB~&lt;Function&gt;/FlushedJSValue), W:Variables(-17), 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:  skipped  &lt; 0:-&gt;	SetLocal(@91&lt;Arguments&gt;, loc19(FB~&lt;Arguments&gt;/FlushedJSValue), W:Variables(-20), 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:  skipped  &lt; 0:-&gt;	SetLocal(@101&lt;Int32&gt;, loc18(GB~&lt;Int32&gt;/FlushedJSValue), W:Variables(-19), 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:  skipped  &lt; 0:-&gt;	SetLocal(@104&lt;Array&gt;, loc12(HB~&lt;Array&gt;/FlushedJSValue), W:Variables(-13), 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:  skipped  &lt; 0:-&gt;	SetLocal(@70&lt;Object&gt;, loc17(SB~&lt;Object&gt;/FlushedJSValue), W:Variables(-18), bc#81)
   135:           &lt;!0:-&gt;	Phantom(@70&lt;Object&gt;, MustGen, bc#81)
   136:           &lt;!0:-&gt;	VariableWatchpoint(MustGen|CanExit, 0x7ff931db7260, R:Watchpoint_fire, W:SideState, bc#81)
   137:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x1250ca270 (%CK:Function), bc#81)
   138:  skipped  &lt; 0:-&gt;	MovHint(@137&lt;Function&gt;, loc13, W:SideState, bc#81)
   139:  skipped  &lt; 0:-&gt;	SetLocal(@137&lt;Function&gt;, loc13(TB~&lt;Function&gt;/FlushedJSValue), W:Variables(-14), 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:  skipped  &lt; 0:-&gt;	SetLocal(@140&lt;Final&gt;, loc16(VB~&lt;Final&gt;/FlushedJSValue), W:Variables(-17), bc#92)
   143:  skipped  &lt; 0:-&gt;	GetLocal(JS|UseAsOther, Array, loc12(HB~&lt;Array&gt;/FlushedJSValue), R:Variables(-13), bc#92)
   144:  skipped  &lt; 0:-&gt;	MovHint(@104&lt;Array&gt;, loc15, W:SideState, bc#92)
   145:  skipped  &lt; 0:-&gt;	SetLocal(@104&lt;Array&gt;, loc15(XB~&lt;Array&gt;/FlushedJSValue), W:Variables(-16), 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:  skipped  &lt; 0:-&gt;	SetLocal(@146&lt;Boolean&gt;, loc14(YB~&lt;Boolean&gt;/FlushedJSValue), W:Variables(-15), 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:  skipped  &lt; 0:-&gt;	SetLocal(@149&lt;Final&gt;, loc13(ZB~&lt;Final&gt;/FlushedJSValue), W:Variables(-14), 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:  skipped  &lt; 0:-&gt;	GetLocal(@50, JS|PureInt, Final, loc2(P*&lt;Final&gt;/FlushedJSValue), R:Variables(-3), bc#110)
   160:  skipped  &lt; 0:-&gt;	MovHint(@159&lt;Final&gt;, loc0, W:SideState, bc#110)
   161:  skipped  &lt; 0:-&gt;	SetLocal(@159&lt;Final&gt;, loc0(DC~&lt;Final&gt;/FlushedJSValue), W:Variables(-1), bc#110)
  &lt;-- mixin#AnlAZn:&lt;0x125083070, bc#91, Call, known callee: Cell: 0x1250ca1b0 (%CK:Function), ID: 930, 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, [%Bm: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, [%EL:JSActivation], Cell: 0x122b8f470 (%EL:JSActivation), ID: 1074) loc18:(Int32, Int32: 1) loc19:(Arguments, TOP, TOP, TOP)
  var links: arg1:@457 arg0:@47&lt;Final&gt; loc0:@161 loc1:@53 loc2:@159&lt;Final&gt; 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;(@448, @470), @456&lt;2&gt;-&gt;(@457, @449)
  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, %BB: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(0x124f87b70, updateRecordArraysLater#ET1ozr/&lt;nogen&gt;:[0x124fdbf70]), bc#152)
  --&gt; updateRecordArraysLater#ET1ozr:&lt;0x124fdbf70, bc#152, Call, known callee: Cell: 0x124f87b70 (%CK:Function), ID: 930, 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: 0x124f87b70 (%CK:Function), ID: 930) loc1:(Final, TOP, TOP, TOP) loc2:(Stringident, TOP, TOP, [%Dw: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;0x124fdbf70&gt; bc#16): 
  Predecessors: #6
  Dominated by: #0 #6 #7
  Dominates: #7
  Phi Nodes: @452&lt;1&gt;-&gt;(@456), @453&lt;1&gt;-&gt;(@469)
  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;0x124fdbf70&gt; bc#18): 
  Predecessors: #6
  Dominated by: #0 #6 #8
  Dominates: #8 #9 #10
  Phi Nodes: @488&lt;1&gt;-&gt;(@189), @461&lt;2&gt;-&gt;(@456), @455&lt;2&gt;-&gt;(@469)
  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, 0x11449d670 (%Eg: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, %Eg: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}, 141, 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, [%Bm: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, [%AW: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, 0x1250caef0 (%CK: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;0x125088970, bc#74, Call, known callee: Cell: 0x1250caef0 (%CK:Function), ID: 930, 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, 0x1231fd330 (%EL: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, 0x7ff931daf850, R:Watchpoint_fire, W:SideState, bc#12)
     247:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Function, 0x1250cb830 (%CK: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;0x125089070, bc#20, Call, known callee: Cell: 0x1250cb830 (%CK:Function), ID: 930, 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, %Eg: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}, 141, 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, [%Bm: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, [%AW: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: 0x1250caef0 (%CK:Function), ID: 930) loc10:(Top, TOP, TOP, TOP) loc11:(Final, TOP, TOP, TOP) loc12:(Stringident, TOP, TOP, [%Dw:string], String (identifier): actions, ID: 5) loc13:(Function, TOP, TOP, [%AW:Function]) loc14:(Otherobj, NonArray, [%Eg:Window], [%Eg:Window], Cell: 0x11449d670 (%Eg:Window), ID: 11481) loc15:(Final, TOP, TOP, [%Bm:Object]) loc20:(Empty) loc21:(Empty) loc22:(Function, TOP, TOP, TOP, Cell: 0x1250cb830 (%CK:Function), ID: 930) loc23:(Otherobj, TOP, TOP, [%EL:JSActivation], Cell: 0x1231fd330 (%EL:JSActivation), ID: 1074) loc30:(ObjectOther, TOP, TOP, TOP) loc31:(Final, NonArray, [%Bm:Object], [%Bm: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;0x124fdbf70&gt; bc#74 --&gt; schedule#DonjJQ:&lt;0x125088970&gt; bc#20 --&gt; checkAutoRun#Di3nk8:&lt;0x125089070&gt; bc#36): 
  Predecessors: #8
  Dominated by: #0 #6 #8 #9
  Dominates: #9
  Phi Nodes: @475&lt;1&gt;-&gt;(@237), @444&lt;1&gt;-&gt;(@240), @481&lt;1&gt;-&gt;(@227), @466&lt;1&gt;-&gt;(@224), @450&lt;1&gt;-&gt;(@222), @474&lt;1&gt;-&gt;(@461), @454&lt;1&gt;-&gt;(@455)
  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, [%Dw: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, 0x11449d670 (%Eg: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, [%C7: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}, 141, 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, [%C7: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}, 141, 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;0x124fdbf70&gt; bc#74 --&gt; schedule#DonjJQ:&lt;0x125088970&gt; bc#20 --&gt; checkAutoRun#Di3nk8:&lt;0x125089070&gt; bc#97): 
  Predecessors: #8 #9
  Dominated by: #0 #6 #8 #10
  Dominates: #10
  Phi Nodes: @476&lt;2&gt;-&gt;(@450, @222), @484&lt;2&gt;-&gt;(@466, @224), @473&lt;2&gt;-&gt;(@481, @227), @463&lt;2&gt;-&gt;(@444, @240), @471&lt;1&gt;-&gt;(@475, @237), @451&lt;1&gt;-&gt;(@474, @461), @459&lt;1&gt;-&gt;(@454, @455)
  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, [%Dw: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;0x125089070, bc#20, Call, known callee: Cell: 0x1250cb830 (%CK:Function), ID: 930, 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, 0x1231fd330 (%EL: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, 0x7ff931daff00, R:Watchpoint_fire, W:SideState, bc#35)
     317:           &lt; 3:-&gt;	WeakJSConstant(JS|UseAsOther, Final, 0x1231fd070 (%EH: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, %EH:Object, R:JSCell_structureID, bc#43)
     321:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Final, 0x124f7db70 (%EF:Object), bc#43)
     322:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@321&lt;Final&gt;, MustGen|CanExit, %EF: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, 0x1250cb230 (%CK: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, [%CK:Function], R:JSCell_structureID, bc#52)
     328:           &lt; 1:-&gt;	WeakJSConstant(JS|UseAsOther, Otherobj, 0x1144cd810 (%BC:Function), bc#52)
     329:           &lt;!0:-&gt;	StructureTransitionWatchpoint(Cell:@328&lt;Object&gt;, MustGen|CanExit, %BC: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, 0x122bbe530 (%CC: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, 0x7ff931daff00, 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;0x125088970, bc#74, Call, known callee: Cell: 0x1250caef0 (%CK:Function), ID: 930, 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: 0x1250cb230 (%CK:Function), ID: 930) loc23:(Top, TOP, TOP, TOP) loc24:(Function, TOP, TOP, [%CC:Function], Cell: 0x122bbe530 (%CC:Function), ID: 957) loc25:(Function, TOP, TOP, TOP, Cell: 0x1250cb230 (%CK:Function), ID: 930) loc26:(Otherobj, TOP, TOP, [%EL:JSActivation], Cell: 0x1231fd330 (%EL:JSActivation), ID: 1074) loc27:(Final, TOP, TOP, [%EH:Object], Cell: 0x1231fd070 (%EH:Object), ID: 8382) loc28:(Top, TOP, TOP, TOP) loc29:(Final, TOP, TOP, TOP) loc30:(Stringident, TOP, TOP, [%Dw:string], String (identifier): actions, ID: 5) loc31:(Final, TOP, TOP, [%EH:Object], Cell: 0x1231fd070 (%EH:Object), ID: 8382)
  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;(@451, @452), @477&lt;1&gt;-&gt;(@459, @453)
  vars before: arg1:(ObjectOther, TOP, TOP, TOP) arg0:(Final, TOP, TOP, TOP)
  var links: arg1:@443 arg0:@477
  &lt;-- updateRecordArraysLater#ET1ozr:&lt;0x124fdbf70, bc#152, Call, known callee: Cell: 0x124f87b70 (%CK:Function), ID: 930, 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;(@443)
  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;(@477), @447&lt;1&gt;-&gt;(@443)
  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;:[0x122b9d570], 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:
    %AW:Function     = 0x12506d4f0:[Function, {join:100=&gt;0x1250cafb0, backburner:101, currentRunLoop:102, queues:103, begin:104=&gt;0x1250caf70, end:105=&gt;0x1250caf30, schedule:106=&gt;0x1250caef0, hasScheduledTimers:107=&gt;0x1250caeb0, cancelTimers:108=&gt;0x1250cae70, sync:109=&gt;0x1250cae30, later:110=&gt;0x1250cadf0, once:111=&gt;0x1250cadb0, scheduleOnce:112=&gt;0x1250cad70, next:113=&gt;0x1250cad30, cancel:114=&gt;0x1250cacf0, debounce:115=&gt;0x1250cacb0, throttle:116=&gt;0x1250cac70}, NonArray, Proto:0x1144cd810]
    %BB:Object       = 0x122ba9c70:[Object, {}, NonArray, Proto:0x1140eee20]
    %BC:Function     = 0x124f9f670:[Function, {name:100, length:101, toString:102=&gt;0x122bbe570, apply:103=&gt;0x122bbe530, call:104=&gt;0x122bbe4f0, bind:105=&gt;0x122bbe4b0, constructor:106=&gt;0x1144cd770, property:107=&gt;0x1250c47b0, observes:108=&gt;0x1250c4770, observesImmediately:109=&gt;0x1250c4730, observesBefore:110=&gt;0x1250c46f0, on:111=&gt;0x1250c46b0}, NonArray, Proto:0x1140eee20]
    %Bm:Object       = 0x1253e93f0:[Object, {ENV:0, assert:1=&gt;0x1250cf8b0, warn:100=&gt;0x1250cf870, debug:101=&gt;0x1250cf830, deprecate:102=&gt;0x1250cf7f0, deprecateFunc:103=&gt;0x1250cf7b0, imports:104, exports:105, lookup:106, isNamespace:107, toString:108=&gt;0x1250cf630, VERSION:109, config:110, FEATURES:111, EXTEND_PROTOTYPES:112, LOG_STACKTRACE_ON_DEPRECATION:113, SHIM_ES5:114, LOG_VERSION:115, K:116=&gt;0x1250cf5b0, uuid:117, merge:118=&gt;0x1250cf570, isNone:119=&gt;0x1250cf530, none:120=&gt;0x1250cf4f0, isEmpty:121=&gt;0x1250cf4b0, empty:122=&gt;0x1250cf470, platform:123, create:124=&gt;0x1250cf3f0, ArrayPolyfills:125, Error:126=&gt;0x1250cf130, onerror:127, handleErrors:128=&gt;0x1250cf0f0, GUID_PREFIX:129, GUID_KEY:130, generateGuid:131=&gt;0x1250ceff0, guidFor:132=&gt;0x1250cefb0, META_KEY:133, EMPTY_META:134, meta:135=&gt;0x1250cef70, getMeta:136=&gt;0x1250cef30, setMeta:137=&gt;0x1250ceef0, metaPath:138=&gt;0x1250ceeb0, wrap:139=&gt;0x1250cee70, isArray:140=&gt;0x1250cee30, makeArray:141=&gt;0x1250cedf0, canInvoke:142=&gt;0x1250cf030, tryInvoke:143=&gt;0x1250cedb0, tryFinally:144=&gt;0x1250ced30, tryCatchFinally:145=&gt;0x1250cecf0, typeOf:146=&gt;0x1250cec70, Instrumentation:147, instrument:148=&gt;0x1250ceb30, subscribe:149=&gt;0x1250ceaf0, EnumerableUtils:150, normalizeTuple:151=&gt;0x1250ce730, _getPath:152=&gt;0x1250ce6f0, getWithDefault:153=&gt;0x1250ce6b0, get:154=&gt;0x1250ce770, on:155=&gt;0x1250ce570, addListener:156=&gt;0x1250ce530, removeListener:157=&gt;0x1250ce5b0, _suspendListener:158=&gt;0x1250ce4f0, _suspendListeners:159=&gt;0x1250ce4b0, sendEvent:160=&gt;0x1250ce470, hasListeners:161=&gt;0x1250ce430, watchedEvents:162=&gt;0x1250ce3f0, listenersFor:163=&gt;0x1250ce3b0, listenersDiff:164=&gt;0x1250ce370, listenersUnion:165=&gt;0x1250ce330, _ObserverSet:166=&gt;0x1250ce2b0, propertyWillChange:167=&gt;0x1250ce170, propertyDidChange:168=&gt;0x1250ce130, overrideChains:169=&gt;0x1250cdeb0, beginPropertyChanges:170=&gt;0x1250cdfb0, endPropertyChanges:171=&gt;0x1250cdf70, changeProperties:172=&gt;0x1250cde70, set:173=&gt;0x1250cddb0, trySet:174=&gt;0x1250cdd70, OrderedSet:175=&gt;0x1250cdc70, Map:176=&gt;0x1250cd9f0, MapWithDefault:177=&gt;0x1250cd7f0, Logger:178, Descriptor:179=&gt;0x1250cd4b0, MANDATORY_SETTER_FUNCTION:180=&gt;0x1250cd470, DEFAULT_GETTER_FUNCTION:181=&gt;0x1250cd430, defineProperty:182=&gt;0x1250cd3f0, getProperties:183=&gt;0x1250cd370, setProperties:184=&gt;0x1250cd2f0, watchKey:185=&gt;0x1250cd270, unwatchKey:186=&gt;0x1250cd230, flushPendingChains:187=&gt;0x1250cd0f0, removeChainWatcher:188=&gt;0x1250cd0b0, _ChainNode:189=&gt;0x1250cd070, finishChains:190=&gt;0x1250ccd70, watchPath:191=&gt;0x1250ccc70, unwatchPath:192=&gt;0x1250ccc30, watch:193=&gt;0x1250ccb70, isWatching:194=&gt;0x1250ccb30, unwatch:195=&gt;0x1250ccaf0, rewatch:196=&gt;0x1250ccab0, destroy:197=&gt;0x1250cca70, ComputedProperty:198=&gt;0x1250cc8f0, computed:199=&gt;0x1250cc5f0, cacheFor:200=&gt;0x1250cc5b0, addObserver:201=&gt;0x1250cbbf0, observersFor:202=&gt;0x1250cbbb0, removeObserver:203=&gt;0x1250cbb70, addBeforeObserver:204=&gt;0x1250cbb30, _suspendBeforeObserver:205=&gt;0x1250cbaf0, _suspendObserver:206=&gt;0x1250cbab0, _suspendBeforeObservers:207=&gt;0x1250cba70, _suspendObservers:208=&gt;0x1250cba30, beforeObserversFor:209=&gt;0x1250cb9f0, removeBeforeObserver:210=&gt;0x1250cb9b0, run:211=&gt;0x1250caff0, LOG_BINDINGS:212, isGlobalPath:213=&gt;0x1250cabb0, Binding:214=&gt;0x1250cab70, bind:215=&gt;0x1250ca770, oneWay:216=&gt;0x1250ca730, IS_BINDING:217, mixin:218=&gt;0x1250ca1b0, Mixin:219=&gt;0x1250ca170, anyUnprocessedMixins:220, required:221=&gt;0x1250c9eb0, alias:222=&gt;0x1250c9e30, aliasMethod:223=&gt;0x1250c9df0, observer:224=&gt;0x1250c9db0, immediateObserver:225=&gt;0x1250c9d70, beforeObserver:226=&gt;0x1250c9d30, libraries:227, MODEL_FACTORY_INJECTIONS:228, compare:229=&gt;0x1250c9430, copy:230=&gt;0x1250c93f0, inspect:231=&gt;0x1250c93b0, isEqual:232=&gt;0x1250c9370, ORDER_DEFINITION:233, keys:234=&gt;0x1250c9330, STRINGS:235, String:236, Observable:237, CoreObject:238=&gt;0x1250c87f0, Object:239=&gt;0x1250c81f0, Namespace:240=&gt;0x1250c7d30, NAME_KEY:241, ObjectProxy:242=&gt;0x1250c78f0, Enumerable:243, Array:244, ReduceComputedProperty:245=&gt;0x1250c66f0, reduceComputed:246=&gt;0x1250c5f70, ArrayComputedProperty:247=&gt;0x1250c5ef0, arrayComputed:248=&gt;0x1250c5df0, 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;0x1250c35f0, SubArray:262=&gt;0x1250c3330, Container:263=&gt;0x1250c3130, Application:264, ArrayProxy:265=&gt;0x1250c1eb0, EachProxy:266=&gt;0x1250c1730, NativeArray:267, A:268, Set:269=&gt;0x124f0fef0, Deferred:270=&gt;0x124f0fcf0, onLoad:271=&gt;0x124f0fab0, runLoadHooks:272=&gt;0x124f0fa70, ControllerMixin:273, Controller:274=&gt;0x124f0f8b0, SortableMixin:275, ArrayController:276=&gt;0x124f0f130, ObjectController:277=&gt;0x124f0ef30, $:278=&gt;0x122bbb030, ViewUtils:279, RenderBuffer:280=&gt;0x124f0e870, _RenderBuffer:281=&gt;0x124f0e830, EventDispatcher:282=&gt;0x124f0e1f0, TEMPLATES:283, CoreView:284=&gt;0x124f0db70, _ViewCollection:285=&gt;0x124f0d9b0, View:286=&gt;0x124f0c7b0, ContainerView:287=&gt;0x124f0af30, CollectionView:288=&gt;0x124f0aa30, Component:289=&gt;0x124f0a6b0, ViewTargetActionSupport:290, Handlebars:291, _Metamorph:292, _MetamorphView:293=&gt;0x124f092b0, _SimpleMetamorphView:294=&gt;0x124f090f0, _SimpleHandlebarsView:295=&gt;0x124f08ef0, _HandlebarsBoundView:296=&gt;0x124f08bf0, Checkbox:297=&gt;0x124f078b0, TextSupport:298, TextField:299=&gt;0x124f073f0, Button:300=&gt;0x124f06ef0, TextArea:301=&gt;0x124f06c70, SelectOption:302=&gt;0x124f06930, SelectOptgroup:303=&gt;0x124f06770, Select:304=&gt;0x124f061b0, ComponentLookup:305=&gt;0x124f05eb0, RouterDSL:306=&gt;0x124f05a30, controllerFor:307=&gt;0x124f05830, generateControllerFactory:308=&gt;0x124f057f0, generateController:309=&gt;0x124f057b0, Router:310=&gt;0x124f036f0, Route:311=&gt;0x124f02c30, LinkView:312=&gt;0x124f02430, Location:313, NoneLocation:314=&gt;0x124f01770, HashLocation:315=&gt;0x124f013b0, HistoryLocation:316=&gt;0x124f00ef0, DAG:317=&gt;0x124f00c30, DefaultResolver:318=&gt;0x124f00730, DataAdapter:319=&gt;0x124f8f1b0, Test:320, StateManager:321, State:322, Date:323, Inflector:324=&gt;0x124f847b0, __ember1394517308446_name:325, BOOTED:326}, NonArray, Proto:0x1140eee20]
    %C7:Window       = 0x12538a870:[Window, {Object:100=&gt;0x1144cd790, Function:101=&gt;0x1144cd770, Array:102=&gt;0x1144cd750, RegExp:103=&gt;0x122aef970, EvalError:104=&gt;0x1144cd610, RangeError:105=&gt;0x1144cd5f0, ReferenceError:106=&gt;0x1144cd5d0, SyntaxError:107=&gt;0x1144cd5b0, TypeError:108=&gt;0x1144cd590, URIError:109=&gt;0x1144cd570, Promise:110=&gt;0x1144cd550, Set:111=&gt;0x1144cd730, Map:112=&gt;0x1144cd710, Date:113=&gt;0x1144cd6f0, String:114=&gt;0x1144cd6d0, Boolean:115=&gt;0x1144cd6b0, Number:116=&gt;0x1144cd690, Error:117=&gt;0x1144cd670, ArrayBuffer:118=&gt;0x1144cd650, WeakMap:119=&gt;0x1144cd630, ArrayIterator:120, ArgumentsIterator:121, MapIterator:122, SetIterator:123, eval:124=&gt;0x122bbcb30, JSON:125, Math:126, DataView:127=&gt;0x1144cd410, Float64Array:128=&gt;0x1144cd430, Float32Array:129=&gt;0x1144cd450, Uint32Array:130=&gt;0x1144cd470, Int32Array:131=&gt;0x1144cd4f0, Uint16Array:132=&gt;0x1144cd490, Int16Array:133=&gt;0x1144cd510, Uint8ClampedArray:134=&gt;0x1144cd4b0, Uint8Array:135=&gt;0x1144cd4d0, Int8Array:136=&gt;0x1144cd530, console:137, doNotTrack:138, $:139=&gt;0x122bbb030, jQuery:140=&gt;0x122bbb030, Ember:141, Em:142, MetamorphENV:143, DS:144, Todos:145, parseFloat:146=&gt;0x1253ce7f0}, NonArray, Proto:0x1140eee30]
    %CC:Function     = 0x122b5aaf0:[Function, {name:100, length:101}, NonArray, Proto:0x1144cd810]
    %CK:Function     = 0x122b5acf0:[Function, {}, NonArray, Proto:0x1144cd810]
    %Dw:string       = 0x1140afd70:[string, {}, NonArray]
    %EF:Object       = 0x12506e370:[Object, {queueNames:0, options:1, currentInstance:2, instanceStack:3, begin:4=&gt;0x1250cb2f0, end:5=&gt;0x1250cb2b0, run:6=&gt;0x1250cb270, defer:7=&gt;0x1250cb230, deferOnce:8=&gt;0x1250cb1f0, setTimeout:9=&gt;0x1250cb1b0, throttle:10=&gt;0x1250cb170, debounce:11=&gt;0x1250cb130, cancelTimers:12=&gt;0x1250cb0f0, hasTimers:13=&gt;0x1250cb0b0, cancel:14=&gt;0x1250cb070, _cancelItem:15=&gt;0x1250cb030, schedule:16=&gt;0x1250cb230, scheduleOnce:17=&gt;0x1250cb1f0, later:18=&gt;0x1250cb1b0}, NonArray, Proto:0x1140eee20]
    %EH:Object       = 0x125387270:[Object, {queueNames:0, options:1, instanceStack:2, currentInstance:3}, NonArray, Proto:0x124f7db70]
    %EL:JSActivation = 0x122b57370:[JSActivation, {}, NonArray]
    %Eg:Window       = 0x1261e1270:[Window, {Object:100=&gt;0x1144cd790, Function:101=&gt;0x1144cd770, Array:102=&gt;0x1144cd750, RegExp:103=&gt;0x122aef970, EvalError:104=&gt;0x1144cd610, RangeError:105=&gt;0x1144cd5f0, ReferenceError:106=&gt;0x1144cd5d0, SyntaxError:107=&gt;0x1144cd5b0, TypeError:108=&gt;0x1144cd590, URIError:109=&gt;0x1144cd570, Promise:110=&gt;0x1144cd550, Set:111=&gt;0x1144cd730, Map:112=&gt;0x1144cd710, Date:113=&gt;0x1144cd6f0, String:114=&gt;0x1144cd6d0, Boolean:115=&gt;0x1144cd6b0, Number:116=&gt;0x1144cd690, Error:117=&gt;0x1144cd670, ArrayBuffer:118=&gt;0x1144cd650, WeakMap:119=&gt;0x1144cd630, ArrayIterator:120, ArgumentsIterator:121, MapIterator:122, SetIterator:123, eval:124=&gt;0x122bbcb30, JSON:125, Math:126, DataView:127=&gt;0x1144cd410, Float64Array:128=&gt;0x1144cd430, Float32Array:129=&gt;0x1144cd450, Uint32Array:130=&gt;0x1144cd470, Int32Array:131=&gt;0x1144cd4f0, Uint16Array:132=&gt;0x1144cd490, Int16Array:133=&gt;0x1144cd510, Uint8ClampedArray:134=&gt;0x1144cd4b0, Uint8Array:135=&gt;0x1144cd4d0, Int8Array:136=&gt;0x1144cd530, console:137, doNotTrack:138, $:139=&gt;0x122bbb030, jQuery:140=&gt;0x122bbb030, Ember:141, Em:142, MetamorphENV:143, DS:144, Todos:145, parseFloat:146=&gt;0x1253ce7f0, parseInt:147=&gt;0x1253ccbf0, jQuery210069062883779406550.007350960746407509:148, isNaN:149=&gt;0x1253c14f0}, NonArray, Proto:0x1140eee30]

ASSERTION FAILED: node-&gt;op() == Phi || node-&gt;op() == SetArgument
/Volumes/Data/WebKit-svn-01/OpenSource/Source/JavaScriptCore/dfg/DFGDCEPhase.cpp(266) : void JSC::DFG::DCEPhase::cleanVariables(VariablesVectorType &amp;) [VariablesVectorType = JSC::Operands&lt;JSC::DFG::Node *, JSC::DFG::NodePointerTraits&gt;]
1   0x117eca8a0 WTFCrash
2   0x1179604fe void JSC::DFG::DCEPhase::cleanVariables&lt;JSC::Operands&lt;JSC::DFG::Node*, JSC::DFG::NodePointerTraits&gt; &gt;(JSC::Operands&lt;JSC::DFG::Node*, JSC::DFG::NodePointerTraits&gt;&amp;)
3   0x11795fd40 JSC::DFG::DCEPhase::fixupBlock(JSC::DFG::BasicBlock*)
4   0x11795f89e JSC::DFG::DCEPhase::run()
5   0x11795ea75 bool JSC::DFG::runAndLog&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::DCEPhase&amp;)
6   0x11795e9fe bool JSC::DFG::runPhase&lt;JSC::DFG::DCEPhase&gt;(JSC::DFG::Graph&amp;)
7   0x11795e9b8 JSC::DFG::performDCE(JSC::DFG::Graph&amp;)
8   0x117a14b60 JSC::DFG::Plan::compileInThreadImpl(JSC::DFG::LongLivedState&amp;)
9   0x117a14294 JSC::DFG::Plan::compileInThread(JSC::DFG::LongLivedState&amp;, JSC::DFG::ThreadData*)
10  0x117ab76e0 JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*)
11  0x117ab6334 JSC::DFG::Worklist::threadFunction(void*)
12  0x117f1a0c0 WTF::threadEntryPoint(void*)
13  0x117f1ad48 WTF::wtfThreadEntryPoint(void*)
14  0x7fff8c43b899 _pthread_body
15  0x7fff8c43b72a _pthread_struct_init
16  0x7fff8c43ffc9 thread_start
^C[31] $ LEAK: 1 WebPage
LEAK: 1 WebFrame
LEAK: 35692 WebCoreNode
LEAK: 15 CachedResource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989257</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-10 23:01:29 -0700</bug_when>
    <thetext>Thanks guys!  I&apos;m looking at this now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989261</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-10 23:09:35 -0700</bug_when>
    <thetext>I believe that the key issue is that the GetLocal corresponds to a captured variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989272</commentid>
    <comment_count>7</comment_count>
      <attachid>226394</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-10 23:51:27 -0700</bug_when>
    <thetext>Created attachment 226394
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989418</commentid>
    <comment_count>8</comment_count>
      <attachid>226394</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-11 09:42:07 -0700</bug_when>
    <thetext>Comment on attachment 226394
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=226394&amp;action=review

r=me

&gt; Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:264
&gt; +                    // but we shouldn&apos;t bother.

Not sure what you meant by &quot;we shouldn&apos;t bother&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989499</commentid>
    <comment_count>9</comment_count>
      <attachid>226394</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-11 19:06:17 -0700</bug_when>
    <thetext>Comment on attachment 226394
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=226394&amp;action=review

&gt; Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:265
&gt; +                    m_graph.dethread();

So Graph::dethread sets m_form to LoadStore. This results in an assertion failure inside fixupBlock for subsequent blocks
because we&apos;re assuming that m_grpah.m_form is either SSA or ThreadedCPS in that function.

We probably need to break out of the loop inside run() that iterates over code blocks when we&apos;re dethreading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989500</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-11 19:07:20 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 226394 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226394&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/dfg/DFGDCEPhase.cpp:265
&gt; &gt; +                    m_graph.dethread();
&gt; 
&gt; So Graph::dethread sets m_form to LoadStore. This results in an assertion failure inside fixupBlock for subsequent blocks
&gt; because we&apos;re assuming that m_grpah.m_form is either SSA or ThreadedCPS in that function.
&gt; 
&gt; We probably need to break out of the loop inside run() that iterates over code blocks when we&apos;re dethreading.

No, we just need to add a &quot;case LoadStore:&quot; in fixupBlock.  That case can fall through to ThreadedCPS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989530</commentid>
    <comment_count>11</comment_count>
      <attachid>226394</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-11 21:26:59 -0700</bug_when>
    <thetext>Comment on attachment 226394
the patch

This is the wrong approach.  Better patch coming shortly...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989533</commentid>
    <comment_count>12</comment_count>
      <attachid>226471</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-11 21:47:25 -0700</bug_when>
    <thetext>Created attachment 226471
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989534</commentid>
    <comment_count>13</comment_count>
      <attachid>226471</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-11 21:52:46 -0700</bug_when>
    <thetext>Comment on attachment 226471
the patch

Looks like this patch is missing a change log entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989536</commentid>
    <comment_count>14</comment_count>
      <attachid>226472</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-11 21:56:01 -0700</bug_when>
    <thetext>Created attachment 226472
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989661</commentid>
    <comment_count>15</comment_count>
      <attachid>226472</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-12 09:41:16 -0700</bug_when>
    <thetext>Comment on attachment 226472
the patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989894</commentid>
    <comment_count>16</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-03-12 18:51:25 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/165522</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226394</attachid>
            <date>2014-03-10 23:51:27 -0700</date>
            <delta_ts>2014-03-11 21:47:25 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>4019</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1NDM0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI0IEBA
CisyMDE0LTAzLTEwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogbm9kZS0+b3AoKSA9PSBQaGkgfHwgbm9kZS0+b3AoKSA9PSBTZXRB
cmd1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMwMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBJZiB3ZSByZW1vdmUgdGhlIGxhc3QgR2V0TG9jYWwgb24gYSBjYXB0dXJlZCB2YXJp
YWJsZSBpbiBhIGJhc2ljIGJsb2NrIGR1ZSB0byBEQ0UgKGkuZS4KKyAgICAgICAgaXRzIHJlc3Vs
dCB3YXMgdW51c2VkKSB0aGVuIHdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgdmFyaWFibGUtYXQtdGFp
bCBlbnRyeSB3aXRoIHRoZSBtb3N0CisgICAgICAgIHJlY2VudCByZWxldmFudCB0aGluZyB0aGF0
IGhhcHBlbmVkIHRvIHRoYXQgdmFyaWFibGUuIFdlIGNvdWxkIHNvcnQgb2YgcGxheSBpdCBmYXN0
IGFuZAorICAgICAgICBsb29zZSB3aXRoIGNhcHR1cmVkIHZhcmlhYmxlcyAoc2luY2UgbW9zdCBv
cHRpbWl6YXRpb25zIGRvbid0IHVzZSBDUFMgZGF0YSBmb3IgdGhlbSkgYnV0CisgICAgICAgIGlu
c3RlYWQsIEkgdGFrZSB0aGUgYXBwcm9hY2ggb2YgdHJpZ2dlcmluZyBhIHJldGhyZWFkaW5nLiBU
aGlzIHJldGhyZWFkaW5nIHdpbGwgYmUgcmFyZSBzbworICAgICAgICBpdCdzIG5vdCBhIGJpZyBk
ZWFsLiBBbmQgaXQncyBuaWNlIHRvIGVyciBvbiB0aGUgc2lkZSBvZiB3ZWxsLWZvcm1lZG5lc3Mu
CisKKyAgICAgICAgKiBkZmcvREZHRENFUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkRD
RVBoYXNlOjpjbGVhblZhcmlhYmxlcyk6CisgICAgICAgICogZGZnL0RGR1BsYW4uY3BwOgorICAg
ICAgICAoSlNDOjpERkc6OlBsYW46OmNvbXBpbGVJblRocmVhZEltcGwpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9kZWFkLWFjY2Vzcy10by1jYXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1h
LWxpdmUtc3RvcmUuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNC0wMy0xMCAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzdXJyZWN0IGJpdC1yb3R0
ZWQgSklUOjpwcm9iZSgpIG1lY2hhbmlzbS4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRENFUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRENFUGhhc2UuY3BwCShyZXZpc2lvbiAxNjU0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0RDRVBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjU5LDcgKzI1OSwxMiBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKG5v
ZGUtPm9wKCkgPT0gR2V0TG9jYWwpIHsKICAgICAgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hp
bGQxKCkubm9kZSgpOwotICAgICAgICAgICAgICAgIEFTU0VSVChub2RlLT5vcCgpID09IFBoaSB8
fCBub2RlLT5vcCgpID09IFNldEFyZ3VtZW50KTsKKyAgICAgICAgICAgICAgICBpZiAobm9kZS0+
dmFyaWFibGVBY2Nlc3NEYXRhKCktPmlzQ2FwdHVyZWQoKSkgeworICAgICAgICAgICAgICAgICAg
ICAvLyBUaGVyZSBtYXkgYmUgYW4gZWFybGllciBHZXRMb2NhbCBpbiB0aGUgYmxvY2suIENQUyBy
ZXRocmVhZGluZyBjYW4gZmluZCBpdAorICAgICAgICAgICAgICAgICAgICAvLyBidXQgd2Ugc2hv
dWxkbid0IGJvdGhlci4KKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5kZXRocmVhZCgpOwor
ICAgICAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgICAgICBBU1NFUlQobm9kZS0+
b3AoKSA9PSBQaGkgfHwgbm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudCk7CiAgICAgICAgICAgICAg
ICAgaWYgKG5vZGUtPnNob3VsZEdlbmVyYXRlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgdmFy
aWFibGVzW2ldID0gbm9kZTsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDE2NTQzMykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
NCw2ICsyNzQsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAg
ICAgICAgIHBlcmZvcm1TdG9yZUVsaW1pbmF0aW9uKGRmZyk7CiAgICAgICAgIHBlcmZvcm1DUFNS
ZXRocmVhZGluZyhkZmcpOwogICAgICAgICBwZXJmb3JtRENFKGRmZyk7CisgICAgICAgIHBlcmZv
cm1DUFNSZXRocmVhZGluZyhkZmcpOyAvLyBUaGlzIHdpbGwga2ljayBpbiB2ZXJ5IHJhcmVseSAt
IHByZXR0eSBtdWNoIG9ubHkgZm9yIGRlYWQgYWNjZXNzZXMgdG8gY2FwdHVyZWQgdmFyaWFibGVz
LgogICAgICAgICBwZXJmb3JtU3RhY2tMYXlvdXQoZGZnKTsKICAgICAgICAgcGVyZm9ybVZpcnR1
YWxSZWdpc3RlckFsbG9jYXRpb24oZGZnKTsKICAgICAgICAgcGVyZm9ybVdhdGNocG9pbnRDb2xs
ZWN0aW9uKGRmZyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Rl
YWQtYWNjZXNzLXRvLWNhcHR1cmVkLXZhcmlhYmxlLXByZWNlZGVkLWJ5LWEtbGl2ZS1zdG9yZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RlYWQt
YWNjZXNzLXRvLWNhcHR1cmVkLXZhcmlhYmxlLXByZWNlZGVkLWJ5LWEtbGl2ZS1zdG9yZS5qcwko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGVhZC1h
Y2Nlc3MtdG8tY2FwdHVyZWQtdmFyaWFibGUtcHJlY2VkZWQtYnktYS1saXZlLXN0b3JlLmpzCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICB2YXIg
eCA9IDQyOworICAgIChmdW5jdGlvbigpIHsgeCA9IDQzOyB9KSgpOworICAgIHgrKzsKKyAgICB2
YXIgcmVhbFJlc3VsdCA9IHg7CisgICAgKGZ1bmN0aW9uKCkgeyB4ID0gNDQ7IH0pKCk7CisgICAg
dmFyIGZha2VSZXN1bHQgPSB4OworICAgIHJldHVybiByZWFsUmVzdWx0OworfQorCitub0lubGlu
ZShmb28pOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVz
dWx0ID0gZm9vKCk7CisgICAgaWYgKHJlc3VsdCAhPSA0NCkKKyAgICAgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226471</attachid>
            <date>2014-03-11 21:47:25 -0700</date>
            <delta_ts>2014-03-11 21:56:01 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>11100</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCShy
ZXZpc2lvbiAxNjU0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJs
b2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDEzICsxMjgsMTYgQEAgQ1N0cmluZyBDb2Rl
QmxvY2s6OnNvdXJjZUNvZGVPbk9uZUxpbmUoKQogICAgIHJldHVybiByZWR1Y2VXaGl0ZXNwYWNl
KHNvdXJjZUNvZGVGb3JUb29scygpKTsKIH0KIAotdm9pZCBDb2RlQmxvY2s6OmR1bXBBc3N1bWlu
Z0pJVFR5cGUoUHJpbnRTdHJlYW0mIG91dCwgSklUQ29kZTo6SklUVHlwZSBqaXRUeXBlKSBjb25z
dAorQ1N0cmluZyBDb2RlQmxvY2s6Omhhc2hBc1N0cmluZ0lmUG9zc2libGUoKSBjb25zdAogewot
ICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiMiKTsKICAgICBpZiAoaGFzSGFzaCgpIHx8
IGlzU2FmZVRvQ29tcHV0ZUhhc2goKSkKLSAgICAgICAgb3V0LnByaW50KGhhc2goKSk7Ci0gICAg
ZWxzZQotICAgICAgICBvdXQucHJpbnQoIjxuby1oYXNoPiIpOworICAgICAgICByZXR1cm4gdG9D
U3RyaW5nKGhhc2goKSk7CisgICAgcmV0dXJuICI8bm8taGFzaD4iOworfQorCit2b2lkIENvZGVC
bG9jazo6ZHVtcEFzc3VtaW5nSklUVHlwZShQcmludFN0cmVhbSYgb3V0LCBKSVRDb2RlOjpKSVRU
eXBlIGppdFR5cGUpIGNvbnN0Cit7CisgICAgb3V0LnByaW50KGluZmVycmVkTmFtZSgpLCAiIyIs
IGhhc2hBc1N0cmluZ0lmUG9zc2libGUoKSk7CiAgICAgb3V0LnByaW50KCI6WyIsIFJhd1BvaW50
ZXIodGhpcyksICItPiIpOwogICAgIGlmICghIW1fYWx0ZXJuYXRpdmUpCiAgICAgICAgIG91dC5w
cmludChSYXdQb2ludGVyKG1fYWx0ZXJuYXRpdmUuZ2V0KCkpLCAiLT4iKTsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHJldmlzaW9uIDE2NTQzMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkod29ya2luZyBj
b3B5KQpAQCAtMTE3LDYgKzExNyw3IEBAIHB1YmxpYzoKICAgICBDb2RlQmxvY2tIYXNoIGhhc2go
KSBjb25zdDsKICAgICBib29sIGhhc0hhc2goKSBjb25zdDsKICAgICBib29sIGlzU2FmZVRvQ29t
cHV0ZUhhc2goKSBjb25zdDsKKyAgICBDU3RyaW5nIGhhc2hBc1N0cmluZ0lmUG9zc2libGUoKSBj
b25zdDsKICAgICBDU3RyaW5nIHNvdXJjZUNvZGVGb3JUb29scygpIGNvbnN0OyAvLyBOb3QgcXVp
dGUgdGhlIGFjdHVhbCBzb3VyY2Ugd2UgcGFyc2VkOyB0aGlzIHdpbGwgZG8gdGhpbmdzIGxpa2Ug
cHJlZml4IHRoZSBzb3VyY2UgZm9yIGEgZnVuY3Rpb24gd2l0aCBhIHJlaWZpZWQgc2lnbmF0dXJl
LgogICAgIENTdHJpbmcgc291cmNlQ29kZU9uT25lTGluZSgpIGNvbnN0OyAvLyBBcyBzb3VyY2VD
b2RlRm9yVG9vbHMoKSwgYnV0IHJlcGxhY2VzIGFsbCB3aGl0ZXNwYWNlIHJ1bnMgd2l0aCBhIHNp
bmdsZSBzcGFjZS4KICAgICB2b2lkIGR1bXBBc3N1bWluZ0pJVFR5cGUoUHJpbnRTdHJlYW0mLCBK
SVRDb2RlOjpKSVRUeXBlKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRl
Y29kZS9Db2RlT3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAJKHJldmlzaW9uIDE2NTQzMykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUy
LDYgKzE1MiwxMiBAQCBDb2RlQmxvY2tIYXNoIElubGluZUNhbGxGcmFtZTo6aGFzaCgpIGNvCiAg
ICAgICAgIHNwZWNpYWxpemF0aW9uS2luZCgpKS0+aGFzaCgpOwogfQogCitDU3RyaW5nIElubGlu
ZUNhbGxGcmFtZTo6aGFzaEFzU3RyaW5nSWZQb3NzaWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlLmdldCgpKS0+Y29kZUJsb2Nr
Rm9yKAorICAgICAgICBzcGVjaWFsaXphdGlvbktpbmQoKSktPmhhc2hBc1N0cmluZ0lmUG9zc2li
bGUoKTsKK30KKwogQ1N0cmluZyBJbmxpbmVDYWxsRnJhbWU6OmluZmVycmVkTmFtZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIGpzQ2FzdDxGdW5jdGlvbkV4ZWN1dGFibGUqPihleGVjdXRhYmxlLmdl
dCgpKS0+aW5mZXJyZWROYW1lKCkudXRmOCgpOwpAQCAtMTY0LDcgKzE3MCw3IEBAIENvZGVCbG9j
ayogSW5saW5lQ2FsbEZyYW1lOjpiYXNlbGluZUNvZGUKIAogdm9pZCBJbmxpbmVDYWxsRnJhbWU6
OmR1bXBCcmllZkZ1bmN0aW9uSW5mb3JtYXRpb24oUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsK
LSAgICBvdXQucHJpbnQoaW5mZXJyZWROYW1lKCksICIjIiwgaGFzaCgpKTsKKyAgICBvdXQucHJp
bnQoaW5mZXJyZWROYW1lKCksICIjIiwgaGFzaEFzU3RyaW5nSWZQb3NzaWJsZSgpKTsKIH0KIAog
dm9pZCBJbmxpbmVDYWxsRnJhbWU6OmR1bXBJbkNvbnRleHQoUHJpbnRTdHJlYW0mIG91dCwgRHVt
cENvbnRleHQqIGNvbnRleHQpIGNvbnN0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Db2RlT3JpZ2luLmgJKHJldmlzaW9uIDE2NTQzMykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9Db2RlT3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsx
NTEsNyBAQCBzdHJ1Y3QgSW5saW5lQ2FsbEZyYW1lIHsKICAgICAKICAgICBDU3RyaW5nIGluZmVy
cmVkTmFtZSgpIGNvbnN0OwogICAgIENvZGVCbG9ja0hhc2ggaGFzaCgpIGNvbnN0OworICAgIENT
dHJpbmcgaGFzaEFzU3RyaW5nSWZQb3NzaWJsZSgpIGNvbnN0OwogICAgIAogICAgIENvZGVCbG9j
ayogYmFzZWxpbmVDb2RlQmxvY2soKSBjb25zdDsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGluZ1BoYXNlLmNwcAkocmV2aXNp
b24gMTY1NDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDUFNSZXRocmVhZGlu
Z1BoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgYm9vbCBydW4oKQogICAgIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9ncmFwaC5tX3Jl
ZkNvdW50U3RhdGUgPT0gRXZlcnl0aGluZ0lzTGl2ZSk7CisgICAgICAgIAogICAgICAgICBpZiAo
bV9ncmFwaC5tX2Zvcm0gPT0gVGhyZWFkZWRDUFMpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEQ0VQaGFzZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEQ0VQaGFzZS5j
cHAJKHJldmlzaW9uIDE2NTQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRENF
UGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNTksNyArMjU5LDM5IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRM
b2NhbCkgewogICAgICAgICAgICAgICAgIG5vZGUgPSBub2RlLT5jaGlsZDEoKS5ub2RlKCk7Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKG5vZGUtPm9wKCkgPT0gUGhpIHx8IG5vZGUtPm9wKCkgPT0g
U2V0QXJndW1lbnQpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBJbiB0aGUgY2FzZSB0aGF0IHRoZSB2YXJpYWJsZSBpcyBjYXB0dXJlZCwgd2UgcmVhbGx5IHdh
bnQgdG8gYmUgYWJsZQorICAgICAgICAgICAgICAgIC8vIHRvIHJlcGxhY2UgdGhlIHZhcmlhYmxl
LWF0LXRhaWwgd2l0aCB0aGUgbGFzdCB1c2Ugb2YgdGhlIHZhcmlhYmxlIGluIHRoZSBzYW1lCisg
ICAgICAgICAgICAgICAgLy8gd2F5IHRoYXQgQ1BTIHJldGhyZWFkaW5nIHdvdWxkIGRvLiBUaGUg
Y2hpbGQgb2YgdGhlIEdldExvY2FsIGlzbid0IG5lY2Vzc2FyaWx5CisgICAgICAgICAgICAgICAg
Ly8gdGhlIHNhbWUgYXMgd2hhdCBDUFMgcmV0aHJlYWRpbmcgd291bGQgZG8uIEZvciBleGFtcGxl
LCB3ZSBtYXkgaGF2ZToKKyAgICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIGE6
IFNldExvY2FsKC4uLikgLy8gbGl2ZQorICAgICAgICAgICAgICAgIC8vIGI6IEdldExvY2FsKEBh
KSAvLyBsaXZlCisgICAgICAgICAgICAgICAgLy8gYzogR2V0TG9jYWwoQGEpIC8vIGRlYWQKKyAg
ICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIFdoZW4ga2lsbGluZyBAYywgdGhl
IGNvZGUgYmVsb3cgd2lsbCBzZXQgdGhlIHZhcmlhYmxlLWF0LXRhaWwgdG8gQGEsIHdoaWxlIENQ
UworICAgICAgICAgICAgICAgIC8vIHJldGhyZWFkaW5nIHdvdWxkIGhhdmUgc2V0IEBiLiBUaGlz
IGlzIGEgYmVuaWduIGJ1Zywgc2luY2UgYWxsIGNsaWVudHMgb2YgQ1BTCisgICAgICAgICAgICAg
ICAgLy8gb25seSB1c2UgdGhlIHZhcmlhYmxlLWF0LXRhaWwgb2YgY2FwdHVyZWQgdmFyaWFibGVz
IHRvIGdldCB0aGUKKyAgICAgICAgICAgICAgICAvLyBWYXJpYWJsZUFjY2Vzc0RhdGEgYW5kIG9i
c2VydmUgdGhhdCBpdCBpcyBpbiBmYWN0IGNhcHR1cmVkLiBCdXQsIHRoaXMgZmVlbHMKKyAgICAg
ICAgICAgICAgICAvLyBsaWtlIGl0IGNvdWxkIGNhdXNlIGJ1Z3MgaW4gdGhlIGZ1dHVyZS4KKyAg
ICAgICAgICAgICAgICAvLworICAgICAgICAgICAgICAgIC8vIEl0J3MgdGVtcHRpbmcgdG8ganVz
dCBkZXRocmVhZCBhbmQgdGhlbiBpbnZva2UgQ1BTIHJldGhyZWFkaW5nLCBidXQgQ1BTCisgICAg
ICAgICAgICAgICAgLy8gcmV0aHJlYWRpbmcgZmFpbHMgdG8gcHJlc2VydmUgZXhhY3QgcmVmLWNv
dW50cy4gU28gd2Ugd291bGQgbmVlZCBhIGZpeHBvaW50LgorICAgICAgICAgICAgICAgIC8vIEl0
J3MgcHJvYmFibHkgdGhlIGNhc2UgdGhhdCB0aGlzIGZpeHBvaW50IHdpbGwgYmUgZ3VhcmFudGVl
ZCB0byBjb252ZXJnZSBhZnRlcgorICAgICAgICAgICAgICAgIC8vIHRoZSBzZWNvbmQgaXRlcmF0
aW9uIChpLmUuIHRoZSBzZWNvbmQgcnVuIG9mIERDRSB3aWxsIG5vdCBraWxsIGFueXRoaW5nIGFu
ZCBzbworICAgICAgICAgICAgICAgIC8vIHdpbGwgbm90IG5lZWQgdG8gZGV0aHJlYWQpLCBidXQg
Zm9yIG5vdyB0aGUgc2FmZXN0IGFwcHJvYWNoIGlzIHByb2JhYmx5IGp1c3QgdG8KKyAgICAgICAg
ICAgICAgICAvLyBhbGxvdyBmb3IgdGhpcyB0aW55IGJpdCBvZiBzbG9wcGluZXNzLgorICAgICAg
ICAgICAgICAgIC8vCisgICAgICAgICAgICAgICAgLy8gQW5vdGhlciBwb3NzaWJsZSBzb2x1dGlv
biB3b3VsZCBiZSB0byBzaW1wbHkgc2F5IHRoYXQgRENFIGRldGhyZWFkcyBidXQgdGhlbgorICAg
ICAgICAgICAgICAgIC8vIHdlIG5ldmVyIHJldGhyZWFkIGJlZm9yZSBnb2luZyB0byB0aGUgYmFj
a2VuZC4gVGhhdCBmZWVscyBpbnR1aXRpdmVseSByaWdodAorICAgICAgICAgICAgICAgIC8vIGJl
Y2F1c2UgaXQncyB1bmxpa2VseSB0aGF0IGFueSBvZiB0aGUgcGhhc2VzIGFmdGVyIERDRSBpbiB0
aGUgYmFja2VuZCByZWx5IG9uCisgICAgICAgICAgICAgICAgLy8gVGhyZWFkZWRDUFMuCisgICAg
ICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMTE1CisgICAgICAgICAgICAgICAgQVNTRVJUKAorICAgICAg
ICAgICAgICAgICAgICBub2RlLT5vcCgpID09IFBoaSB8fCBub2RlLT5vcCgpID09IFNldEFyZ3Vt
ZW50CisgICAgICAgICAgICAgICAgICAgIHx8IG5vZGUtPnZhcmlhYmxlQWNjZXNzRGF0YSgpLT5p
c0NhcHR1cmVkKCkpOworICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmIChub2Rl
LT5zaG91bGRHZW5lcmF0ZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlc1tpXSA9
IG5vZGU7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHAJKHJl
dmlzaW9uIDE2NTQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFi
c3RyYWN0U3RhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsNyArMjU0LDcgQEAgYm9vbCBJ
blBsYWNlQWJzdHJhY3RTdGF0ZTo6bWVyZ2VTdGF0ZUF0VAogICAgIGlmIChub2RlLT52YXJpYWJs
ZUFjY2Vzc0RhdGEoKS0+aXNDYXB0dXJlZCgpKSB7CiAgICAgICAgIC8vIElmIGl0J3MgY2FwdHVy
ZWQgdGhlbiB3ZSBrbm93IHRoYXQgd2hhdGV2ZXIgdmFsdWUgd2FzIHN0b3JlZCBpbnRvIHRoZSB2
YXJpYWJsZSBsYXN0IGlzIHRoZQogICAgICAgICAvLyBvbmUgd2UgY2FyZSBhYm91dC4gVGhpcyBp
cyB0cnVlIGV2ZW4gaWYgdGhlIHZhcmlhYmxlIGF0IHRhaWwgaXMgZGVhZCwgd2hpY2ggbWlnaHQg
aGFwcGVuIGlmCi0gICAgICAgIC8vIHRoZSBsYXN0IHRoaW5nIHdlIGRpZCB0byB0aGUgdmFyaWFi
bGUgd2FzIGEgR2V0TG9jYWwgYW5kIHRoZW4gZW5kZWQgdXAgbm93IHVzaW5nIHRoZQorICAgICAg
ICAvLyB0aGUgbGFzdCB0aGluZyB3ZSBkaWQgdG8gdGhlIHZhcmlhYmxlIHdhcyBhIEdldExvY2Fs
IGFuZCB0aGVuIGVuZGVkIHVwIG5vdCB1c2luZyB0aGUKICAgICAgICAgLy8gR2V0TG9jYWwncyBy
ZXN1bHQuCiAgICAgICAgIAogICAgICAgICBzb3VyY2UgPSBpblZhcmlhYmxlOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRnVuY3Rpb25FeGVjdXRh
YmxlRHVtcC5jcHAJKHJldmlzaW9uIDE2NTQzMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZUR1bXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCwxMiAr
MzQsMTIgQEAgdm9pZCBGdW5jdGlvbkV4ZWN1dGFibGVEdW1wOjpkdW1wKFByaW50UwogewogICAg
IG91dC5wcmludChtX2V4ZWN1dGFibGUtPmluZmVycmVkTmFtZSgpLnN0cmluZygpLCAiIyIpOwog
ICAgIGlmIChtX2V4ZWN1dGFibGUtPmlzR2VuZXJhdGVkRm9yQ2FsbCgpKQotICAgICAgICBvdXQu
cHJpbnQobV9leGVjdXRhYmxlLT5jb2RlQmxvY2tGb3JDYWxsKCktPmhhc2goKSk7CisgICAgICAg
IG91dC5wcmludChtX2V4ZWN1dGFibGUtPmNvZGVCbG9ja0ZvckNhbGwoKS0+aGFzaEFzU3RyaW5n
SWZQb3NzaWJsZSgpKTsKICAgICBlbHNlCiAgICAgICAgIG91dC5wcmludCgiPG5vZ2VuPiIpOwog
ICAgIG91dC5wcmludCgiLyIpOwogICAgIGlmIChtX2V4ZWN1dGFibGUtPmlzR2VuZXJhdGVkRm9y
Q29uc3RydWN0KCkpCi0gICAgICAgIG91dC5wcmludChtX2V4ZWN1dGFibGUtPmNvZGVCbG9ja0Zv
ckNvbnN0cnVjdCgpLT5oYXNoKCkpOworICAgICAgICBvdXQucHJpbnQobV9leGVjdXRhYmxlLT5j
b2RlQmxvY2tGb3JDb25zdHJ1Y3QoKS0+aGFzaEFzU3RyaW5nSWZQb3NzaWJsZSgpKTsKICAgICBl
bHNlCiAgICAgICAgIG91dC5wcmludCgiPG5vZ2VuPiIpOwogICAgIG91dC5wcmludCgiOlsiLCBS
YXdQb2ludGVyKG1fZXhlY3V0YWJsZSksICJdIik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2RlYWQtYWNjZXNzLXRvLWNhcHR1cmVkLXZhcmlhYmxlLXByZWNlZGVk
LWJ5LWEtbGl2ZS1zdG9yZS1pbi1mdW5jdGlvbi13aXRoLW11bHRpcGxlLWJhc2ljLWJsb2Nrcy5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2RlYWQt
YWNjZXNzLXRvLWNhcHR1cmVkLXZhcmlhYmxlLXByZWNlZGVkLWJ5LWEtbGl2ZS1zdG9yZS1pbi1m
dW5jdGlvbi13aXRoLW11bHRpcGxlLWJhc2ljLWJsb2Nrcy5qcwkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGVhZC1hY2Nlc3MtdG8tY2FwdHVyZWQt
dmFyaWFibGUtcHJlY2VkZWQtYnktYS1saXZlLXN0b3JlLWluLWZ1bmN0aW9uLXdpdGgtbXVsdGlw
bGUtYmFzaWMtYmxvY2tzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjYgQEAKK2Z1bmN0
aW9uIGZvbyhwKSB7CisgICAgaWYgKHApIHsKKyAgICAgICAgdmFyIHggPSA0MjsKKyAgICAgICAg
KGZ1bmN0aW9uKCkgeyB4ID0gNDM7IH0pKCk7CisgICAgICAgIHgrKzsKKyAgICAgICAgdmFyIHJl
YWxSZXN1bHQgPSB4OworICAgICAgICAoZnVuY3Rpb24oKSB7IHggPSA0NDsgfSkoKTsKKyAgICAg
ICAgdmFyIGZha2VSZXN1bHQgPSB4OworICAgICAgICByZXR1cm4gcmVhbFJlc3VsdDsKKyAgICB9
CisgICAgdmFyIHkgPSA0NTsKKyAgICAoZnVuY3Rpb24oKSB7IHkgPSA0NjsgfSkoKTsKKyAgICB5
Kys7CisgICAgdmFyIHJlYWxSZXN1bHQyID0geTsKKyAgICAoZnVuY3Rpb24oKSB7IHkgPSA0Nzsg
fSkoKTsKKyAgICB2YXIgZmFrZVJlc3VsdDIgPSB5OworICAgIHJldHVybiByZWFsUmVzdWx0MjsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbyhpICYgMSk7CisgICAgaWYgKHJlc3VsdCAhPSAoKGkgJiAx
KSA/IDQ0IDogNDcpKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgd2l0aCBpID0g
IiArIGkgKyAiOiAiICsgcmVzdWx0OworfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rl
c3RzL3N0cmVzcy9kZWFkLWFjY2Vzcy10by1jYXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1h
LWxpdmUtc3RvcmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9kZWFkLWFjY2Vzcy10by1jYXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1hLWxp
dmUtc3RvcmUuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2RlYWQtYWNjZXNzLXRvLWNhcHR1cmVkLXZhcmlhYmxlLXByZWNlZGVkLWJ5LWEtbGl2
ZS1zdG9yZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBmb28o
KSB7CisgICAgdmFyIHggPSA0MjsKKyAgICAoZnVuY3Rpb24oKSB7IHggPSA0MzsgfSkoKTsKKyAg
ICB4Kys7CisgICAgdmFyIHJlYWxSZXN1bHQgPSB4OworICAgIChmdW5jdGlvbigpIHsgeCA9IDQ0
OyB9KSgpOworICAgIHZhciBmYWtlUmVzdWx0ID0geDsKKyAgICByZXR1cm4gcmVhbFJlc3VsdDsK
K30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7
CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQgIT0gNDQpCisgICAgICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226472</attachid>
            <date>2014-03-11 21:56:01 -0700</date>
            <delta_ts>2014-03-12 09:41:11 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14566</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1NDYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU2IEBA
CisyMDE0LTAzLTExICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogbm9kZS0+b3AoKSA9PSBQaGkgfHwgbm9kZS0+b3AoKSA9PSBTZXRB
cmd1bWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMwMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBUaGlzIHdhcyBhIGdyZWF0IGFzc2VydGlvbiwgYW5kIGl0IHJlcHJlc2VudHMgb3Vy
IHN0cmljdGVzdCBpbnRlcnByZXRhdGlvbiBvZiB0aGUgcnVsZXMgb2YKKyAgICAgICAgb3VyIGlu
dGVybWVkaWF0ZSByZXByZXNlbnRhdGlvbi4gSG93ZXZlciwgZml4aW5nIERDRSB0byBhY3R1YWxs
eSBwcmVzZXJ2ZSB0aGUgcmVsZXZhbnQKKyAgICAgICAgcHJvcGVydHkgd291bGQgYmUgaGFyZCwg
YW5kIGl0IHdvdWxkbid0IGhhdmUgYW4gb2JzZXJ2YWJsZSBlZmZlY3QgcmlnaHQgbm93IGJlY2F1
c2Ugbm9ib2R5CisgICAgICAgIGFjdHVhbGx5IHVzZXMgdGhlIHByb3Blcnkgb2YgQ1BTIHRoYXQg
dGhpcyBhc3NlcnRpb24gaXMgY2hlY2tpbmcgZm9yLgorICAgICAgICAKKyAgICAgICAgSW4gcGFy
dGljdWxhciwgd2UgZG8gYWx3YXlzIHJlcXVpcmUsIGFuZCByZWx5IG9uLCB0aGUgZmFjdCB0aGF0
IG5vbi1jYXB0dXJlZCB2YXJpYWJsZXMKKyAgICAgICAgaGF2ZSB2YXJpYWJsZXNBdFRhaWwgcmVm
ZXIgdG8gdGhlIGxhc3QgaW50ZXJlc3RpbmcgdXNlIG9mIHRoZSB2YXJpYWJsZTogYSBTZXRMb2Nh
bCBpZiB0aGUKKyAgICAgICAgYmxvY2sgYXNzaWducyB0byB0aGUgdmFyaWFibGUsIGEgR2V0TG9j
YWwgaWYgaXQgb25seSByZWFkcyBmcm9tIGl0LCBhbmQgYSBGbHVzaCwKKyAgICAgICAgUGhhbnRv
bUxvY2FsLCBvciBQaGkgb3RoZXJ3aXNlLiBXZSBkbyBwcmVzZXJ2ZSB0aGlzIHByb3BlcnR5IHN1
Y2Nlc3NmdWxseSBhbmQgRENFIHdhcyBub3QKKyAgICAgICAgYnJva2VuIGluIHRoaXMgcmVnYXJk
LiBCdXQsIGluIHRoZSBzdHJpY3Rlc3Qgc2Vuc2UsIENQUyBhbHNvIG1lYW5zIHRoYXQgZm9yIGNh
cHR1cmVkCisgICAgICAgIHZhcmlhYmxlcywgdmFyaWFibGVzQXRUYWlsIGFsc28gY29udGludWVz
IHRvIHBvaW50IHRvIHRoZSBsYXN0IHJlbGV2YW50IHVzZSBvZiB0aGUKKyAgICAgICAgdmFyaWFi
bGUuIEluIHBhcnRpY3VsYXIsIGlmIHRoZXJlIGFyZSBtdWx0aXBsZSBHZXRMb2NhbHMsIHRoZW4g
aXQgc2hvdWxkIHBvaW50IHRvIHRoZSBsYXN0CisgICAgICAgIG9uZS4gVGhpcyBpcyBoYXJkIGZv
ciBEQ0UgdG8gcHJlc2VydmUuIEFsc28sIG5vYm9keSByZWxpZXMgb24gdmFyaWFibGVzQXRUYWls
IGZvciBjYXB0dXJlZAorICAgICAgICB2YXJpYWJsZXMsIGV4Y2VwdCB0byBjaGVjayB0aGUgVmFy
aWFibGVBY2Nlc3NEYXRhOyBidXQgaW4gdGhhdCBjYXNlLCB3ZSBkb24ndCByZWFsbHkgbmVlZAor
ICAgICAgICB0aGUgKmxhc3QqIHJlbGV2YW50IHVzZSBvZiB0aGUgdmFyaWFibGUgLSBhbnkgbm9k
ZSB0aGF0IG1lbnRpb25zIHRoZSBzYW1lIHZhcmlhYmxlIHdpbGwgZG8KKyAgICAgICAganVzdCBm
aW5lLgorICAgICAgICAKKyAgICAgICAgU28sIHRoaXMgY2hhbmdlIGxvb3NlbnMgdGhlIGFzc2Vy
dGlvbiBhbmQgYWRkcyBhIGRldGFpbGVkIEZJWE1FIGRlc2NyaWJpbmcgd2hhdCB3ZSB3b3VsZAor
ICAgICAgICBoYXZlIHRvIGRvIGlmIHdlIHdhbnRlZCB0byBwcmVzZXJ2ZSB0aGUgbW9yZSBzdHJp
Y3QgcHJvcGVydHkuCisgICAgICAgIAorICAgICAgICBUaGlzIGFsc28gbWFrZXMgY2hhbmdlcyB0
byB2YXJpb3VzIGRlYnVnIHByaW50aW5nIHBhdGhzIHNvIHRoYXQgdmFsaWRhdGlvbiBkb2Vzbid0
IGNyYXNoCisgICAgICAgIGR1cmluZyBncmFwaCBkdW1wLiBUaGlzIGFsc28gYWRkcyB0ZXN0cyBm
b3IgdGhlIGludGVyZXN0aW5nIGNhc2VzIG9mIERDRSBmYWlsaW5nIHRvCisgICAgICAgIHByZXNl
cnZlIENQUyBpbiB0aGUgc3RyaWN0ZXN0IHNlbnNlLiBUaGlzIGFsc28gYXR0ZW1wdHMgdG8gd2lu
IHRoZSByZWNvcmQgZm9yIGxvbmdlc3QgdGVzdAorICAgICAgICBuYW1lLgorCisgICAgICAgICog
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpoYXNoQXNT
dHJpbmdJZlBvc3NpYmxlKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpkdW1wQXNzdW1pbmdK
SVRUeXBlKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKiBieXRl
Y29kZS9Db2RlT3JpZ2luLmNwcDoKKyAgICAgICAgKEpTQzo6SW5saW5lQ2FsbEZyYW1lOjpoYXNo
QXNTdHJpbmdJZlBvc3NpYmxlKToKKyAgICAgICAgKEpTQzo6SW5saW5lQ2FsbEZyYW1lOjpkdW1w
QnJpZWZGdW5jdGlvbkluZm9ybWF0aW9uKToKKyAgICAgICAgKiBieXRlY29kZS9Db2RlT3JpZ2lu
Lmg6CisgICAgICAgICogZGZnL0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkNQU1JldGhyZWFkaW5nUGhhc2U6OnJ1bik6CisgICAgICAgICogZGZnL0RGR0RD
RVBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpEQ0VQaGFzZTo6Y2xlYW5WYXJpYWJsZXMp
OgorICAgICAgICAqIGRmZy9ERkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6SW5QbGFjZUFic3RyYWN0U3RhdGU6Om1lcmdlU3RhdGVBdFRhaWwpOgorICAgICAg
ICAqIHJ1bnRpbWUvRnVuY3Rpb25FeGVjdXRhYmxlRHVtcC5jcHA6CisgICAgICAgIChKU0M6OkZ1
bmN0aW9uRXhlY3V0YWJsZUR1bXA6OmR1bXApOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9kZWFk
LWFjY2Vzcy10by1jYXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1hLWxpdmUtc3RvcmUtaW4t
ZnVuY3Rpb24td2l0aC1tdWx0aXBsZS1iYXNpYy1ibG9ja3MuanM6IEFkZGVkLgorICAgICAgICAo
Zm9vKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZGVhZC1hY2Nlc3MtdG8tY2FwdHVyZWQtdmFy
aWFibGUtcHJlY2VkZWQtYnktYS1saXZlLXN0b3JlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZvbyk6
CisKIDIwMTQtMDMtMTAgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBHZXRCeUlkIGxpc3QgY2FjaGluZyBzaG91bGQgdXNlIHNvbWV0aGluZyBvYmplY3Qtb3JpZW50
ZWQgcmF0aGVyIHRoYW4gUG9seW1vcnBoaWNBY2Nlc3NTdHJ1Y3R1cmVMaXN0CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAkocmV2aXNpb24gMTY1
NDMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEyOCwxMyArMTI4LDE2IEBAIENTdHJpbmcgQ29kZUJsb2NrOjpzb3Vy
Y2VDb2RlT25PbmVMaW5lKCkKICAgICByZXR1cm4gcmVkdWNlV2hpdGVzcGFjZShzb3VyY2VDb2Rl
Rm9yVG9vbHMoKSk7CiB9CiAKLXZvaWQgQ29kZUJsb2NrOjpkdW1wQXNzdW1pbmdKSVRUeXBlKFBy
aW50U3RyZWFtJiBvdXQsIEpJVENvZGU6OkpJVFR5cGUgaml0VHlwZSkgY29uc3QKK0NTdHJpbmcg
Q29kZUJsb2NrOjpoYXNoQXNTdHJpbmdJZlBvc3NpYmxlKCkgY29uc3QKIHsKLSAgICBvdXQucHJp
bnQoaW5mZXJyZWROYW1lKCksICIjIik7CiAgICAgaWYgKGhhc0hhc2goKSB8fCBpc1NhZmVUb0Nv
bXB1dGVIYXNoKCkpCi0gICAgICAgIG91dC5wcmludChoYXNoKCkpOwotICAgIGVsc2UKLSAgICAg
ICAgb3V0LnByaW50KCI8bm8taGFzaD4iKTsKKyAgICAgICAgcmV0dXJuIHRvQ1N0cmluZyhoYXNo
KCkpOworICAgIHJldHVybiAiPG5vLWhhc2g+IjsKK30KKwordm9pZCBDb2RlQmxvY2s6OmR1bXBB
c3N1bWluZ0pJVFR5cGUoUHJpbnRTdHJlYW0mIG91dCwgSklUQ29kZTo6SklUVHlwZSBqaXRUeXBl
KSBjb25zdAoreworICAgIG91dC5wcmludChpbmZlcnJlZE5hbWUoKSwgIiMiLCBoYXNoQXNTdHJp
bmdJZlBvc3NpYmxlKCkpOwogICAgIG91dC5wcmludCgiOlsiLCBSYXdQb2ludGVyKHRoaXMpLCAi
LT4iKTsKICAgICBpZiAoISFtX2FsdGVybmF0aXZlKQogICAgICAgICBvdXQucHJpbnQoUmF3UG9p
bnRlcihtX2FsdGVybmF0aXZlLmdldCgpKSwgIi0+Iik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCShyZXZpc2lvbiAxNjU0MzMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTEx
Nyw2ICsxMTcsNyBAQCBwdWJsaWM6CiAgICAgQ29kZUJsb2NrSGFzaCBoYXNoKCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNIYXNoKCkgY29uc3Q7CiAgICAgYm9vbCBpc1NhZmVUb0NvbXB1dGVIYXNoKCkg
Y29uc3Q7CisgICAgQ1N0cmluZyBoYXNoQXNTdHJpbmdJZlBvc3NpYmxlKCkgY29uc3Q7CiAgICAg
Q1N0cmluZyBzb3VyY2VDb2RlRm9yVG9vbHMoKSBjb25zdDsgLy8gTm90IHF1aXRlIHRoZSBhY3R1
YWwgc291cmNlIHdlIHBhcnNlZDsgdGhpcyB3aWxsIGRvIHRoaW5ncyBsaWtlIHByZWZpeCB0aGUg
c291cmNlIGZvciBhIGZ1bmN0aW9uIHdpdGggYSByZWlmaWVkIHNpZ25hdHVyZS4KICAgICBDU3Ry
aW5nIHNvdXJjZUNvZGVPbk9uZUxpbmUoKSBjb25zdDsgLy8gQXMgc291cmNlQ29kZUZvclRvb2xz
KCksIGJ1dCByZXBsYWNlcyBhbGwgd2hpdGVzcGFjZSBydW5zIHdpdGggYSBzaW5nbGUgc3BhY2Uu
CiAgICAgdm9pZCBkdW1wQXNzdW1pbmdKSVRUeXBlKFByaW50U3RyZWFtJiwgSklUQ29kZTo6SklU
VHlwZSkgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZU9y
aWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVPcmlnaW4uY3BwCShyZXZpc2lvbiAxNjU0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZU9yaWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw2ICsxNTIsMTIg
QEAgQ29kZUJsb2NrSGFzaCBJbmxpbmVDYWxsRnJhbWU6Omhhc2goKSBjbwogICAgICAgICBzcGVj
aWFsaXphdGlvbktpbmQoKSktPmhhc2goKTsKIH0KIAorQ1N0cmluZyBJbmxpbmVDYWxsRnJhbWU6
Omhhc2hBc1N0cmluZ0lmUG9zc2libGUoKSBjb25zdAoreworICAgIHJldHVybiBqc0Nhc3Q8RnVu
Y3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJsZS5nZXQoKSktPmNvZGVCbG9ja0ZvcigKKyAgICAg
ICAgc3BlY2lhbGl6YXRpb25LaW5kKCkpLT5oYXNoQXNTdHJpbmdJZlBvc3NpYmxlKCk7Cit9CisK
IENTdHJpbmcgSW5saW5lQ2FsbEZyYW1lOjppbmZlcnJlZE5hbWUoKSBjb25zdAogewogICAgIHJl
dHVybiBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4oZXhlY3V0YWJsZS5nZXQoKSktPmluZmVy
cmVkTmFtZSgpLnV0ZjgoKTsKQEAgLTE2NCw3ICsxNzAsNyBAQCBDb2RlQmxvY2sqIElubGluZUNh
bGxGcmFtZTo6YmFzZWxpbmVDb2RlCiAKIHZvaWQgSW5saW5lQ2FsbEZyYW1lOjpkdW1wQnJpZWZG
dW5jdGlvbkluZm9ybWF0aW9uKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiB7Ci0gICAgb3V0LnBy
aW50KGluZmVycmVkTmFtZSgpLCAiIyIsIGhhc2goKSk7CisgICAgb3V0LnByaW50KGluZmVycmVk
TmFtZSgpLCAiIyIsIGhhc2hBc1N0cmluZ0lmUG9zc2libGUoKSk7CiB9CiAKIHZvaWQgSW5saW5l
Q2FsbEZyYW1lOjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWFtJiBvdXQsIER1bXBDb250ZXh0KiBj
b250ZXh0KSBjb25zdApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVP
cmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29k
ZU9yaWdpbi5oCShyZXZpc2lvbiAxNjU0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZU9yaWdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNiArMTUxLDcgQEAgc3Ry
dWN0IElubGluZUNhbGxGcmFtZSB7CiAgICAgCiAgICAgQ1N0cmluZyBpbmZlcnJlZE5hbWUoKSBj
b25zdDsKICAgICBDb2RlQmxvY2tIYXNoIGhhc2goKSBjb25zdDsKKyAgICBDU3RyaW5nIGhhc2hB
c1N0cmluZ0lmUG9zc2libGUoKSBjb25zdDsKICAgICAKICAgICBDb2RlQmxvY2sqIGJhc2VsaW5l
Q29kZUJsb2NrKCkgY29uc3Q7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NQU1JldGhyZWFkaW5nUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDE2NTQzMykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ1BTUmV0aHJlYWRpbmdQaGFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMywg
MjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ0LDYgKzQ0LDggQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgcnVu
KCkKICAgICB7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fZ3JhcGgubV9yZWZDb3VudFN0YXRl
ID09IEV2ZXJ5dGhpbmdJc0xpdmUpOworICAgICAgICAKICAgICAgICAgaWYgKG1fZ3JhcGgubV9m
b3JtID09IFRocmVhZGVkQ1BTKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRENFUGhhc2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRENFUGhhc2UuY3BwCShyZXZpc2lv
biAxNjU0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RDRVBoYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMjU5LDcgKzI1OSwzOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKG5vZGUtPm9wKCkgPT0gR2V0TG9jYWwpIHsKICAg
ICAgICAgICAgICAgICBub2RlID0gbm9kZS0+Y2hpbGQxKCkubm9kZSgpOwotICAgICAgICAgICAg
ICAgIEFTU0VSVChub2RlLT5vcCgpID09IFBoaSB8fCBub2RlLT5vcCgpID09IFNldEFyZ3VtZW50
KTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogSW4gdGhlIGNh
c2UgdGhhdCB0aGUgdmFyaWFibGUgaXMgY2FwdHVyZWQsIHdlIHJlYWxseSB3YW50IHRvIGJlIGFi
bGUKKyAgICAgICAgICAgICAgICAvLyB0byByZXBsYWNlIHRoZSB2YXJpYWJsZS1hdC10YWlsIHdp
dGggdGhlIGxhc3QgdXNlIG9mIHRoZSB2YXJpYWJsZSBpbiB0aGUgc2FtZQorICAgICAgICAgICAg
ICAgIC8vIHdheSB0aGF0IENQUyByZXRocmVhZGluZyB3b3VsZCBkby4gVGhlIGNoaWxkIG9mIHRo
ZSBHZXRMb2NhbCBpc24ndCBuZWNlc3NhcmlseQorICAgICAgICAgICAgICAgIC8vIHRoZSBzYW1l
IGFzIHdoYXQgQ1BTIHJldGhyZWFkaW5nIHdvdWxkIGRvLiBGb3IgZXhhbXBsZSwgd2UgbWF5IGhh
dmU6CisgICAgICAgICAgICAgICAgLy8KKyAgICAgICAgICAgICAgICAvLyBhOiBTZXRMb2NhbCgu
Li4pIC8vIGxpdmUKKyAgICAgICAgICAgICAgICAvLyBiOiBHZXRMb2NhbChAYSkgLy8gbGl2ZQor
ICAgICAgICAgICAgICAgIC8vIGM6IEdldExvY2FsKEBhKSAvLyBkZWFkCisgICAgICAgICAgICAg
ICAgLy8KKyAgICAgICAgICAgICAgICAvLyBXaGVuIGtpbGxpbmcgQGMsIHRoZSBjb2RlIGJlbG93
IHdpbGwgc2V0IHRoZSB2YXJpYWJsZS1hdC10YWlsIHRvIEBhLCB3aGlsZSBDUFMKKyAgICAgICAg
ICAgICAgICAvLyByZXRocmVhZGluZyB3b3VsZCBoYXZlIHNldCBAYi4gVGhpcyBpcyBhIGJlbmln
biBidWcsIHNpbmNlIGFsbCBjbGllbnRzIG9mIENQUworICAgICAgICAgICAgICAgIC8vIG9ubHkg
dXNlIHRoZSB2YXJpYWJsZS1hdC10YWlsIG9mIGNhcHR1cmVkIHZhcmlhYmxlcyB0byBnZXQgdGhl
CisgICAgICAgICAgICAgICAgLy8gVmFyaWFibGVBY2Nlc3NEYXRhIGFuZCBvYnNlcnZlIHRoYXQg
aXQgaXMgaW4gZmFjdCBjYXB0dXJlZC4gQnV0LCB0aGlzIGZlZWxzCisgICAgICAgICAgICAgICAg
Ly8gbGlrZSBpdCBjb3VsZCBjYXVzZSBidWdzIGluIHRoZSBmdXR1cmUuCisgICAgICAgICAgICAg
ICAgLy8KKyAgICAgICAgICAgICAgICAvLyBJdCdzIHRlbXB0aW5nIHRvIGp1c3QgZGV0aHJlYWQg
YW5kIHRoZW4gaW52b2tlIENQUyByZXRocmVhZGluZywgYnV0IENQUworICAgICAgICAgICAgICAg
IC8vIHJldGhyZWFkaW5nIGZhaWxzIHRvIHByZXNlcnZlIGV4YWN0IHJlZi1jb3VudHMuIFNvIHdl
IHdvdWxkIG5lZWQgYSBmaXhwb2ludC4KKyAgICAgICAgICAgICAgICAvLyBJdCdzIHByb2JhYmx5
IHRoZSBjYXNlIHRoYXQgdGhpcyBmaXhwb2ludCB3aWxsIGJlIGd1YXJhbnRlZWQgdG8gY29udmVy
Z2UgYWZ0ZXIKKyAgICAgICAgICAgICAgICAvLyB0aGUgc2Vjb25kIGl0ZXJhdGlvbiAoaS5lLiB0
aGUgc2Vjb25kIHJ1biBvZiBEQ0Ugd2lsbCBub3Qga2lsbCBhbnl0aGluZyBhbmQgc28KKyAgICAg
ICAgICAgICAgICAvLyB3aWxsIG5vdCBuZWVkIHRvIGRldGhyZWFkKSwgYnV0IGZvciBub3cgdGhl
IHNhZmVzdCBhcHByb2FjaCBpcyBwcm9iYWJseSBqdXN0IHRvCisgICAgICAgICAgICAgICAgLy8g
YWxsb3cgZm9yIHRoaXMgdGlueSBiaXQgb2Ygc2xvcHBpbmVzcy4KKyAgICAgICAgICAgICAgICAv
LworICAgICAgICAgICAgICAgIC8vIEFub3RoZXIgcG9zc2libGUgc29sdXRpb24gd291bGQgYmUg
dG8gc2ltcGx5IHNheSB0aGF0IERDRSBkZXRocmVhZHMgYnV0IHRoZW4KKyAgICAgICAgICAgICAg
ICAvLyB3ZSBuZXZlciByZXRocmVhZCBiZWZvcmUgZ29pbmcgdG8gdGhlIGJhY2tlbmQuIFRoYXQg
ZmVlbHMgaW50dWl0aXZlbHkgcmlnaHQKKyAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIGl0J3Mg
dW5saWtlbHkgdGhhdCBhbnkgb2YgdGhlIHBoYXNlcyBhZnRlciBEQ0UgaW4gdGhlIGJhY2tlbmQg
cmVseSBvbgorICAgICAgICAgICAgICAgIC8vIFRocmVhZGVkQ1BTLgorICAgICAgICAgICAgICAg
IC8vCisgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzMDExNQorICAgICAgICAgICAgICAgIEFTU0VSVCgKKyAgICAgICAgICAgICAgICAg
ICAgbm9kZS0+b3AoKSA9PSBQaGkgfHwgbm9kZS0+b3AoKSA9PSBTZXRBcmd1bWVudAorICAgICAg
ICAgICAgICAgICAgICB8fCBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEoKS0+aXNDYXB0dXJlZCgp
KTsKKyAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBpZiAobm9kZS0+c2hvdWxkR2Vu
ZXJhdGUoKSkgewogICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXNbaV0gPSBub2RlOwogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSW5QbGFjZUFic3RyYWN0U3RhdGUuY3BwCShyZXZpc2lvbiAxNjU0
MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0luUGxhY2VBYnN0cmFjdFN0YXRl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU0LDcgKzI1NCw3IEBAIGJvb2wgSW5QbGFjZUFic3Ry
YWN0U3RhdGU6Om1lcmdlU3RhdGVBdFQKICAgICBpZiAobm9kZS0+dmFyaWFibGVBY2Nlc3NEYXRh
KCktPmlzQ2FwdHVyZWQoKSkgewogICAgICAgICAvLyBJZiBpdCdzIGNhcHR1cmVkIHRoZW4gd2Ug
a25vdyB0aGF0IHdoYXRldmVyIHZhbHVlIHdhcyBzdG9yZWQgaW50byB0aGUgdmFyaWFibGUgbGFz
dCBpcyB0aGUKICAgICAgICAgLy8gb25lIHdlIGNhcmUgYWJvdXQuIFRoaXMgaXMgdHJ1ZSBldmVu
IGlmIHRoZSB2YXJpYWJsZSBhdCB0YWlsIGlzIGRlYWQsIHdoaWNoIG1pZ2h0IGhhcHBlbiBpZgot
ICAgICAgICAvLyB0aGUgbGFzdCB0aGluZyB3ZSBkaWQgdG8gdGhlIHZhcmlhYmxlIHdhcyBhIEdl
dExvY2FsIGFuZCB0aGVuIGVuZGVkIHVwIG5vdyB1c2luZyB0aGUKKyAgICAgICAgLy8gdGhlIGxh
c3QgdGhpbmcgd2UgZGlkIHRvIHRoZSB2YXJpYWJsZSB3YXMgYSBHZXRMb2NhbCBhbmQgdGhlbiBl
bmRlZCB1cCBub3QgdXNpbmcgdGhlCiAgICAgICAgIC8vIEdldExvY2FsJ3MgcmVzdWx0LgogICAg
ICAgICAKICAgICAgICAgc291cmNlID0gaW5WYXJpYWJsZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZUR1bXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uRXhlY3V0YWJsZUR1bXAuY3Bw
CShyZXZpc2lvbiAxNjU0MzMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9GdW5j
dGlvbkV4ZWN1dGFibGVEdW1wLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsMTIgKzM0LDEyIEBAIHZv
aWQgRnVuY3Rpb25FeGVjdXRhYmxlRHVtcDo6ZHVtcChQcmludFMKIHsKICAgICBvdXQucHJpbnQo
bV9leGVjdXRhYmxlLT5pbmZlcnJlZE5hbWUoKS5zdHJpbmcoKSwgIiMiKTsKICAgICBpZiAobV9l
eGVjdXRhYmxlLT5pc0dlbmVyYXRlZEZvckNhbGwoKSkKLSAgICAgICAgb3V0LnByaW50KG1fZXhl
Y3V0YWJsZS0+Y29kZUJsb2NrRm9yQ2FsbCgpLT5oYXNoKCkpOworICAgICAgICBvdXQucHJpbnQo
bV9leGVjdXRhYmxlLT5jb2RlQmxvY2tGb3JDYWxsKCktPmhhc2hBc1N0cmluZ0lmUG9zc2libGUo
KSk7CiAgICAgZWxzZQogICAgICAgICBvdXQucHJpbnQoIjxub2dlbj4iKTsKICAgICBvdXQucHJp
bnQoIi8iKTsKICAgICBpZiAobV9leGVjdXRhYmxlLT5pc0dlbmVyYXRlZEZvckNvbnN0cnVjdCgp
KQotICAgICAgICBvdXQucHJpbnQobV9leGVjdXRhYmxlLT5jb2RlQmxvY2tGb3JDb25zdHJ1Y3Qo
KS0+aGFzaCgpKTsKKyAgICAgICAgb3V0LnByaW50KG1fZXhlY3V0YWJsZS0+Y29kZUJsb2NrRm9y
Q29uc3RydWN0KCktPmhhc2hBc1N0cmluZ0lmUG9zc2libGUoKSk7CiAgICAgZWxzZQogICAgICAg
ICBvdXQucHJpbnQoIjxub2dlbj4iKTsKICAgICBvdXQucHJpbnQoIjpbIiwgUmF3UG9pbnRlciht
X2V4ZWN1dGFibGUpLCAiXSIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0
cmVzcy9kZWFkLWFjY2Vzcy10by1jYXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1hLWxpdmUt
c3RvcmUtaW4tZnVuY3Rpb24td2l0aC1tdWx0aXBsZS1iYXNpYy1ibG9ja3MuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZWFkLWFjY2Vzcy10by1j
YXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1hLWxpdmUtc3RvcmUtaW4tZnVuY3Rpb24td2l0
aC1tdWx0aXBsZS1iYXNpYy1ibG9ja3MuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2RlYWQtYWNjZXNzLXRvLWNhcHR1cmVkLXZhcmlhYmxlLXBy
ZWNlZGVkLWJ5LWEtbGl2ZS1zdG9yZS1pbi1mdW5jdGlvbi13aXRoLW11bHRpcGxlLWJhc2ljLWJs
b2Nrcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI2IEBACitmdW5jdGlvbiBmb28ocCkg
eworICAgIGlmIChwKSB7CisgICAgICAgIHZhciB4ID0gNDI7CisgICAgICAgIChmdW5jdGlvbigp
IHsgeCA9IDQzOyB9KSgpOworICAgICAgICB4Kys7CisgICAgICAgIHZhciByZWFsUmVzdWx0ID0g
eDsKKyAgICAgICAgKGZ1bmN0aW9uKCkgeyB4ID0gNDQ7IH0pKCk7CisgICAgICAgIHZhciBmYWtl
UmVzdWx0ID0geDsKKyAgICAgICAgcmV0dXJuIHJlYWxSZXN1bHQ7CisgICAgfQorICAgIHZhciB5
ID0gNDU7CisgICAgKGZ1bmN0aW9uKCkgeyB5ID0gNDY7IH0pKCk7CisgICAgeSsrOworICAgIHZh
ciByZWFsUmVzdWx0MiA9IHk7CisgICAgKGZ1bmN0aW9uKCkgeyB5ID0gNDc7IH0pKCk7CisgICAg
dmFyIGZha2VSZXN1bHQyID0geTsKKyAgICByZXR1cm4gcmVhbFJlc3VsdDI7Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oaSAmIDEpOworICAgIGlmIChyZXN1bHQgIT0gKChpICYgMSkgPyA0NCA6IDQ3
KSkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IHdpdGggaSA9ICIgKyBpICsgIjog
IiArIHJlc3VsdDsKK30KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZGVhZC1hY2Nlc3MtdG8tY2FwdHVyZWQtdmFyaWFibGUtcHJlY2VkZWQtYnktYS1saXZlLXN0b3Jl
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGVh
ZC1hY2Nlc3MtdG8tY2FwdHVyZWQtdmFyaWFibGUtcHJlY2VkZWQtYnktYS1saXZlLXN0b3JlLmpz
CShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9kZWFk
LWFjY2Vzcy10by1jYXB0dXJlZC12YXJpYWJsZS1wcmVjZWRlZC1ieS1hLWxpdmUtc3RvcmUuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gZm9vKCkgeworICAgIHZh
ciB4ID0gNDI7CisgICAgKGZ1bmN0aW9uKCkgeyB4ID0gNDM7IH0pKCk7CisgICAgeCsrOworICAg
IHZhciByZWFsUmVzdWx0ID0geDsKKyAgICAoZnVuY3Rpb24oKSB7IHggPSA0NDsgfSkoKTsKKyAg
ICB2YXIgZmFrZVJlc3VsdCA9IHg7CisgICAgcmV0dXJuIHJlYWxSZXN1bHQ7Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHZhciBy
ZXN1bHQgPSBmb28oKTsKKyAgICBpZiAocmVzdWx0ICE9IDQ0KQorICAgICAgICB0aHJvdyAiRXJy
b3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9Cg==
</data>
<flag name="review"
          id="250708"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>