<?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>124951</bug_id>
          
          <creation_ts>2013-11-27 15:27:08 -0800</creation_ts>
          <short_desc>Finally fix some obvious Bartlett bugs</short_desc>
          <delta_ts>2013-11-27 16:20:35 -0800</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>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>954617</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-27 15:27:08 -0800</bug_when>
    <thetext>The obvious thing to do in a Bartlett collector is to ensure that the part of the stack that is below its current position is all zero.  You don&apos;t want to do that every time you fiddle with the stack, but you can do it at some key times - GC or OSR entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954618</commentid>
    <comment_count>1</comment_count>
      <attachid>217970</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-27 15:30:59 -0800</bug_when>
    <thetext>Created attachment 217970
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954619</commentid>
    <comment_count>2</comment_count>
      <attachid>217970</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-27 16:12:23 -0800</bug_when>
    <thetext>Comment on attachment 217970
the patch

Very exciting! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954620</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-27 16:19:20 -0800</bug_when>
    <thetext>This is perf-neutral if you consider the normal way we do measurements.  But as the ChangeLog states, it&apos;s a *big deal* for when you breathe on splay in any way.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r159825)
&quot;SanitizeStack&quot; at /Volumes/Data/fromMiniMe/tertiary/OpenSource/WebKitBuild/Release/jsc (r159825)

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                        TipOfTree               SanitizeStack                                   
SunSpider:
   3d-cube                                            7.7230+-0.0545     ?      7.7404+-0.1754        ?
   3d-morph                                           8.6507+-0.1028            8.6410+-0.2192        
   3d-raytrace                                        8.7073+-0.1923     ?      8.9042+-0.2438        ? might be 1.0226x slower
   access-binary-trees                                2.0042+-0.0260            1.9949+-0.0119        
   access-fannkuch                                    7.9470+-0.1004            7.8858+-0.2495        
   access-nbody                                       4.2484+-0.0388     ?      4.2705+-0.1325        ?
   access-nsieve                                      4.8582+-0.2891     ?      5.0015+-0.1127        ? might be 1.0295x slower
   bitops-3bit-bits-in-byte                           1.8060+-0.0064     ?      1.8087+-0.0100        ?
   bitops-bits-in-byte                                7.2385+-0.3414     ?      7.2862+-0.0597        ?
   bitops-bitwise-and                                 2.9542+-0.0317            2.9114+-0.0701          might be 1.0147x faster
   bitops-nsieve-bits                                 4.5434+-0.1880     ?      4.6066+-0.0083        ? might be 1.0139x slower
   controlflow-recursive                              3.1380+-0.0469            3.1335+-0.0186        
   crypto-aes                                         5.4031+-0.0202     ?      5.4387+-0.0267        ?
   crypto-md5                                         3.1416+-0.0498     ?      3.1448+-0.1387        ?
   crypto-sha1                                        2.9551+-0.0136            2.9525+-0.0246        
   date-format-tofte                                 11.3863+-0.4420           11.2719+-0.1398          might be 1.0102x faster
   date-format-xparb                                  8.4910+-0.4816     ?      8.5724+-0.3055        ?
   math-cordic                                        4.2089+-0.0196     ?      4.2225+-0.0459        ?
   math-partial-sums                                 10.1462+-0.0373     ?     10.2656+-0.1801        ? might be 1.0118x slower
   math-spectral-norm                                 2.7340+-0.0629            2.7310+-0.0154        
   regexp-dna                                        12.7838+-0.2187     ?     12.9282+-0.1422        ? might be 1.0113x slower
   string-base64                                      5.4198+-0.0328            5.4099+-0.0474        
   string-fasta                                      10.2063+-0.2705     ?     10.3498+-0.4985        ? might be 1.0141x slower
   string-tagcloud                                   14.9371+-0.3454     ?     14.9744+-0.1761        ?
   string-unpack-code                                31.7152+-6.3491           29.7375+-0.1811          might be 1.0665x faster
   string-validate-input                              7.4019+-0.6139            7.0229+-0.1234          might be 1.0540x faster

   &lt;arithmetic&gt; *                                     7.4904+-0.2863            7.4310+-0.0476          might be 1.0080x faster
   &lt;geometric&gt;                                        5.9652+-0.0741            5.9621+-0.0285          might be 1.0005x faster
   &lt;harmonic&gt;                                         4.8689+-0.0261     ?      4.8709+-0.0116        ? might be 1.0004x slower

                                                        TipOfTree               SanitizeStack                                   
LongSpider:
   3d-cube                                         2806.7401+-86.6156    ^   2698.0599+-10.4857       ^ definitely 1.0403x faster
   3d-morph                                        1499.2999+-1.9211         1497.8945+-1.7772        
   3d-raytrace                                     1517.3064+-57.6426        1511.6467+-10.5663       
   access-binary-trees                             2244.5419+-94.3897        2185.2230+-12.5940         might be 1.0271x faster
   access-fannkuch                                  668.2514+-0.7516          664.6473+-10.8552       
   access-nbody                                    1496.2232+-3.0286         1495.6696+-0.5764        
   access-nsieve                                   1549.2288+-9.2083     ?   1556.9185+-9.1605        ?
   bitops-3bit-bits-in-byte                         121.2852+-0.2945     ?    121.3745+-0.0974        ?
   bitops-bits-in-byte                              638.9477+-3.4559          637.3329+-2.0107        
   bitops-nsieve-bits                              1046.0585+-2.1467     ?   1046.2405+-1.5613        ?
   controlflow-recursive                           1489.9019+-1.8370     ?   1491.4940+-2.4839        ?
   crypto-aes                                      1650.2003+-6.7320     ?   1653.3613+-33.0644       ?
   crypto-md5                                      1163.0197+-3.3245     ?   1179.9300+-55.4331       ? might be 1.0145x slower
   crypto-sha1                                     1618.0135+-7.2340         1616.7369+-6.5138        
   date-format-tofte                               1190.9562+-41.6368        1173.5876+-40.7106         might be 1.0148x faster
   date-format-xparb                               1472.1722+-59.5402    ?   1483.2620+-50.1133       ?
   math-cordic                                     1733.5922+-0.7589     ?   1738.8733+-16.5955       ?
   math-partial-sums                               1322.4847+-44.0024        1309.9805+-3.8920        
   math-spectral-norm                              1825.9061+-0.7341     ?   1827.8899+-6.9929        ?
   string-base64                                    512.5270+-25.3596         504.8040+-5.9834          might be 1.0153x faster
   string-fasta                                     990.0941+-6.9084     ?    996.3492+-4.9985        ?
   string-tagcloud                                  379.4710+-1.1007     !    382.8420+-1.4078        ! definitely 1.0089x slower

   &lt;arithmetic&gt;                                    1315.2828+-11.9232        1307.9145+-4.3235          might be 1.0056x faster
   &lt;geometric&gt; *                                   1118.5070+-7.2060         1115.0180+-3.1340          might be 1.0031x faster
   &lt;harmonic&gt;                                       801.2235+-3.0972          800.3534+-1.2119          might be 1.0011x faster

                                                        TipOfTree               SanitizeStack                                   
