When one of the node's child is met in the process of back traversing the nodes.
Created attachment 129662 [details] patch Performance neutral on SunSpider, V8 and Kraken. Collected 12 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. ToT 80014 SunSpider: 3d-cube 8.2738+-0.0353 8.2301+-0.0563 3d-morph 10.2796+-1.4343 9.6136+-0.0313 might be 1.0693x faster 3d-raytrace 11.0725+-0.9814 10.4138+-0.0440 might be 1.0632x faster access-binary-trees 2.4162+-0.0410 2.3782+-0.0361 might be 1.0160x faster access-fannkuch 10.2832+-0.0330 ? 10.2954+-0.0425 ? access-nbody 5.4756+-0.0298 5.4618+-0.0295 access-nsieve 3.9493+-0.0242 ? 3.9842+-0.0311 ? bitops-3bit-bits-in-byte 1.2317+-0.0311 ? 1.2399+-0.0296 ? bitops-bits-in-byte 4.6308+-0.0328 ? 4.6579+-0.0509 ? bitops-bitwise-and 4.2234+-0.0316 4.2182+-0.0432 bitops-nsieve-bits 4.3899+-0.3781 4.2256+-0.0175 might be 1.0389x faster controlflow-recursive 2.7894+-0.0347 ? 2.7986+-0.0338 ? crypto-aes 9.7159+-0.1013 ? 10.5690+-1.2842 ? might be 1.0878x slower crypto-md5 3.4543+-0.0349 3.4355+-0.0376 crypto-sha1 2.7817+-0.0356 ? 2.7985+-0.0392 ? date-format-tofte 12.8141+-0.0429 ? 13.7343+-1.4600 ? might be 1.0718x slower date-format-xparb 11.9026+-0.3037 11.8689+-0.0892 math-cordic 3.9316+-0.0467 ? 3.9752+-0.0324 ? might be 1.0111x slower math-partial-sums 14.8843+-0.0637 14.8552+-0.0492 math-spectral-norm 2.6706+-0.0337 2.6667+-0.0376 regexp-dna 9.3694+-0.0691 9.3647+-0.0505 string-base64 5.5776+-0.0453 ? 5.6318+-0.0409 ? string-fasta 9.4847+-0.0408 9.4238+-0.0588 string-tagcloud 16.1147+-0.0385 16.0927+-0.0581 string-unpack-code 27.4101+-0.2297 ? 27.4592+-0.0953 ? string-validate-input 8.3594+-0.0566 8.3010+-0.0346 <arithmetic> * 7.9802+-0.0902 ? 7.9882+-0.0704 ? might be 1.0010x slower <geometric> 6.2931+-0.0599 6.2917+-0.0331 might be 1.0002x faster <harmonic> 4.8742+-0.0378 4.8738+-0.0156 might be 1.0001x faster ToT 80014 V8: crypto 94.7222+-0.6127 94.3364+-0.1624 deltablue 167.5102+-1.5407 166.1025+-1.0373 earley-boyer 120.8037+-2.9029 ? 121.9013+-2.8339 ? raytrace 59.9594+-0.7856 58.9291+-0.3481 might be 1.0175x faster regexp 111.0411+-0.6099 ? 111.5218+-0.6567 ? richards 190.1924+-0.4228 189.7350+-0.5080 splay 77.8327+-0.6798 77.0769+-0.2385 <arithmetic> 117.4374+-0.6452 117.0861+-0.5871 might be 1.0030x faster <geometric> * 109.5003+-0.6401 109.0575+-0.5577 might be 1.0041x faster <harmonic> 102.0258+-0.6461 101.4286+-0.5071 might be 1.0059x faster ToT 80014 Kraken: ai-astar 784.0337+-1.2429 ? 785.9269+-1.9518 ? audio-beat-detection 237.0179+-0.2599 ! 237.7329+-0.3846 ! definitely 1.0030x slower audio-dft 387.1959+-3.4243 ? 388.8320+-3.7839 ? audio-fft 152.0611+-1.0486 151.3095+-0.1807 audio-oscillator 345.9121+-1.9871 ? 346.2906+-2.4266 ? imaging-darkroom 375.5057+-9.0815 ? 377.0849+-10.1587 ? imaging-desaturate 304.5204+-1.5808 303.5016+-0.6957 imaging-gaussian-blur 507.3724+-1.6954 507.3209+-1.5560 json-parse-financial 86.7866+-0.4406 ? 87.7147+-0.5420 ? might be 1.0107x slower json-stringify-tinderbox 105.6743+-0.5484 105.4368+-0.6363 stanford-crypto-aes 105.9003+-0.5528 105.5189+-0.3627 stanford-crypto-ccm 100.7187+-0.8381 100.0919+-0.7498 stanford-crypto-pbkdf2 237.7638+-2.1886 235.6427+-0.4011 stanford-crypto-sha256-iterative 103.2649+-0.7613 ? 103.9360+-1.4175 ? <arithmetic> * 273.8377+-1.0482 ? 274.0243+-1.1220 ? might be 1.0007x slower <geometric> 217.4013+-0.7602 ? 217.4395+-0.8597 ? might be 1.0002x slower <harmonic> 175.6196+-0.5666 ? 175.6745+-0.6949 ? might be 1.0003x slower ToT 80014 All benchmarks: <arithmetic> 103.4740+-0.4113 ? 103.4816+-0.3955 ? might be 1.0001x slower <geometric> 27.6609+-0.1844 27.6424+-0.0895 might be 1.0007x faster <harmonic> 8.5727+-0.0653 8.5714+-0.0268 might be 1.0002x faster ToT 80014 Geomean of preferred means: <scaled-result> 62.0820+-0.3918 62.0323+-0.2147 might be 1.0008x faster
Comment on attachment 129662 [details] patch R=me.
Comment on attachment 129662 [details] patch Going to land it manually... I was thinking that you might be offline so the review might be delayed.
Landed as http://trac.webkit.org/changeset/109325