V8Spider:
   crypto                                            79.7162+-1.3527           79.5633+-0.6875        
   deltablue                                         99.1121+-2.5909           98.3615+-2.3015        
   earley-boyer                                      71.6380+-2.9120           71.2197+-0.6317        
   raytrace                                          39.6763+-0.5814           39.6075+-0.2574        
   regexp                                            99.4262+-0.8666           98.7952+-0.6504        
   richards                                         133.8400+-2.1225     ?    134.4115+-4.7856        ?
   splay                                             46.3669+-3.3185     ?     46.8315+-2.1618        ? might be 1.0100x slower

   &lt;arithmetic&gt;                                      81.3965+-0.8572           81.2557+-0.9187          might be 1.0017x faster
   &lt;geometric&gt; *                                     75.3909+-1.2004           75.2957+-0.6792          might be 1.0013x faster
   &lt;harmonic&gt;                                        69.3599+-1.5275           69.3378+-0.6794          might be 1.0003x faster

                                                        TipOfTree               SanitizeStack                                   
Octane and V8v7:
   encrypt                                           0.47191+-0.02240          0.46576+-0.00182         might be 1.0132x faster
   decrypt                                           8.55898+-0.01126    ?     8.56968+-0.00330       ?
   deltablue                                x2       0.56585+-0.01193          0.56433+-0.01090       
   earley                                            0.91043+-0.02474          0.91009+-0.03121       
   boyer                                            12.23468+-0.07809    ?    12.33902+-0.39410       ?
   raytrace                                 x2       4.28421+-0.15736    ?     4.31446+-0.13869       ?
   regexp                                   x2      33.23191+-0.44446    ?    33.51109+-1.42702       ?
   richards                                 x2       0.42989+-0.04726    ?     0.43751+-0.03279       ? might be 1.0177x slower
   splay                                    x2       0.63016+-0.00335    ?     0.63453+-0.00715       ?
   navier-stokes                            x2      10.93438+-0.00772    ?    10.94351+-0.01781       ?
   closure                                           0.42240+-0.00161    ?     0.42352+-0.00260       ?
   jquery                                            6.09880+-0.02252    ?     6.28320+-0.44560       ? might be 1.0302x slower
   gbemu                                    x2      71.88257+-0.46340    ?    72.09858+-0.93748       ?
   mandreel                                 x2     142.34704+-0.35777        142.26104+-0.36853       
   pdfjs                                    x2     100.91978+-1.10373    ?   102.02749+-0.86519       ? might be 1.0110x slower
   box2d                                    x2      35.38358+-0.56139         35.06946+-0.40265       

V8v7:
   &lt;arithmetic&gt;                                      7.64555+-0.04012    ?     7.69346+-0.18461       ? might be 1.0063x slower
   &lt;geometric&gt; *                                     2.51444+-0.05153    ?     2.52596+-0.02897       ? might be 1.0046x slower
   &lt;harmonic&gt;                                        1.03249+-0.04411    ?     1.03739+-0.02242       ? might be 1.0047x slower

Octane including V8v7:
   &lt;arithmetic&gt;                                     31.91984+-0.02604    ?    32.02751+-0.19507       ? might be 1.0034x slower
   &lt;geometric&gt; *                                     6.98190+-0.09162    ?     7.01258+-0.06036       ? might be 1.0044x slower
   &lt;harmonic&gt;                                        1.43272+-0.05273    ?     1.43943+-0.02569       ? might be 1.0047x slower

                                                        TipOfTree               SanitizeStack                                   
Kraken:
   ai-astar                                          494.056+-1.260            493.903+-1.120         
   audio-beat-detection                              236.953+-2.367      ?     236.968+-6.440         ?
   audio-dft                                         290.770+-3.230            288.893+-1.566         
   audio-fft                                         143.037+-0.397            142.779+-0.224         
   audio-oscillator                                  247.213+-10.770           243.654+-0.915           might be 1.0146x faster
   imaging-darkroom                                  311.918+-79.881           286.077+-2.184           might be 1.0903x faster
   imaging-desaturate                                158.322+-0.337      ?     159.202+-2.684         ?
   imaging-gaussian-blur                             362.702+-0.562            362.677+-0.380         
   json-parse-financial                               81.245+-3.529             80.546+-0.453         
   json-stringify-tinderbox                          103.669+-0.660      ?     105.102+-0.984         ? might be 1.0138x slower
   stanford-crypto-aes                                90.643+-3.035      ?      91.460+-1.108         ?
   stanford-crypto-ccm                                99.730+-4.230      ?     102.807+-2.378         ? might be 1.0309x slower
   stanford-crypto-pbkdf2                            255.925+-1.589      !     265.479+-2.811         ! definitely 1.0373x slower
   stanford-crypto-sha256-iterative                  114.322+-1.313      ?     114.590+-1.340         ?

   &lt;arithmetic&gt; *                                    213.608+-7.308            212.438+-0.382           might be 1.0055x faster
   &lt;geometric&gt;                                       183.107+-5.106            182.942+-0.415           might be 1.0009x faster
   &lt;harmonic&gt;                                        157.787+-3.619      ?     158.305+-0.419         ? might be 1.0033x slower

                                                        TipOfTree               SanitizeStack                                   
JSRegress:
   adapt-to-double-divide                            22.6761+-0.1843     ?     22.7277+-0.2150        ?
   aliased-arguments-getbyval                         0.9590+-0.0068            0.9572+-0.0036        
   allocate-big-object                                2.6200+-0.0122            2.6185+-0.0343        
   arity-mismatch-inlining                            0.9321+-0.0173            0.9168+-0.0064          might be 1.0166x faster
   array-access-polymorphic-structure                 9.8262+-0.0518            9.7321+-0.3313        
   array-nonarray-polymorhpic-access                 56.5706+-1.0879     ?    101.7098+-145.2643      ? might be 1.7979x slower
   array-with-double-add                              5.6855+-0.2141     ?      5.7725+-0.2765        ? might be 1.0153x slower
   array-with-double-increment                        4.3523+-0.0106            4.2546+-0.1891          might be 1.0230x faster
   array-with-double-mul-add                          6.8571+-0.0886            6.8420+-0.0968        
   array-with-double-sum                              8.0270+-0.1411     ?      8.1545+-0.2138        ? might be 1.0159x slower
   array-with-int32-add-sub                          10.3670+-0.2390     ?     10.6257+-0.3305        ? might be 1.0250x slower
   array-with-int32-or-double-sum                     8.0985+-0.0916            7.9429+-0.2041          might be 1.0196x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                    119.0945+-1.9709     ?    119.1904+-1.4630        ?
   ArrayBuffer-DataView-alloc-long-lived             30.2508+-0.7853     ?     30.9540+-0.5879        ? might be 1.0232x slower
   ArrayBuffer-Int32Array-byteOffset                  7.0743+-0.0782            7.0483+-0.0130        
   ArrayBuffer-Int8Array-alloc-huge-long-lived   
                                                    214.8141+-2.9588     ?    217.2603+-2.1504        ? might be 1.0114x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented   
                                                    165.2525+-2.2852     ?    168.0956+-3.3623        ? might be 1.0172x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    117.7887+-3.8697     ?    121.0142+-9.3241        ? might be 1.0274x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     48.9536+-0.3760     ?     49.9091+-1.3377        ? might be 1.0195x slower
   ArrayBuffer-Int8Array-alloc-long-lived            30.6033+-1.1588     ?     31.1758+-0.6225        ? might be 1.0187x slower
   ArrayBuffer-Int8Array-alloc                       26.5809+-1.1273     ?     27.8334+-1.1767        ? might be 1.0471x slower
   asmjs_bool_bug                                     9.4610+-0.1935     ?      9.4893+-0.0768        ?
   basic-set                                         21.4275+-0.1409     ?     23.2465+-3.1728        ? might be 1.0849x slower
   big-int-mul                                        5.5223+-0.0672            5.4802+-0.0277        
   boolean-test                                       4.3268+-0.0108     ?      4.3323+-0.0113        ?
   branch-fold                                        4.9551+-0.0204     ?      4.9557+-0.0117        ?
   cast-int-to-double                                12.3935+-0.0265           12.2786+-0.2095        
   cell-argument                                     16.2903+-0.8266           16.1346+-1.1303        
   cfg-simplify                                       3.9554+-0.0090            3.9503+-0.0102        
   cmpeq-obj-to-obj-other                            13.0160+-1.3198           12.1685+-1.2118          might be 1.0697x faster
   constant-test                                      8.7445+-0.1974     ?      8.8486+-0.2228        ? might be 1.0119x slower
   DataView-custom-properties                       124.7344+-2.1113     ?    124.7809+-1.5478        ?
   delay-tear-off-arguments-strictmode                3.5204+-0.0294            3.5137+-0.0226        
   destructuring-arguments-length                   169.8019+-2.8996     ?    172.4662+-2.9274        ? might be 1.0157x slower
   destructuring-arguments                            8.8872+-0.0566            8.7162+-0.2538          might be 1.0196x faster
   destructuring-swap                                 8.5507+-0.1473     ?      8.6375+-0.2695        ? might be 1.0102x slower
   direct-arguments-getbyval                          0.8337+-0.0170            0.8295+-0.0132        
   double-pollution-getbyval                         11.0217+-0.2144     ?     11.0529+-0.0179        ?
   double-pollution-putbyoffset                       5.9985+-0.1666            5.8312+-0.0469          might be 1.0287x faster
   empty-string-plus-int                             10.7546+-0.2373     ?     11.4810+-0.5322        ? might be 1.0675x slower
   emscripten-cube2hash                              50.2189+-0.1002     ?     51.3340+-2.1054        ? might be 1.0222x slower
   emscripten-memops                               8398.7665+-45.0201        8378.7040+-4.5956        
   external-arguments-getbyval                        1.9963+-0.0937     ?      2.0334+-0.0648        ? might be 1.0186x slower
   external-arguments-putbyval                        3.0029+-0.0114     ?      3.0071+-0.0550        ?
   Float32Array-matrix-mult                           6.3350+-0.0534     ?      6.3568+-0.0871        ?
   Float32Array-to-Float64Array-set                  94.8268+-1.9665     ?     95.1838+-4.4005        ?
   Float64Array-alloc-long-lived                    102.9706+-1.4973     ?    103.7778+-0.3447        ?
   Float64Array-to-Int16Array-set                   116.6866+-1.0349     ?    117.3914+-2.2287        ?
   fold-double-to-int                                26.2928+-1.4385           25.7225+-0.6463          might be 1.0222x faster
   for-of-iterate-array-entries                       8.4568+-0.2361     ?      8.6274+-0.0793        ? might be 1.0202x slower
   for-of-iterate-array-keys                          3.4432+-0.1154     ?      3.5779+-0.1962        ? might be 1.0391x slower
   for-of-iterate-array-values                        2.9808+-0.0565            2.9202+-0.1760          might be 1.0208x faster
   function-dot-apply                                 3.1213+-0.0172     ?      3.1334+-0.0238        ?
   function-test                                      4.7019+-0.0096     ?      4.8082+-0.1179        ? might be 1.0226x slower
   get-by-id-chain-from-try-block                     7.5655+-0.3292     ?      7.6617+-0.4285        ? might be 1.0127x slower
   get-by-id-proto-or-self                           26.3433+-0.8932           25.9992+-0.8525          might be 1.0132x faster
   get-by-id-self-or-proto                           23.7790+-1.3167           23.1949+-1.1073          might be 1.0252x faster
   get_callee_monomorphic                             4.7274+-0.1310     ?      4.7580+-0.3087        ?
   get_callee_polymorphic                             4.4830+-0.0133     ?      4.4961+-0.0593        ?
   global-var-const-infer-fire-from-opt               0.9385+-0.0173     ?      0.9835+-0.1141        ? might be 1.0479x slower
   global-var-const-infer                             0.7577+-0.0114     ?      0.7605+-0.0112        ?
   HashMap-put-get-iterate-keys                      42.5099+-0.9985     ^     41.0569+-0.1773        ^ definitely 1.0354x faster
   HashMap-put-get-iterate                           60.5083+-0.5073     ^     58.5533+-0.6539        ^ definitely 1.0334x faster
   HashMap-string-put-get-iterate                    53.2421+-0.5112     ?     54.1592+-1.1917        ? might be 1.0172x slower
   imul-double-only                                  17.7548+-0.0244           17.7485+-0.0305        
   imul-int-only                                     14.8425+-0.2189     ?     14.9547+-0.6386        ?
   imul-mixed                                        21.8140+-0.0489           21.8065+-0.3436        
   in-four-cases                                     25.8678+-0.0634     ?     25.9010+-0.2838        ?
   in-one-case-false                                 12.2305+-0.4203           12.1792+-0.2318        
   in-one-case-true                                  12.0380+-0.2505     ?     12.0773+-0.1292        ?
   in-two-cases                                      12.8657+-0.0300     ?     12.9175+-0.1240        ?
   indexed-properties-in-objects                      4.6668+-0.0090            4.6592+-0.0195        
   inline-arguments-access                            1.6490+-0.1479            1.5955+-0.0129          might be 1.0335x faster
   inline-arguments-local-escape                     22.1605+-0.5924     ?     22.7377+-0.4417        ? might be 1.0260x slower
   inline-get-scoped-var                              6.9720+-0.0590     ?      7.1190+-0.1041        ? might be 1.0211x slower
   inlined-put-by-id-transition                      15.4243+-0.4613           15.2905+-0.7566        
   int-or-other-abs-then-get-by-val                   9.5125+-0.2777            9.4443+-0.1685        
   int-or-other-abs-zero-then-get-by-val             37.2091+-0.3635     ?     37.6097+-1.3456        ? might be 1.0108x slower
   int-or-other-add-then-get-by-val                  10.5730+-0.2865           10.5381+-0.1830        
   int-or-other-add                                  11.0640+-0.2302           10.8519+-0.4276          might be 1.0195x faster
   int-or-other-div-then-get-by-val                   6.3692+-0.0259     ?      6.3795+-0.0361        ?
   int-or-other-max-then-get-by-val                   8.5703+-0.1162     ?      8.6499+-0.2192        ?
   int-or-other-min-then-get-by-val                   6.9445+-0.2575     ?      6.9465+-0.0151        ?
   int-or-other-mod-then-get-by-val                   6.1005+-0.0380            6.0305+-0.1901          might be 1.0116x faster
   int-or-other-mul-then-get-by-val                   6.5635+-0.0482            6.5546+-0.0876        
   int-or-other-neg-then-get-by-val                   7.7587+-0.1869     ?      7.7990+-0.0816        ?
   int-or-other-neg-zero-then-get-by-val             36.7533+-0.2706           36.6578+-0.3071        
   int-or-other-sub-then-get-by-val                  10.4568+-0.3675           10.4322+-0.3268        
   int-or-other-sub                                   8.8213+-0.4299     ?      8.8727+-0.1503        ?
   int-overflow-local                                 6.4465+-0.0780     ?      6.4491+-0.0194        ?
   Int16Array-alloc-long-lived                       67.3723+-0.5646     ?     68.1948+-2.9867        ? might be 1.0122x slower
   Int16Array-bubble-sort-with-byteLength            48.9763+-0.1589           48.9663+-0.0542        
   Int16Array-bubble-sort                            48.2940+-0.1019     ?     49.0585+-2.1741        ? might be 1.0158x slower
   Int16Array-load-int-mul                            1.7964+-0.0078     ?      1.8000+-0.0067        ?
   Int16Array-to-Int32Array-set                      89.7446+-1.8348     ?     89.9037+-0.6393        ?
   Int32Array-alloc-huge-long-lived                 705.1150+-7.3812     ?    705.9944+-6.4014        ?
   Int32Array-alloc-huge                            807.4919+-12.1579         804.1201+-8.0841        
   Int32Array-alloc-large-long-lived                964.6575+-13.6917    ?    973.4096+-18.3643       ?
   Int32Array-alloc-large                            46.7620+-1.8033           44.9925+-1.8955          might be 1.0393x faster
   Int32Array-alloc-long-lived                       80.1795+-3.2326     ?     80.3215+-0.6973        ?
   Int32Array-alloc                                   4.4960+-0.0223     ?      4.5327+-0.1321        ?
   Int32Array-Int8Array-view-alloc                   14.7983+-0.0788     !     16.0178+-0.2436        ! definitely 1.0824x slower
   int52-spill                                       12.2700+-0.3308     ?     12.7814+-0.9555        ? might be 1.0417x slower
   Int8Array-alloc-long-lived                        65.9295+-0.2279     ?     67.2307+-1.7542        ? might be 1.0197x slower
   Int8Array-load-with-byteLength                     4.9925+-0.2184     ?      5.0587+-0.0513        ? might be 1.0133x slower
   Int8Array-load                                     4.9506+-0.1879     ?      5.0587+-0.0094        ? might be 1.0218x slower
   integer-divide                                    14.9082+-0.2653           14.8150+-0.3540        
   integer-modulo                                     2.0034+-0.0181            1.9925+-0.0186        
   large-int-captured                                 9.9471+-0.0623            9.8030+-0.5705          might be 1.0147x faster
   large-int-neg                                     25.9329+-0.4005     ?     25.9928+-0.4133        ?
   large-int                                         23.6075+-0.4182           23.4662+-0.2356        
   lots-of-fields                                    11.0015+-0.0883     ?     11.0165+-0.1005        ?
   make-indexed-storage                               4.2234+-0.0431            4.1726+-0.2204          might be 1.0122x faster
   make-rope-cse                                      5.9794+-0.2180            5.9040+-0.2063          might be 1.0128x faster
   marsaglia-larger-ints                            111.8631+-0.1544     !    112.3962+-0.3419        ! definitely 1.0048x slower
   marsaglia-osr-entry                               47.0480+-0.3172     ?     47.0977+-0.2749        ?
   marsaglia                                        463.1880+-1.0270          462.9125+-0.8686        
   method-on-number                                  30.5444+-0.9219     ?     30.7098+-1.5598        ?
   negative-zero-divide                               0.4042+-0.0058            0.4019+-0.0025        
   negative-zero-modulo                               0.3875+-0.0039            0.3845+-0.0055        
   negative-zero-negate                               0.3693+-0.0035     ?      0.3698+-0.0054        ?
   nested-function-parsing-random                   374.8698+-0.6540     !    377.7367+-0.4948        ! definitely 1.0076x slower
   nested-function-parsing                           48.7833+-2.8216           48.2692+-0.1946          might be 1.0107x faster
   new-array-buffer-dead                              3.7042+-0.0168     ?      3.7247+-0.0160        ?
   new-array-buffer-push                             10.4852+-0.3921     ?     10.5753+-0.3499        ?
   new-array-dead                                    28.4589+-0.3872     ?     28.8066+-1.2496        ? might be 1.0122x slower
   new-array-push                                     6.7766+-0.0445     ?      6.8625+-0.0748        ? might be 1.0127x slower
   number-test                                        4.2809+-0.0097     ?      4.2986+-0.0362        ?
   object-closure-call                               13.3716+-0.1915           13.2393+-0.0897        
   object-test                                        4.7969+-0.0081     ?      4.8110+-0.0804        ?
   poly-stricteq                                     77.3371+-4.1868           76.0685+-0.1632          might be 1.0167x faster
   polymorphic-structure                             21.1630+-0.2293           21.0607+-0.1965        
   polyvariant-monomorphic-get-by-id                 11.9323+-0.1812           11.9107+-0.2071        
   put-by-id                                         19.3898+-0.8487     ?     19.7475+-0.5507        ? might be 1.0184x slower
   put-by-val-large-index-blank-indexing-type   
                                                     10.8073+-0.1507     !     11.2458+-0.2515        ! definitely 1.0406x slower
   rare-osr-exit-on-local                            20.3249+-0.3044           20.3163+-0.2119        
   register-pressure-from-osr                        31.1304+-0.2271     ?     31.2450+-0.3611        ?
   simple-activation-demo                            35.1943+-0.1757           35.1248+-0.0785        
   slow-array-profile-convergence                     4.0380+-0.0470            4.0275+-0.0287        
   slow-convergence                                   4.1888+-0.0161     ?      4.1990+-0.0702        ?
   sparse-conditional                                 1.3558+-0.0294            1.3533+-0.0520        
   splice-to-remove                                  78.1144+-2.6362           77.0975+-0.5559          might be 1.0132x faster
   stepanov_container                             11439.1393+-33.5908    ?  11590.8589+-483.6340      ? might be 1.0133x slower
   string-concat-object                               2.9948+-0.0235     ?      3.0159+-0.1029        ?
   string-concat-pair-object                          2.9093+-0.0198            2.9024+-0.0321        
   string-concat-pair-simple                         16.8035+-1.0257           16.5202+-0.6809          might be 1.0171x faster
   string-concat-simple                              16.8743+-0.5430     ?     17.3826+-0.3919        ? might be 1.0301x slower
   string-cons-repeat                                10.4990+-0.0518           10.4954+-0.0399        
   string-cons-tower                                 11.0181+-0.1350     ?     11.0502+-0.1092        ?
   string-equality                                   42.5167+-0.0312     ?     42.8676+-1.3412        ?
   string-get-by-val-big-char                        12.8562+-0.2881     ?     13.3997+-0.8426        ? might be 1.0423x slower
   string-get-by-val-out-of-bounds-insane             5.8951+-0.4483            5.7405+-0.1072          might be 1.0269x faster
   string-get-by-val-out-of-bounds                    5.2743+-0.1571     ?      5.3145+-0.0155        ?
   string-get-by-val                                  4.8933+-0.0145     ?      4.9570+-0.0608        ? might be 1.0130x slower
   string-hash                                        2.7545+-0.0586            2.7370+-0.0144        
   string-long-ident-equality                        36.8970+-0.2410     ?     37.0555+-0.1515        ?
   string-repeat-arith                               48.8970+-0.2346     ?     48.9462+-0.7756        ?
   string-sub                                        97.6720+-0.3376     ?     98.1032+-1.3132        ?
   string-test                                        4.2378+-0.0208     ?      4.3042+-0.1648        ? might be 1.0157x slower
   string-var-equality                               69.8782+-0.0357     ?     70.1060+-0.7802        ?
   structure-hoist-over-transitions                   3.3663+-0.0444            3.3619+-0.0383        
   switch-char-constant                               3.4709+-0.0097     ?      3.4775+-0.0278        ?
   switch-char                                        8.0755+-0.2341     ?      8.1138+-0.2646        ?
   switch-constant                                    9.1712+-0.3306     ?      9.3649+-0.2260        ? might be 1.0211x slower
   switch-string-basic-big-var                       20.3674+-0.4775           20.3409+-0.1938        
   switch-string-basic-big                           20.7240+-0.5023     ?     20.9143+-0.8527        ?
   switch-string-basic-var                           20.1971+-0.1454           20.0680+-0.1590        
   switch-string-basic                               22.3347+-1.6487           20.8702+-1.8603          might be 1.0702x faster
   switch-string-big-length-tower-var                28.9253+-0.3226     ?     29.3337+-1.1735        ? might be 1.0141x slower
   switch-string-length-tower-var                    21.5057+-0.3215     ?     21.5545+-0.1275        ?
   switch-string-length-tower                        16.4064+-0.3100     ?     16.8286+-0.7790        ? might be 1.0257x slower
   switch-string-short                               16.5114+-0.2045     ?     16.5701+-0.8218        ?
   switch                                            16.0359+-0.7271           15.4680+-0.3210          might be 1.0367x faster
   tear-off-arguments-simple                          2.2060+-0.0146            2.2015+-0.0086        
   tear-off-arguments                                 3.5317+-0.0212     ?      3.5342+-0.0245        ?
   temporal-structure                                16.9755+-0.1177     ?     17.1923+-0.7192        ? might be 1.0128x slower
   to-int32-boolean                                  21.9634+-0.1643           21.6900+-0.3442          might be 1.0126x faster
   undefined-test                                     4.4008+-0.1114     ?      4.4095+-0.1895        ?
   weird-inlining-const-prop                          2.2855+-0.0227     ?      2.3370+-0.1742        ? might be 1.0225x slower

   &lt;arithmetic&gt;                                     152.8037+-0.4180     ?    153.9515+-2.5015        ? might be 1.0075x slower
   &lt;geometric&gt; *                                     14.0097+-0.0188     ?     14.0795+-0.0775        ? might be 1.0050x slower
   &lt;harmonic&gt;                                         5.2386+-0.0059     ?      5.2434+-0.0241        ? might be 1.0009x slower

                                                        TipOfTree               SanitizeStack                                   
All benchmarks:
   &lt;arithmetic&gt;                                     222.1644+-0.9323     ?    222.2638+-1.5293        ? might be 1.0004x slower
   &lt;geometric&gt;                                       20.4635+-0.0867     ?     20.5309+-0.0686        ? might be 1.0033x slower
   &lt;harmonic&gt;                                         4.7341+-0.0586     ?      4.7441+-0.0327        ? might be 1.0021x slower

                                                        TipOfTree               SanitizeStack                                   
Geomean of preferred means:
   &lt;scaled-result&gt;                                   48.6107+-0.8273           48.5434+-0.0269          might be 1.0014x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954621</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-27 16:20:35 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/159826</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217970</attachid>
            <date>2013-11-27 15:30:59 -0800</date>
            <delta_ts>2013-11-27 16:12:23 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>7833</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU5ODI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBA
CisyMDEzLTExLTI3ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RmluYWxseSBmaXggc29tZSBvYnZpb3VzIEJhcnRsZXR0IGJ1Z3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNDk1MQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgU2FuaXRpemUgdGhlIHN0YWNr
IChpLmUuIHplcm8gcGFydHMgb2YgaXQga25vd24gdG8gYmUgZGVhZCkgYXQgdGhyZWUga2V5IHBv
aW50czoKKyAgICAgICAgCisgICAgICAgIC0gR0MuCisgICAgICAgIAorICAgICAgICAtIEF0IGJl
Z2lubmluZyBvZiBPU1IgZW50cnkuCisgICAgICAgIAorICAgICAgICAtIEp1c3QgYXMgd2UgZmlu
aXNoIHByZXBhcmluZyBPU1IgZW50cnkuIFRoaXMgY2xlYXJzIHRob3NlIHNsb3RzIG9uIHRoZSBz
dGFjayB0aGF0CisgICAgICAgICAgY291bGQgaGF2ZSBiZWVuIGxpdmUgaW4gYmFzZWxpbmUgYnV0
IHRoYXQgYXJlIGtub3duIHRvIGJlIGRlYWQgaW4gREZHLgorICAgICAgICAKKyAgICAgICAgVGhp
cyBpcyBhcyBtdWNoIGFzIGEgMnggc3BlZWQtdXAgb24gc3BsYXkgaWYgeW91IHJ1biBpdCBpbiBj
ZXJ0YWluIG1vZGVzLCBhbmQgcnVuIGl0CisgICAgICAgIGZvciBhIGxvbmcgZW5vdWdoIGludGVy
dmFsLiBJdCBhcHBlYXJzIHRvIGZpeCBhbGwgaW5zdGFuY2VzIG9mIHRoZSBkcmVhZGVkIGV4cG9u
ZW50aWFsCisgICAgICAgIGhlYXAgZ3Jvd3RoIHRoYXQgc3BsYXkgZ2V0cyBpbnRvIHdoZW4gc29t
ZSBzdGFsZSBwb2ludGVyIHN0YXlzIGFyb3VuZC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgZG9l
c24ndCBoYXZlIG11Y2ggb2YgYW4gZWZmZWN0IG9uIHJlYWwtd29ybGQgcHJvZ3JhbXMuIFRoaXMg
YnVnIGhhcyBvbmx5IGV2ZXIKKyAgICAgICAgbWFuaWZlc3RlZCBpbiBzcGxheSBhbmQgZm9yIHRo
YXQgcmVhc29uIHdlIHRodXMgZmFyIG9wdGVkIGFnYWluc3QgZml4aW5nIGl0LiBCdXQgc3BsYXkK
KyAgICAgICAgaXMsIGZvciB3aGF0IGl0J3Mgd29ydGgsIHRoZSBwcmVtaWVyZSBHQyBzdHJlc3Mg
dGVzdCBpbiBKYXZhU2NyaXB0IC0gc28gbWFraW5nIHN1cmUgd2UKKyAgICAgICAgY2FuIHJ1biBp
dCB3aXRob3V0IHBhdGhvbG9naWVzIC0gZXZlbiB3aGVuIHlvdSB0d2VhayBpdHMgY29uZmlndXJh
dGlvbiAtIGlzIHByb2JhYmx5CisgICAgICAgIGZhaXJseSBpbXBvcnRhbnQuCisKKyAgICAgICAg
KiBkZmcvREZHSklUQ29tcGlsZXIuaDoKKyAgICAgICAgKEpTQzo6REZHOjpKSVRDb21waWxlcjo6
bm90aWNlT1NSRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdPU1JFbnRyeS5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6cHJlcGFyZU9TUkVudHJ5KToKKyAgICAgICAgKiBkZmcvREZHT1NSRW50cnku
aDoKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrUm9v
dHMpOgorICAgICAgICAqIGludGVycHJldGVyL0pTU3RhY2suY3BwOgorICAgICAgICAoSlNDOjpK
U1N0YWNrOjpKU1N0YWNrKToKKyAgICAgICAgKEpTQzo6SlNTdGFjazo6c2FuaXRpemVTdGFjayk6
CisgICAgICAgICogaW50ZXJwcmV0ZXIvSlNTdGFjay5oOgorCiAyMDEzLTExLTI2ICBGaWxpcCBQ
aXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgRG8gYnl0ZWNvZGUgdmFsaWRhdGlv
biBhcyBwYXJ0IG9mIHRlc3RpbmcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
SklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDE1OTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjY4LDYgKzI2OCw4IEBA
IHB1YmxpYzoKICAgICAgICAgICAgICAgICBlbnRyeS0+bV9leHBlY3RlZFZhbHVlcy5sb2NhbChs
b2NhbCkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
IFZhcmlhYmxlQWNjZXNzRGF0YSogdmFyaWFibGUgPSBub2RlLT52YXJpYWJsZUFjY2Vzc0RhdGEo
KTsKKyAgICAgICAgICAgICAgICBlbnRyeS0+bV9tYWNoaW5lU3RhY2tVc2VkLnNldCh2YXJpYWJs
ZS0+bWFjaGluZUxvY2FsKCkudG9Mb2NhbCgpKTsKKyAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBzd2l0Y2ggKHZhcmlhYmxlLT5mbHVzaEZvcm1hdCgpKSB7CiAgICAgICAgICAgICAg
ICAgY2FzZSBGbHVzaGVkRG91YmxlOgogICAgICAgICAgICAgICAgICAgICBlbnRyeS0+bV9sb2Nh
bHNGb3JjZWREb3VibGUuc2V0KGxvY2FsKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRW50cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRW50cnkuY3BwCShyZXZpc2lvbiAxNTk4MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09TUkVudHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsOSBA
QCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgfQogICAgIAog
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIAorICAgIHZtLT5pbnRlcnByZXRlci0+c3Rh
Y2soKS5zYW5pdGl6ZVN0YWNrKCk7CisgICAgCiAgICAgaWYgKGNvZGVCbG9jay0+aml0VHlwZSgp
ICE9IEpJVENvZGU6OkRGR0pJVCkgewogICAgICAgICBSRUxFQVNFX0FTU0VSVChjb2RlQmxvY2st
PmppdFR5cGUoKSA9PSBKSVRDb2RlOjpGVExKSVQpOwogICAgICAgICAKQEAgLTE4MSw3ICsxODQs
OCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBleGVjLCBDCiAgICAgLy8gICAg
aXQgc2VlbXMgc2lsbHk6IHlvdSdkIGJlIGRpdmVydGluZyB0aGUgcHJvZ3JhbSB0byBlcnJvciBo
YW5kbGluZyB3aGVuIGl0CiAgICAgLy8gICAgd291bGQgaGF2ZSBvdGhlcndpc2UganVzdCBrZXB0
IHJ1bm5pbmcgYWxiZWl0IGxlc3MgcXVpY2tseS4KICAgICAKLSAgICBpZiAoIXZtLT5pbnRlcnBy
ZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0dWFsUmVnaXN0ZXJGb3JM
b2NhbChqaXRDb2RlLT5jb21tb24ucmVxdWlyZWRSZWdpc3RlckNvdW50Rm9yRXhlY3V0aW9uQW5k
RXhpdCgpKS5vZmZzZXQoKV0pKSB7CisgICAgdW5zaWduZWQgZnJhbWVTaXplID0gaml0Q29kZS0+
Y29tbW9uLnJlcXVpcmVkUmVnaXN0ZXJDb3VudEZvckV4ZWN1dGlvbkFuZEV4aXQoKTsKKyAgICBp
ZiAoIXZtLT5pbnRlcnByZXRlci0+c3RhY2soKS5ncm93KCZleGVjLT5yZWdpc3RlcnMoKVt2aXJ0
dWFsUmVnaXN0ZXJGb3JMb2NhbChmcmFtZVNpemUpLm9mZnNldCgpXSkpIHsKICAgICAgICAgaWYg
KE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkKICAgICAgICAgICAgIGRhdGFMb2dGKCIgICAgT1NSIGZh
aWxlZCBiZWNhdXNlIHN0YWNrIGdyb3d0aCBmYWlsZWQuXG4iKTsKICAgICAgICAgcmV0dXJuIDA7
CkBAIC0yMDcsMTEgKzIxMSwyMCBAQCB2b2lkKiBwcmVwYXJlT1NSRW50cnkoRXhlY1N0YXRlKiBl
eGVjLCBDCiAgICAgZm9yICh1bnNpZ25lZCBpID0gZW50cnktPm1fcmVzaHVmZmxpbmdzLnNpemUo
KTsgaS0tOykKICAgICAgICAgcmVnaXN0ZXJzW2VudHJ5LT5tX3Jlc2h1ZmZsaW5nc1tpXS50b09m
ZnNldF0gPSB0ZW1wb3JhcnlMb2NhbHNbaV07CiAgICAgCi0gICAgLy8gNSkgRml4IHRoZSBjYWxs
IGZyYW1lLgorICAgIC8vIDUpIENsZWFyIHRob3NlIHBhcnRzIG9mIHRoZSBjYWxsIGZyYW1lIHRo
YXQgdGhlIERGRyBhaW4ndCB1c2luZy4gVGhpcyBoZWxwcyBHQyBvbiBzb21lCisgICAgLy8gICAg
cHJvZ3JhbXMgYnkgZWxpbWluYXRpbmcgc29tZSBzdGFsZSBwb2ludGVyIHBhdGhvbG9naWVzLgor
ICAgIAorICAgIGZvciAodW5zaWduZWQgaSA9IGZyYW1lU2l6ZTsgaS0tOykgeworICAgICAgICBp
ZiAoZW50cnktPm1fbWFjaGluZVN0YWNrVXNlZC5nZXQoaSkpCisgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgcmVnaXN0ZXJzW3ZpcnR1YWxSZWdpc3RlckZvckxvY2FsKGkpLm9mZnNldCgp
XSA9IEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgIH0KKyAgICAKKyAgICAvLyA2KSBG
aXggdGhlIGNhbGwgZnJhbWUuCiAgICAgCiAgICAgZXhlYy0+c2V0Q29kZUJsb2NrKGNvZGVCbG9j
ayk7CiAgICAgCi0gICAgLy8gNikgRmluZCBhbmQgcmV0dXJuIHRoZSBkZXN0aW5hdGlvbiBtYWNo
aW5lIGNvZGUgYWRkcmVzcy4KKyAgICAvLyA3KSBGaW5kIGFuZCByZXR1cm4gdGhlIGRlc3RpbmF0
aW9uIG1hY2hpbmUgY29kZSBhZGRyZXNzLgogICAgIAogICAgIHZvaWQqIHJlc3VsdCA9IGNvZGVC
bG9jay0+aml0Q29kZSgpLT5leGVjdXRhYmxlQWRkcmVzc0F0T2Zmc2V0KGVudHJ5LT5tX21hY2hp
bmVDb2RlT2Zmc2V0KTsKICAgICAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
T1NSRW50cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09T
UkVudHJ5LmgJKHJldmlzaW9uIDE1OTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT1NSRW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCBzdHJ1Y3QgT1NS
RW50cnlEYXRhIHsKICAgICBCaXRWZWN0b3IgbV9sb2NhbHNGb3JjZWREb3VibGU7CiAgICAgQml0
VmVjdG9yIG1fbG9jYWxzRm9yY2VkTWFjaGluZUludDsKICAgICBWZWN0b3I8T1NSRW50cnlSZXNo
dWZmbGluZz4gbV9yZXNodWZmbGluZ3M7CisgICAgQml0VmVjdG9yIG1fbWFjaGluZVN0YWNrVXNl
ZDsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBnZXRPU1JFbnRyeURhdGFCeXRlY29kZUluZGV4KE9T
UkVudHJ5RGF0YSogb3NyRW50cnlEYXRhKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVh
cC5jcHAJKHJldmlzaW9uIDE1OTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hl
YXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NjMsNiArNDYzLDcgQEAgdm9pZCBIZWFwOjptYXJr
Um9vdHMoKQogICAgIHsKICAgICAgICAgR0NQSEFTRShHYXRoZXJTdGFja1Jvb3RzKTsKICAgICAg
ICAgc3RhY2soKS5nYXRoZXJDb25zZXJ2YXRpdmVSb290cyhzdGFja1Jvb3RzLCBtX2ppdFN0dWJS
b3V0aW5lcywgbV9jb2RlQmxvY2tzKTsKKyAgICAgICAgc3RhY2soKS5zYW5pdGl6ZVN0YWNrKCk7
CiAgICAgfQogCiAjaWYgRU5BQkxFKERGR19KSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0pTU3RhY2suY3BwCShyZXZpc2lvbiAxNTk4MjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDYgKzUyLDggQEAgSlNTdGFjazo6SlNTdGFjayhWTSYgdm0sIHNpemVfdCBjYXBhY2l0
eQogICAgIG1fcmVzZXJ2YXRpb24gPSBQYWdlUmVzZXJ2YXRpb246OnJlc2VydmUocm91bmRVcEFs
bG9jYXRpb25TaXplKGNhcGFjaXR5ICogc2l6ZW9mKFJlZ2lzdGVyKSwgY29tbWl0U2l6ZSksIE9T
QWxsb2NhdG9yOjpKU1ZNU3RhY2tQYWdlcyk7CiAgICAgdXBkYXRlU3RhY2tMaW1pdChoaWdoQWRk
cmVzcygpKTsKICAgICBtX2NvbW1pdEVuZCA9IGhpZ2hBZGRyZXNzKCk7CisgICAgCisgICAgbV9s
YXN0U3RhY2tUb3AgPSBnZXRCYXNlT2ZTdGFjaygpOwogCiAgICAgZGlzYWJsZUVycm9yU3RhY2tS
ZXNlcnZlKCk7CiAKQEAgLTEwMSw2ICsxMDMsMTkgQEAgdm9pZCBKU1N0YWNrOjpnYXRoZXJDb25z
ZXJ2YXRpdmVSb290cyhDbwogICAgIGNvbnNlcnZhdGl2ZVJvb3RzLmFkZChnZXRCYXNlT2ZTdGFj
aygpLCBnZXRUb3BPZlN0YWNrKCksIGppdFN0dWJSb3V0aW5lcywgY29kZUJsb2Nrcyk7CiB9CiAK
K3ZvaWQgSlNTdGFjazo6c2FuaXRpemVTdGFjaygpCit7CisgICAgQVNTRVJUKGdldFRvcE9mU3Rh
Y2soKSA8PSBnZXRCYXNlT2ZTdGFjaygpKTsKKyAgICAKKyAgICBpZiAobV9sYXN0U3RhY2tUb3Ag
PCBnZXRUb3BPZlN0YWNrKCkpIHsKKyAgICAgICAgY2hhciogYmVnaW4gPSByZWludGVycHJldF9j
YXN0PGNoYXIqPihtX2xhc3RTdGFja1RvcCk7CisgICAgICAgIGNoYXIqIGVuZCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KGdldFRvcE9mU3RhY2soKSk7CisgICAgICAgIG1lbXNldChiZWdpbiwg
MCwgZW5kIC0gYmVnaW4pOworICAgIH0KKyAgICAKKyAgICBtX2xhc3RTdGFja1RvcCA9IGdldFRv
cE9mU3RhY2soKTsKK30KKwogdm9pZCBKU1N0YWNrOjpyZWxlYXNlRXhjZXNzQ2FwYWNpdHkoKQog
ewogICAgIHB0cmRpZmZfdCBkZWx0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihoaWdo
QWRkcmVzcygpKSAtIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihtX2NvbW1pdEVuZCk7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSlNTdGFjay5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNrLmgJKHJldmlz
aW9uIDE1OTgyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9KU1N0YWNr
LmgJKHdvcmtpbmcgY29weSkKQEAgLTgxLDYgKzgxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIAogICAgICAgICB2b2lkIGdhdGhlckNvbnNlcnZhdGl2ZVJvb3RzKENvbnNlcnZhdGl2ZVJv
b3RzJik7CiAgICAgICAgIHZvaWQgZ2F0aGVyQ29uc2VydmF0aXZlUm9vdHMoQ29uc2VydmF0aXZl
Um9vdHMmLCBKSVRTdHViUm91dGluZVNldCYsIENvZGVCbG9ja1NldCYpOworICAgICAgICB2b2lk
IHNhbml0aXplU3RhY2soKTsKIAogICAgICAgICBSZWdpc3RlciogZ2V0QmFzZU9mU3RhY2soKSBj
b25zdAogICAgICAgICB7CkBAIC0xNTQsNiArMTU1LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIFJlZ2lzdGVyKiBtX3VzZWFibGVFbmQ7CiAgICAgICAgIFBhZ2VSZXNlcnZhdGlvbiBtX3Jl
c2VydmF0aW9uOwogICAgICAgICBDYWxsRnJhbWUqJiBtX3RvcENhbGxGcmFtZTsKKyAgICAgICAg
UmVnaXN0ZXIqIG1fbGFzdFN0YWNrVG9wOwogCiAgICAgICAgIGZyaWVuZCBjbGFzcyBMTEludE9m
ZnNldHNFeHRyYWN0b3I7CiAgICAgfTsK
</data>
<flag name="review"
          id="241236"
          type_id="1"
          status="+"
          setter="mhahnenberg"
    />
          </attachment>
      

    </bug>

</bugzilla>