This allows us to separate the "can I exit?" question from the "would I know where I exit if I could?" question.
Created attachment 259645 [details] the patch
So, this approach looks like it's fine.
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r188751) "BetterNodeOrigin" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r188751) Collected 7 samples per benchmark/VM, with 7 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 BetterNodeOrigin SunSpider: 3d-cube 4.5413+-0.1654 ? 4.7584+-0.1491 ? might be 1.0478x slower 3d-morph 5.2160+-0.1095 ^ 4.9596+-0.1342 ^ definitely 1.0517x faster 3d-raytrace 5.0456+-0.1293 ? 5.0732+-0.0426 ? access-binary-trees 1.9592+-0.0529 1.9524+-0.0680 access-fannkuch 5.1925+-0.0363 ? 5.2421+-0.0817 ? access-nbody 2.3879+-0.0206 ? 2.3929+-0.0374 ? access-nsieve 2.9907+-0.0477 2.9663+-0.0163 bitops-3bit-bits-in-byte 1.4406+-0.0433 ? 1.4522+-0.0757 ? bitops-bits-in-byte 3.1776+-0.0448 ? 3.2200+-0.0547 ? might be 1.0133x slower bitops-bitwise-and 1.9488+-0.0365 ? 1.9608+-0.0499 ? bitops-nsieve-bits 2.9211+-0.0616 2.8985+-0.0401 controlflow-recursive 2.0565+-0.0898 1.9774+-0.0986 might be 1.0400x faster crypto-aes 3.7225+-0.0627 ? 3.7307+-0.1363 ? crypto-md5 2.3701+-0.1695 2.2899+-0.0316 might be 1.0350x faster crypto-sha1 2.2240+-0.1232 2.1957+-0.0791 might be 1.0129x faster date-format-tofte 6.7156+-0.4762 6.4824+-0.1468 might be 1.0360x faster date-format-xparb 4.4908+-0.2056 4.3705+-0.1083 might be 1.0275x faster math-cordic 2.7206+-0.0724 2.7154+-0.0636 math-partial-sums 5.1407+-0.1244 ^ 4.9267+-0.0491 ^ definitely 1.0434x faster math-spectral-norm 1.7443+-0.0201 ? 1.7860+-0.0485 ? might be 1.0239x slower regexp-dna 6.8688+-1.0380 6.4928+-0.2613 might be 1.0579x faster string-base64 4.2482+-0.0308 ? 4.2697+-0.0767 ? string-fasta 5.7249+-0.0612 ? 5.8695+-0.2520 ? might be 1.0253x slower string-tagcloud 8.0379+-0.1021 ? 8.1050+-0.1945 ? string-unpack-code 17.9857+-0.7187 17.7494+-0.4471 might be 1.0133x faster string-validate-input 4.4434+-0.0735 ? 4.5387+-0.0729 ? might be 1.0214x slower <arithmetic> 4.4352+-0.0672 4.3991+-0.0419 might be 1.0082x faster TipOfTree BetterNodeOrigin LongSpider: 3d-cube 795.9048+-3.8712 ? 802.1626+-8.5342 ? 3d-morph 1495.2937+-5.2605 ? 1497.4363+-4.4805 ? 3d-raytrace 593.7916+-7.6536 ? 596.2236+-4.2410 ? access-binary-trees 792.1899+-3.4583 ? 795.5823+-7.2012 ? access-fannkuch 274.3227+-4.6991 ? 275.3023+-5.8722 ? access-nbody 511.7256+-3.3917 ? 512.3590+-2.7202 ? access-nsieve 361.7614+-11.9698 356.8143+-9.9749 might be 1.0139x faster bitops-3bit-bits-in-byte 38.1833+-0.4510 ? 38.2896+-1.6657 ? bitops-bits-in-byte 74.9761+-1.2290 74.6446+-0.9831 bitops-nsieve-bits 407.4301+-7.7800 402.9662+-5.4157 might be 1.0111x faster controlflow-recursive 443.5131+-1.7259 ? 444.9030+-4.2338 ? crypto-aes 564.7191+-8.7236 ? 572.3733+-8.5373 ? might be 1.0136x slower crypto-md5 491.6247+-5.0637 489.4072+-6.0464 crypto-sha1 646.5979+-11.8603 628.4386+-9.0969 might be 1.0289x faster date-format-tofte 499.8803+-10.0772 ? 500.7067+-11.5570 ? date-format-xparb 622.2130+-8.9110 617.5103+-9.8105 hash-map 153.1165+-1.9305 ? 154.4846+-1.3467 ? math-cordic 482.5176+-2.1755 482.3534+-1.8977 math-partial-sums 467.0928+-1.9516 463.9428+-5.0349 math-spectral-norm 548.2729+-1.8376 ? 548.5327+-2.8350 ? string-base64 352.1690+-3.7258 ? 352.7799+-7.5592 ? string-fasta 370.7886+-5.0309 370.3703+-3.3105 string-tagcloud 175.1012+-1.4385 174.7286+-2.0831 <geometric> 388.2535+-1.2180 387.8096+-1.9338 might be 1.0011x faster TipOfTree BetterNodeOrigin V8Spider: crypto 47.3064+-0.8823 46.9679+-1.4315 deltablue 89.1716+-4.0658 84.7729+-2.6758 might be 1.0519x faster earley-boyer 39.3339+-1.0677 ? 39.5831+-0.4428 ? raytrace 30.9839+-0.9144 ? 35.5893+-11.1285 ? might be 1.1486x slower regexp 61.8405+-2.1210 60.5487+-0.8168 might be 1.0213x faster richards 64.7102+-2.8314 64.2883+-0.7162 splay 36.1547+-1.6990 ? 36.4871+-1.3697 ? <geometric> 49.6244+-0.8225 ? 49.8910+-1.5626 ? might be 1.0054x slower TipOfTree BetterNodeOrigin Octane: encrypt 0.17243+-0.00207 0.16995+-0.00260 might be 1.0146x faster decrypt 3.27300+-0.01704 3.26692+-0.00731 deltablue x2 0.15370+-0.00162 0.15321+-0.00127 earley 0.27410+-0.00275 ? 0.27446+-0.00429 ? boyer 4.18466+-0.05974 ? 4.19764+-0.12352 ? navier-stokes x2 4.85402+-0.02238 ^ 4.81629+-0.01249 ^ definitely 1.0078x faster raytrace x2 0.98215+-0.03847 ? 1.08993+-0.18065 ? might be 1.1097x slower richards x2 0.10844+-0.00158 0.10836+-0.00101 splay x2 0.33240+-0.00255 0.33176+-0.00557 regexp x2 24.54254+-0.44209 ? 24.61627+-0.21539 ? pdfjs x2 36.65500+-0.34493 36.43956+-0.55216 mandreel x2 44.22225+-0.83063 43.83783+-0.79604 gbemu x2 34.17593+-1.59655 ? 34.86157+-2.75094 ? might be 1.0201x slower closure 0.55530+-0.00281 0.55310+-0.00145 jquery 7.07723+-0.07925 7.07683+-0.03844 box2d x2 9.91120+-0.06927 9.86419+-0.09900 zlib x2 382.62213+-6.73212 ? 383.31353+-11.69601 ? typescript x2 633.40747+-7.45312 ? 647.86897+-10.69427 ? might be 1.0228x slower <geometric> 5.52704+-0.02430 ? 5.56349+-0.07971 ? might be 1.0066x slower TipOfTree BetterNodeOrigin Kraken: ai-astar 223.778+-9.099 218.455+-1.387 might be 1.0244x faster audio-beat-detection 50.141+-0.505 50.103+-0.508 audio-dft 94.973+-1.320 ? 95.614+-1.711 ? audio-fft 34.510+-0.082 ? 34.534+-0.094 ? audio-oscillator 58.443+-0.282 ? 58.660+-0.657 ? imaging-darkroom 64.288+-9.051 60.668+-0.225 might be 1.0597x faster imaging-desaturate 49.969+-2.250 49.841+-2.198 imaging-gaussian-blur 84.234+-1.089 83.431+-0.600 json-parse-financial 37.274+-0.858 ? 37.583+-0.594 ? json-stringify-tinderbox 23.232+-0.673 22.094+-0.683 might be 1.0515x faster stanford-crypto-aes 41.127+-2.721 39.819+-0.257 might be 1.0329x faster stanford-crypto-ccm 33.912+-0.710 ? 34.007+-0.971 ? stanford-crypto-pbkdf2 93.272+-0.233 ? 93.734+-0.395 ? stanford-crypto-sha256-iterative 36.053+-0.911 35.893+-0.348 <arithmetic> 66.086+-0.819 65.317+-0.228 might be 1.0118x faster TipOfTree BetterNodeOrigin JSRegress: abc-forward-loop-equal 29.0638+-0.2828 ? 29.4178+-0.4602 ? might be 1.0122x slower abc-postfix-backward-loop 29.0695+-0.3778 ? 29.0980+-0.3585 ? abc-simple-backward-loop 28.8041+-0.2030 28.6400+-0.1316 abc-simple-forward-loop 28.6824+-0.2449 ? 29.1112+-0.6767 ? might be 1.0150x slower abc-skippy-loop 20.3898+-0.1630 ? 20.6015+-0.2880 ? might be 1.0104x slower abs-boolean 2.4103+-0.0483 ? 2.4541+-0.0643 ? might be 1.0182x slower adapt-to-double-divide 16.4771+-0.6903 15.9010+-0.1781 might be 1.0362x faster aliased-arguments-getbyval 1.1587+-0.0805 ? 1.1639+-0.0499 ? allocate-big-object 2.3806+-0.2413 ? 2.4150+-0.1306 ? might be 1.0145x slower arguments-named-and-reflective 10.5886+-0.1570 ? 10.8143+-0.1923 ? might be 1.0213x slower arguments-out-of-bounds 9.0502+-0.0933 ? 9.3137+-0.5056 ? might be 1.0291x slower arguments-strict-mode 9.6526+-0.2336 ? 9.7957+-0.3246 ? might be 1.0148x slower arguments 8.4360+-0.0443 ? 8.6004+-0.2643 ? might be 1.0195x slower arity-mismatch-inlining 0.7868+-0.0374 ? 0.9095+-0.3232 ? might be 1.1559x slower array-access-polymorphic-structure 5.8257+-0.3322 5.7288+-0.0961 might be 1.0169x faster array-nonarray-polymorhpic-access 24.4309+-0.8421 23.9834+-0.2541 might be 1.0187x faster array-prototype-every 74.2883+-0.5591 ? 76.0384+-1.7936 ? might be 1.0236x slower array-prototype-forEach 72.4685+-0.1377 ! 73.6671+-0.9119 ! definitely 1.0165x slower array-prototype-map 81.0415+-0.3956 ? 81.6445+-0.7838 ? array-prototype-reduce 70.6771+-1.5471 70.6175+-1.3604 array-prototype-reduceRight 70.3811+-0.9746 ? 71.0672+-1.1859 ? array-prototype-some 74.8760+-1.9390 ? 75.2468+-1.6682 ? array-splice-contiguous 19.4797+-0.1257 ! 20.4046+-0.0878 ! definitely 1.0475x slower array-with-double-add 3.4072+-0.0661 3.3285+-0.0389 might be 1.0236x faster array-with-double-increment 3.0068+-0.0752 2.9934+-0.0110 array-with-double-mul-add 4.7004+-0.0745 ? 4.7119+-0.0756 ? array-with-double-sum 3.3234+-0.0405 ? 3.3330+-0.0967 ? array-with-int32-add-sub 6.9784+-0.1068 ? 6.9867+-0.1634 ? array-with-int32-or-double-sum 3.1488+-0.0210 ? 3.1700+-0.0344 ? ArrayBuffer-DataView-alloc-large-long-lived 25.3948+-0.2550 ? 25.4997+-0.2810 ? ArrayBuffer-DataView-alloc-long-lived 11.5281+-0.0887 ? 11.5984+-0.2463 ? ArrayBuffer-Int32Array-byteOffset 3.5354+-0.0699 3.4777+-0.0294 might be 1.0166x faster ArrayBuffer-Int8Array-alloc-large-long-lived 30.0004+-0.8481 29.9960+-0.5153 ArrayBuffer-Int8Array-alloc-long-lived-buffer 19.9809+-0.1602 ? 20.0822+-0.2294 ? ArrayBuffer-Int8Array-alloc-long-lived 11.9165+-0.0637 ? 12.1301+-0.1910 ? might be 1.0179x slower ArrayBuffer-Int8Array-alloc 9.4510+-0.1153 ? 9.6790+-0.6108 ? might be 1.0241x slower arrowfunction-call 11.6264+-2.8014 10.5462+-0.0540 might be 1.1024x faster asmjs_bool_bug 7.0390+-0.0499 7.0282+-0.0298 assign-custom-setter-polymorphic 2.2659+-0.0286 ? 2.2905+-0.0337 ? might be 1.0109x slower assign-custom-setter 3.1657+-0.0425 ? 3.1795+-0.0390 ? basic-set 8.7880+-0.5580 ? 9.7221+-2.0339 ? might be 1.1063x slower big-int-mul 3.3800+-0.0272 ? 3.4076+-0.0133 ? boolean-test 2.8591+-0.0639 2.8384+-0.0297 branch-fold 3.5453+-0.0335 3.5423+-0.0374 branch-on-string-as-boolean 16.2467+-0.0966 ? 16.4848+-0.3843 ? might be 1.0147x slower by-val-generic 2.3157+-0.0898 ? 2.3187+-0.0991 ? call-spread-apply 25.3475+-0.4661 24.9995+-0.1397 might be 1.0139x faster call-spread-call 20.7326+-0.5998 ? 20.9043+-0.7118 ? captured-assignments 0.4208+-0.0128 0.4169+-0.0060 cast-int-to-double 4.9739+-0.0415 ? 4.9798+-0.0208 ? cell-argument 6.3618+-0.2679 ? 6.4556+-0.6137 ? might be 1.0147x slower cfg-simplify 2.6830+-0.0110 ? 2.6947+-0.0429 ? chain-getter-access 8.3017+-0.1394 8.1808+-0.1268 might be 1.0148x faster cmpeq-obj-to-obj-other 11.5347+-1.1595 11.3896+-1.0131 might be 1.0127x faster constant-test 4.7191+-0.0308 ? 4.7410+-0.0214 ? create-lots-of-functions 9.6313+-0.9390 ? 9.6527+-0.6450 ? cse-new-array-buffer 2.1258+-0.1904 ? 2.1304+-0.0785 ? cse-new-array 2.1860+-0.0340 ? 2.2162+-0.2868 ? might be 1.0138x slower DataView-custom-properties 30.1216+-0.2375 ? 30.7803+-0.9405 ? might be 1.0219x slower delay-tear-off-arguments-strictmode 12.0564+-0.6187 ? 12.2154+-0.2262 ? might be 1.0132x slower deltablue-varargs 157.9064+-1.7741 ? 158.4551+-2.4953 ? destructuring-arguments 161.9882+-4.8000 159.7320+-1.4943 might be 1.0141x faster destructuring-parameters-overridden-by-function 0.4776+-0.0967 0.4445+-0.0270 might be 1.0744x faster destructuring-swap 4.6306+-0.0458 4.5729+-0.0299 might be 1.0126x faster direct-arguments-getbyval 1.1231+-0.0390 ? 1.1568+-0.0539 ? might be 1.0300x slower div-boolean-double 5.2545+-0.0909 ? 5.3113+-0.0485 ? might be 1.0108x slower div-boolean 8.0541+-0.0368 ? 8.0670+-0.0235 ? double-get-by-val-out-of-bounds 4.0174+-0.0466 ^ 3.9380+-0.0251 ^ definitely 1.0202x faster double-pollution-getbyval 8.5988+-0.0366 ? 8.6229+-0.0805 ? double-pollution-putbyoffset 3.7260+-0.0356 ? 3.8123+-0.1810 ? might be 1.0232x slower double-real-use 23.4354+-0.3914 23.4061+-0.2111 double-to-int32-typed-array-no-inline 1.9576+-0.0371 ? 1.9715+-0.0396 ? double-to-int32-typed-array 1.7627+-0.0466 1.7502+-0.0222 double-to-uint32-typed-array-no-inline 2.0250+-0.0391 2.0153+-0.0437 double-to-uint32-typed-array 1.8662+-0.0570 1.8283+-0.0135 might be 1.0208x faster elidable-new-object-dag 33.2395+-0.4521 ? 33.2689+-0.3763 ? elidable-new-object-roflcopter 32.6683+-0.5255 ? 32.7742+-0.3329 ? elidable-new-object-then-call 31.2894+-0.8530 ? 31.7666+-0.5417 ? might be 1.0153x slower elidable-new-object-tree 37.1651+-0.7979 36.8817+-0.4853 empty-string-plus-int 4.5108+-0.0569 ? 4.5150+-0.0579 ? emscripten-cube2hash 25.7342+-1.1173 25.0226+-1.3962 might be 1.0284x faster exit-length-on-plain-object 12.0525+-0.0923 ^ 11.8264+-0.1021 ^ definitely 1.0191x faster external-arguments-getbyval 1.1408+-0.0488 1.1375+-0.0429 external-arguments-putbyval 2.1161+-0.0963 ? 2.1204+-0.0892 ? fixed-typed-array-storage-var-index 1.0894+-0.0144 ? 1.0973+-0.0176 ? fixed-typed-array-storage 0.8289+-0.0508 0.8168+-0.0232 might be 1.0149x faster Float32Array-matrix-mult 3.7555+-0.0667 ? 3.7564+-0.0132 ? Float32Array-to-Float64Array-set 45.7307+-0.7201 45.4910+-0.3070 Float64Array-alloc-long-lived 67.6374+-0.7043 67.2691+-0.4622 Float64Array-to-Int16Array-set 55.3056+-0.1554 ? 56.4387+-1.0685 ? might be 1.0205x slower fold-double-to-int 11.7945+-0.1015 11.7146+-0.0753 fold-get-by-id-to-multi-get-by-offset-rare-int 11.8528+-0.9787 10.8605+-0.7125 might be 1.0914x faster fold-get-by-id-to-multi-get-by-offset 11.9667+-1.9151 10.6425+-1.5578 might be 1.1244x faster fold-multi-get-by-offset-to-get-by-offset 8.2088+-1.3269 ? 9.5037+-0.5221 ? might be 1.1577x slower fold-multi-get-by-offset-to-poly-get-by-offset 8.6027+-1.5659 7.6311+-1.3287 might be 1.1273x faster fold-multi-put-by-offset-to-poly-put-by-offset 8.4823+-0.6573 8.3536+-0.9036 might be 1.0154x faster fold-multi-put-by-offset-to-put-by-offset 4.3515+-0.8774 3.8646+-0.3347 might be 1.1260x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 7.9818+-0.1943 7.8625+-0.2143 might be 1.0152x faster fold-put-by-id-to-multi-put-by-offset 10.1424+-1.4085 9.3406+-0.2238 might be 1.0858x faster fold-put-by-val-with-string-to-multi-put-by-offset 10.5788+-1.4356 10.2902+-0.8733 might be 1.0280x faster fold-put-by-val-with-symbol-to-multi-put-by-offset 9.6845+-0.6998 ? 9.7968+-0.7253 ? might be 1.0116x slower fold-put-structure 4.8432+-0.9088 ? 4.9147+-0.8816 ? might be 1.0148x slower for-of-iterate-array-entries 10.7535+-0.2029 ? 10.7714+-0.1190 ? for-of-iterate-array-keys 3.3347+-0.1733 3.2762+-0.0279 might be 1.0179x faster for-of-iterate-array-values 3.2131+-0.0590 ? 3.3423+-0.2141 ? might be 1.0402x slower fround 18.9166+-0.8221 ? 18.9314+-0.2335 ? ftl-library-inlining-dataview 55.3078+-0.5726 54.9510+-0.0889 ftl-library-inlining 87.6084+-4.5405 86.0035+-1.3964 might be 1.0187x faster function-call 10.7166+-0.1258 10.5603+-0.1362 might be 1.0148x faster function-dot-apply 1.9997+-0.0640 1.9860+-0.0803 function-test 2.6684+-0.0592 ? 2.7824+-0.3411 ? might be 1.0428x slower function-with-eval 104.0928+-1.2840 102.9821+-1.5645 might be 1.0108x faster gcse-poly-get-less-obvious 14.2357+-0.7892 13.8836+-0.0513 might be 1.0254x faster gcse-poly-get 15.9726+-0.9269 15.5199+-0.0792 might be 1.0292x faster gcse 3.8007+-0.1218 3.7724+-0.0409 get-by-id-bimorphic-check-structure-elimination-simple 2.5556+-0.0264 ? 2.5588+-0.0780 ? get-by-id-bimorphic-check-structure-elimination 5.6172+-0.0129 ? 5.6320+-0.0906 ? get-by-id-chain-from-try-block 5.4611+-0.2159 5.4168+-0.0820 get-by-id-check-structure-elimination 4.2862+-0.0373 ? 4.2875+-0.0324 ? get-by-id-proto-or-self 14.6596+-0.8092 14.5082+-0.4705 might be 1.0104x faster get-by-id-quadmorphic-check-structure-elimination-simple 2.8397+-0.0557 2.8364+-0.0287 get-by-id-self-or-proto 14.2941+-0.2744 ? 14.8570+-0.7445 ? might be 1.0394x slower get-by-val-out-of-bounds 3.8463+-0.0275 3.8203+-0.0657 get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.7525+-0.0458 ? 2.7758+-0.0529 ? get-by-val-with-string-bimorphic-check-structure-elimination 5.8607+-0.0621 ? 5.8778+-0.0358 ? get-by-val-with-string-chain-from-try-block 5.4464+-0.0651 5.4211+-0.0893 get-by-val-with-string-check-structure-elimination 5.1183+-0.2638 5.0146+-0.0307 might be 1.0207x faster get-by-val-with-string-proto-or-self 14.6846+-0.4675 14.3778+-0.2298 might be 1.0213x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.1178+-0.0347 ? 3.1282+-0.0752 ? get-by-val-with-string-self-or-proto 15.1405+-0.9902 ? 16.6457+-3.8766 ? might be 1.0994x slower get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.0137+-0.0772 2.9849+-0.0423 get-by-val-with-symbol-bimorphic-check-structure-elimination 12.1414+-0.1014 12.1091+-0.0292 get-by-val-with-symbol-chain-from-try-block 5.5957+-0.1865 5.3889+-0.0370 might be 1.0384x faster get-by-val-with-symbol-check-structure-elimination 10.9048+-0.0330 ? 10.9880+-0.1200 ? get-by-val-with-symbol-proto-or-self 16.1063+-3.6942 14.8893+-0.6203 might be 1.0817x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 3.8351+-0.0284 ? 3.8789+-0.0828 ? might be 1.0114x slower get-by-val-with-symbol-self-or-proto 14.5466+-0.2533 ? 14.6444+-0.4636 ? get_callee_monomorphic 2.2635+-0.0280 ? 2.2967+-0.0711 ? might be 1.0147x slower get_callee_polymorphic 3.3388+-0.2224 3.1939+-0.0342 might be 1.0454x faster getter-no-activation 4.6781+-0.1984 ? 4.8097+-0.1651 ? might be 1.0281x slower getter-prototype 8.8122+-0.1744 ? 8.8633+-0.3124 ? getter-richards 115.0604+-4.5825 ? 117.2139+-5.4469 ? might be 1.0187x slower getter 5.1244+-0.3582 ? 5.7591+-0.6460 ? might be 1.1239x slower global-object-access-with-mutating-structure 5.4633+-0.0513 ? 5.5793+-0.0693 ? might be 1.0212x slower global-var-const-infer-fire-from-opt 0.7776+-0.0211 ? 0.8069+-0.0419 ? might be 1.0377x slower global-var-const-infer 0.5652+-0.0094 ? 0.5818+-0.0234 ? might be 1.0293x slower hard-overflow-check-equal 32.6585+-0.7544 32.4177+-0.3888 hard-overflow-check 32.5133+-0.3610 32.4125+-0.2540 HashMap-put-get-iterate-keys 23.4854+-1.4765 23.2868+-1.2983 HashMap-put-get-iterate 28.6874+-2.0548 ? 29.6574+-6.2766 ? might be 1.0338x slower HashMap-string-put-get-iterate 23.6944+-2.0800 23.5474+-0.7945 hoist-make-rope 8.0046+-0.6364 ? 8.2372+-0.7075 ? might be 1.0291x slower hoist-poly-check-structure-effectful-loop 4.0204+-0.0442 ? 4.1307+-0.2373 ? might be 1.0274x slower hoist-poly-check-structure 3.2260+-0.0395 3.2219+-0.0319 imul-double-only 7.5090+-0.1126 ? 7.5166+-0.0933 ? imul-int-only 8.5610+-1.1911 8.5003+-0.6702 imul-mixed 6.5911+-0.3734 ? 6.6618+-0.0747 ? might be 1.0107x slower in-four-cases 16.6248+-0.1384 ? 16.6347+-0.2535 ? in-one-case-false 9.1915+-0.1885 ? 9.2116+-0.2064 ? in-one-case-true 9.2945+-0.2861 9.1452+-0.1038 might be 1.0163x faster in-two-cases 9.5404+-0.2035 ? 9.5785+-0.1251 ? indexed-properties-in-objects 2.6844+-0.0285 ? 2.6973+-0.0590 ? infer-closure-const-then-mov-no-inline 2.9818+-0.0201 2.9802+-0.0191 infer-closure-const-then-mov 17.7456+-0.3002 ? 18.0708+-0.5125 ? might be 1.0183x slower infer-closure-const-then-put-to-scope-no-inline 10.7764+-0.1673 ? 10.8105+-0.3084 ? infer-closure-const-then-put-to-scope 20.6167+-0.3399 20.3789+-0.0435 might be 1.0117x faster infer-closure-const-then-reenter-no-inline 49.0720+-0.3849 ? 49.1754+-0.2477 ? infer-closure-const-then-reenter 21.0137+-0.4639 ? 21.1844+-0.5144 ? infer-constant-global-property 3.3478+-0.0488 ? 3.3486+-0.0187 ? infer-constant-property 2.5424+-0.0197 ? 2.5748+-0.0402 ? might be 1.0127x slower infer-one-time-closure-ten-vars 7.5525+-0.2238 ? 7.8120+-0.3737 ? might be 1.0344x slower infer-one-time-closure-two-vars 7.1821+-0.2339 7.0724+-0.1789 might be 1.0155x faster infer-one-time-closure 7.1272+-0.2851 7.0811+-0.1715 infer-one-time-deep-closure 10.4603+-0.1331 ? 10.5658+-0.6527 ? might be 1.0101x slower inline-arguments-access 3.6215+-0.0812 3.5955+-0.0669 inline-arguments-aliased-access 3.5964+-0.0910 3.5807+-0.0622 inline-arguments-local-escape 3.7923+-0.1522 ? 3.9592+-0.1635 ? might be 1.0440x slower inline-get-scoped-var 4.4432+-0.1145 ? 4.5253+-0.1980 ? might be 1.0185x slower inlined-put-by-id-transition 9.7841+-0.3899 9.5407+-0.4169 might be 1.0255x faster inlined-put-by-val-with-string-transition 70.5015+-1.0172 ? 71.6805+-1.5979 ? might be 1.0167x slower inlined-put-by-val-with-symbol-transition 69.7083+-0.8390 69.5151+-1.2443 int-or-other-abs-then-get-by-val 4.7844+-0.2295 4.7074+-0.0411 might be 1.0164x faster int-or-other-abs-zero-then-get-by-val 15.3157+-0.0565 ? 15.6718+-0.4508 ? might be 1.0233x slower int-or-other-add-then-get-by-val 4.0107+-0.1266 3.9392+-0.0686 might be 1.0182x faster int-or-other-add 4.7912+-0.0421 ? 4.8139+-0.0556 ? int-or-other-div-then-get-by-val 3.5986+-0.0321 ? 3.6079+-0.0290 ? int-or-other-max-then-get-by-val 3.8314+-0.0270 3.8162+-0.0295 int-or-other-min-then-get-by-val 3.8140+-0.0342 ? 3.9175+-0.1419 ? might be 1.0272x slower int-or-other-mod-then-get-by-val 3.4217+-0.0830 3.4133+-0.1130 int-or-other-mul-then-get-by-val 3.5294+-0.0532 3.5237+-0.0458 int-or-other-neg-then-get-by-val 4.3786+-0.0737 4.3471+-0.0591 int-or-other-neg-zero-then-get-by-val 15.4926+-0.2824 ? 15.7586+-0.7325 ? might be 1.0172x slower int-or-other-sub-then-get-by-val 3.9668+-0.0480 ? 3.9810+-0.0758 ? int-or-other-sub 3.3262+-0.0348 3.3185+-0.0148 int-overflow-local 4.2141+-0.0895 4.1925+-0.0638 Int16Array-alloc-long-lived 46.0607+-1.1016 45.1130+-0.3251 might be 1.0210x faster Int16Array-bubble-sort-with-byteLength 17.3273+-0.8495 17.0721+-0.2020 might be 1.0149x faster Int16Array-bubble-sort 17.1060+-0.1918 ? 17.1841+-0.3676 ? Int16Array-load-int-mul 1.3789+-0.0086 ? 1.3818+-0.0090 ? Int16Array-to-Int32Array-set 43.7358+-0.3908 ? 44.3448+-1.4962 ? might be 1.0139x slower Int32Array-alloc-large 11.7945+-0.3251 ? 11.9523+-0.4336 ? might be 1.0134x slower Int32Array-alloc-long-lived 53.1719+-0.0604 ? 53.8047+-1.3744 ? might be 1.0119x slower Int32Array-alloc 2.9035+-0.0824 2.8067+-0.1654 might be 1.0345x faster Int32Array-Int8Array-view-alloc 5.9920+-0.1729 5.9631+-0.0731 int52-spill 4.5046+-0.1031 4.4325+-0.0766 might be 1.0163x faster Int8Array-alloc-long-lived 40.9935+-0.9693 ? 41.0313+-0.7080 ? Int8Array-load-with-byteLength 3.3156+-0.0416 3.3110+-0.0329 Int8Array-load 3.3285+-0.0243 ? 3.5945+-0.4605 ? might be 1.0799x slower integer-divide 10.2147+-0.0838 ? 10.2914+-0.2696 ? integer-modulo 1.5087+-0.0354 ? 1.5454+-0.1176 ? might be 1.0243x slower is-boolean-fold-tricky 3.6994+-0.0216 ? 3.7406+-0.0585 ? might be 1.0111x slower is-boolean-fold 2.5731+-0.0282 ? 2.5739+-0.0415 ? is-function-fold-tricky-internal-function 9.6626+-0.1115 9.6085+-0.0397 is-function-fold-tricky 4.0522+-0.0268 4.0437+-0.0299 is-function-fold 2.6273+-0.0451 2.6197+-0.0450 is-number-fold-tricky 4.0374+-0.1158 ? 4.0550+-0.1548 ? is-number-fold 2.5877+-0.0321 2.5703+-0.0464 is-object-or-null-fold-functions 2.6361+-0.0716 ? 2.6467+-0.0683 ? is-object-or-null-fold-less-tricky 4.0219+-0.0597 ? 4.0698+-0.0588 ? might be 1.0119x slower is-object-or-null-fold-tricky 5.0003+-0.1178 ? 5.0886+-0.0442 ? might be 1.0177x slower is-object-or-null-fold 2.6135+-0.0243 2.6014+-0.0129 is-object-or-null-trickier-function 4.0605+-0.0374 4.0144+-0.0417 might be 1.0115x faster is-object-or-null-trickier-internal-function 10.1417+-0.0406 ? 10.1741+-0.0472 ? is-object-or-null-tricky-function 4.0531+-0.0697 ? 4.0638+-0.1085 ? is-object-or-null-tricky-internal-function 7.6518+-0.0451 7.5762+-0.0945 is-string-fold-tricky 3.9806+-0.0255 ? 3.9930+-0.0343 ? is-string-fold 2.6152+-0.0788 2.5668+-0.0246 might be 1.0189x faster is-undefined-fold-tricky 3.3135+-0.0783 3.3031+-0.0437 is-undefined-fold 2.5965+-0.0761 2.5891+-0.0562 JSONP-negative-0 0.2339+-0.0072 ? 0.2382+-0.0125 ? might be 1.0185x slower large-int-captured 3.8629+-0.1550 3.7720+-0.0799 might be 1.0241x faster large-int-neg 13.4146+-0.0749 ? 13.5300+-0.2186 ? large-int 12.4308+-0.1638 12.2634+-0.1404 might be 1.0137x faster load-varargs-elimination 20.7453+-0.6817 20.3266+-0.2301 might be 1.0206x faster logical-not-weird-types 2.8289+-0.0658 ? 2.8598+-0.0992 ? might be 1.0109x slower logical-not 4.2447+-0.1243 4.1981+-0.0816 might be 1.0111x faster lots-of-fields 9.2033+-0.2135 ? 9.2402+-0.0698 ? make-indexed-storage 2.8004+-0.0968 2.7653+-0.1917 might be 1.0127x faster make-rope-cse 3.5610+-0.0671 ? 3.7273+-0.3721 ? might be 1.0467x slower marsaglia-larger-ints 31.1121+-0.2591 31.0150+-0.3037 marsaglia-osr-entry 20.5086+-0.2876 ? 20.7721+-0.3191 ? might be 1.0128x slower math-with-out-of-bounds-array-values 21.2155+-0.6620 20.7806+-0.0494 might be 1.0209x faster max-boolean 2.6540+-0.0260 2.6179+-0.0241 might be 1.0138x faster method-on-number 15.3192+-0.0536 ? 15.8216+-0.7695 ? might be 1.0328x slower min-boolean 2.6531+-0.1642 2.6360+-0.0347 minus-boolean-double 3.0988+-0.0731 3.0490+-0.0202 might be 1.0163x faster minus-boolean 2.3182+-0.0560 ? 2.3255+-0.0438 ? misc-strict-eq 31.2414+-1.3887 30.3660+-0.5037 might be 1.0288x faster mod-boolean-double 11.0235+-0.1688 10.9827+-0.0651 mod-boolean 8.1938+-0.0469 ? 8.1960+-0.0164 ? mul-boolean-double 3.5466+-0.0167 ? 3.6127+-0.1523 ? might be 1.0186x slower mul-boolean 2.7503+-0.0339 ? 2.7871+-0.0714 ? might be 1.0134x slower neg-boolean 3.0738+-0.0361 ? 3.0777+-0.0548 ? negative-zero-divide 0.3372+-0.0275 0.3186+-0.0066 might be 1.0581x faster negative-zero-modulo 0.3642+-0.0385 0.3320+-0.0194 might be 1.0970x faster negative-zero-negate 0.3095+-0.0101 0.3008+-0.0060 might be 1.0291x faster nested-function-parsing 43.0414+-0.2280 ? 43.0541+-0.2928 ? new-array-buffer-dead 87.7669+-1.0390 87.0509+-0.6081 new-array-buffer-push 5.9836+-0.2683 ? 6.0164+-0.3012 ? new-array-dead 15.1150+-0.2240 14.6520+-1.1369 might be 1.0316x faster new-array-push 3.2756+-0.0508 ? 3.4158+-0.1605 ? might be 1.0428x slower no-inline-constructor 31.2361+-1.6512 30.5743+-0.2279 might be 1.0216x faster number-test 2.8235+-0.0397 2.8196+-0.0071 object-closure-call 4.7849+-0.1616 4.7094+-0.0523 might be 1.0160x faster object-get-own-property-symbols-on-large-array 4.2340+-0.1165 4.1859+-0.2484 might be 1.0115x faster object-test 2.5940+-0.0204 2.5666+-0.0234 might be 1.0107x faster obvious-sink-pathology-taken 99.9798+-1.6103 98.4559+-0.5493 might be 1.0155x faster obvious-sink-pathology 92.6983+-0.4362 ? 93.3418+-0.8966 ? obviously-elidable-new-object 28.1271+-0.2076 ? 28.4603+-0.5899 ? might be 1.0118x slower plus-boolean-arith 2.3325+-0.0121 ? 2.4060+-0.0969 ? might be 1.0315x slower plus-boolean-double 3.2055+-0.3375 3.0879+-0.0610 might be 1.0381x faster plus-boolean 2.5099+-0.0391 ? 2.5236+-0.0833 ? poly-chain-access-different-prototypes-simple 3.2078+-0.0552 ? 3.2598+-0.1521 ? might be 1.0162x slower poly-chain-access-different-prototypes 2.8287+-0.0315 ? 2.9034+-0.2172 ? might be 1.0264x slower poly-chain-access-simpler 3.1949+-0.0401 ? 3.2096+-0.0325 ? poly-chain-access 3.2342+-0.0656 3.2281+-0.0695 poly-stricteq 49.2184+-0.4384 ? 50.4599+-2.1350 ? might be 1.0252x slower polymorphic-array-call 1.2460+-0.0775 1.2030+-0.0447 might be 1.0358x faster polymorphic-get-by-id 2.7590+-0.0292 2.7423+-0.0129 polymorphic-put-by-id 24.2499+-1.1018 ? 24.6989+-0.8290 ? might be 1.0185x slower polymorphic-put-by-val-with-string 25.4427+-0.9280 25.0579+-1.8229 might be 1.0154x faster polymorphic-put-by-val-with-symbol 25.6676+-0.9393 25.0919+-0.6759 might be 1.0229x faster polymorphic-structure 12.8545+-0.4926 12.7795+-0.1362 polyvariant-monomorphic-get-by-id 6.7143+-0.9925 ? 7.2959+-1.2872 ? might be 1.0866x slower proto-getter-access 8.1506+-0.2038 8.1364+-0.0878 prototype-access-with-mutating-prototype 5.4062+-0.2760 ? 5.5414+-0.2783 ? might be 1.0250x slower put-by-id-replace-and-transition 7.8639+-0.6218 7.4642+-0.1918 might be 1.0536x faster put-by-id-slightly-polymorphic 2.5727+-0.0239 ? 2.6495+-0.0741 ? might be 1.0299x slower put-by-id 9.3699+-0.1500 ? 9.5504+-0.3046 ? might be 1.0193x slower put-by-val-direct 0.3391+-0.0362 0.3171+-0.0061 might be 1.0692x faster put-by-val-large-index-blank-indexing-type 5.3554+-0.0789 ? 5.3717+-0.1312 ? put-by-val-machine-int 2.2908+-0.0784 2.2623+-0.0929 might be 1.0126x faster put-by-val-with-string-replace-and-transition 9.6938+-0.0893 9.6828+-0.0718 put-by-val-with-string-slightly-polymorphic 2.7967+-0.0194 ? 2.8865+-0.2151 ? might be 1.0321x slower put-by-val-with-string 10.2572+-0.4970 9.9411+-0.2194 might be 1.0318x faster put-by-val-with-symbol-replace-and-transition 11.2427+-0.1753 ? 11.3769+-0.3278 ? might be 1.0119x slower put-by-val-with-symbol-slightly-polymorphic 2.9816+-0.0095 2.9735+-0.0126 put-by-val-with-symbol 9.8827+-0.1375 ? 10.0149+-0.2660 ? might be 1.0134x slower rare-osr-exit-on-local 14.4666+-0.1255 14.3394+-0.1940 register-pressure-from-osr 15.9889+-0.0951 ? 16.5663+-1.2520 ? might be 1.0361x slower repeat-multi-get-by-offset 20.9466+-0.1361 20.9314+-0.2137 setter-prototype 7.4682+-0.1552 ? 7.5248+-0.1108 ? setter 5.4310+-0.4778 ? 5.5669+-0.6003 ? might be 1.0250x slower simple-activation-demo 23.5344+-0.2652 ? 23.8083+-1.0681 ? might be 1.0116x slower simple-getter-access 10.4102+-0.1432 ? 10.4474+-0.1596 ? simple-poly-call-nested 8.6742+-0.7648 7.7768+-0.6829 might be 1.1154x faster simple-poly-call 1.1451+-0.0198 ? 1.1587+-0.0197 ? might be 1.0118x slower sin-boolean 18.7744+-1.7670 ? 20.3601+-1.8433 ? might be 1.0845x slower singleton-scope 59.3486+-0.2842 ? 59.5993+-1.0301 ? sink-function 10.0396+-0.2794 9.6503+-0.3707 might be 1.0403x faster sink-huge-activation 16.3284+-0.4477 16.2236+-0.6244 sinkable-new-object-dag 52.8471+-0.8935 ? 53.2695+-0.7067 ? sinkable-new-object-taken 43.8405+-1.5318 43.1814+-1.0885 might be 1.0153x faster sinkable-new-object 29.2833+-0.3396 ? 29.3173+-0.2789 ? slow-array-profile-convergence 2.3216+-0.0741 2.3091+-0.0797 slow-convergence 2.2730+-0.1356 2.2015+-0.0193 might be 1.0325x faster slow-ternaries 17.1104+-0.6193 ? 17.7142+-1.7607 ? might be 1.0353x slower sorting-benchmark 16.3154+-0.3326 16.1729+-0.4739 sparse-conditional 1.0810+-0.0230 ? 1.0892+-0.0238 ? splice-to-remove 11.9929+-0.0757 11.9701+-0.1559 string-char-code-at 13.8354+-0.1991 13.7718+-0.0648 string-concat-object 2.0719+-0.0541 ? 2.2245+-0.2277 ? might be 1.0736x slower string-concat-pair-object 2.1531+-0.1057 2.0420+-0.0987 might be 1.0544x faster string-concat-pair-simple 9.2519+-0.5406 8.8948+-0.1265 might be 1.0401x faster string-concat-simple 9.3300+-0.2780 ? 9.3325+-0.3235 ? string-cons-repeat 6.3292+-0.3561 6.1364+-0.0506 might be 1.0314x faster string-cons-tower 6.3697+-0.0514 ? 6.3966+-0.1058 ? string-equality 15.0746+-0.7289 14.6572+-0.1295 might be 1.0285x faster string-get-by-val-big-char 6.4367+-0.0701 ! 6.5755+-0.0497 ! definitely 1.0216x slower string-get-by-val-out-of-bounds-insane 3.1294+-0.0578 ? 3.1673+-0.1868 ? might be 1.0121x slower string-get-by-val-out-of-bounds 4.0995+-0.3033 ? 4.2205+-0.5930 ? might be 1.0295x slower string-get-by-val 2.7836+-0.0255 2.7801+-0.0134 string-hash 1.8148+-0.1044 1.7696+-0.0238 might be 1.0255x faster string-long-ident-equality 12.1288+-0.0624 ? 12.2015+-0.1203 ? string-out-of-bounds 10.4116+-0.8754 ? 10.7363+-1.7412 ? might be 1.0312x slower string-repeat-arith 26.2251+-0.3852 25.9062+-0.4741 might be 1.0123x faster string-sub 52.1999+-1.0450 52.0824+-0.1520 string-test 2.7009+-0.0318 2.6722+-0.0154 might be 1.0107x faster string-var-equality 25.5200+-0.6660 25.0155+-0.4336 might be 1.0202x faster structure-hoist-over-transitions 2.3495+-0.0925 2.3191+-0.0634 might be 1.0131x faster substring-concat-weird 36.7699+-0.5243 36.3555+-0.2822 might be 1.0114x faster substring-concat 39.6393+-0.6832 39.4037+-0.7354 substring 45.3419+-2.9255 44.2080+-0.2246 might be 1.0256x faster switch-char-constant 2.5640+-0.0380 ? 2.6018+-0.0216 ? might be 1.0147x slower switch-char 5.9107+-0.9067 5.6619+-0.8331 might be 1.0439x faster switch-constant 8.4246+-0.6283 ? 8.7864+-0.6750 ? might be 1.0429x slower switch-string-basic-big-var 13.5616+-0.0418 ? 13.6811+-0.1509 ? switch-string-basic-big 14.1120+-0.1018 ? 14.2493+-0.3413 ? switch-string-basic-var 12.7639+-0.3560 ? 13.1205+-1.0676 ? might be 1.0279x slower switch-string-basic 12.3003+-0.0386 ? 12.3623+-0.0677 ? switch-string-big-length-tower-var 17.4817+-0.0520 ? 17.8080+-0.6531 ? might be 1.0187x slower switch-string-length-tower-var 13.4237+-0.1535 ? 13.9589+-1.3824 ? might be 1.0399x slower switch-string-length-tower 12.6003+-2.7949 11.4287+-0.1518 might be 1.1025x faster switch-string-short 11.4483+-0.0829 ? 11.5819+-0.2594 ? might be 1.0117x slower switch 11.1274+-0.1503 11.0908+-0.3580 tear-off-arguments-simple 2.9958+-0.0893 2.9481+-0.1132 might be 1.0162x faster tear-off-arguments 3.9220+-0.1368 3.8833+-0.0521 temporal-structure 11.8124+-0.2475 11.7484+-0.1552 to-int32-boolean 12.2358+-0.0999 12.2149+-0.1206 try-catch-get-by-val-cloned-arguments 13.2247+-0.1016 ! 13.6847+-0.2252 ! definitely 1.0348x slower try-catch-get-by-val-direct-arguments 6.2656+-0.0895 6.2077+-0.1435 try-catch-get-by-val-scoped-arguments 7.5455+-0.2674 7.2786+-0.0943 might be 1.0367x faster typed-array-get-set-by-val-profiling 26.7421+-1.0327 26.3918+-0.3711 might be 1.0133x faster undefined-property-access 222.6511+-1.0912 ? 223.8125+-1.5774 ? undefined-test 2.8483+-0.0883 2.8483+-0.0557 unprofiled-licm 13.6898+-0.3632 ? 14.2082+-1.2831 ? might be 1.0379x slower varargs-call 13.1042+-0.1624 13.0749+-0.1244 varargs-construct-inline 21.7938+-0.1282 ? 21.9529+-0.4909 ? varargs-construct 19.4144+-0.4428 ? 21.4516+-4.6726 ? might be 1.1049x slower varargs-inline 8.2771+-0.0403 ? 9.2131+-2.0952 ? might be 1.1131x slower varargs-strict-mode 8.8630+-0.1108 8.8560+-0.0218 varargs 8.8161+-0.0490 ? 8.9058+-0.2449 ? might be 1.0102x slower weird-inlining-const-prop 2.6333+-0.1671 2.5916+-0.2251 might be 1.0161x faster <geometric> 7.6729+-0.0187 ? 7.6764+-0.0181 ? might be 1.0005x slower TipOfTree BetterNodeOrigin AsmBench: bigfib.cpp 448.5059+-5.1930 ? 452.6486+-8.9662 ? cray.c 397.8228+-3.0332 ? 398.0834+-2.9925 ? dry.c 425.0640+-7.2702 ? 425.8344+-7.9413 ? FloatMM.c 684.3753+-3.9563 683.8740+-2.4857 gcc-loops.cpp 3420.2200+-12.4996 ? 3420.3003+-11.5332 ? n-body.c 823.1715+-3.3997 ? 823.2854+-3.7652 ? Quicksort.c 407.9977+-5.7474 403.1648+-3.5230 might be 1.0120x faster stepanov_container.cpp 3576.7224+-33.9335 3547.0458+-22.4680 Towers.c 233.3327+-1.6046 ? 236.2612+-7.5210 ? might be 1.0126x slower <geometric> 716.4544+-2.4065 ? 716.6823+-3.7049 ? might be 1.0003x slower TipOfTree BetterNodeOrigin CompressionBench: huffman 59.5610+-1.2837 ? 60.2004+-1.9224 ? might be 1.0107x slower arithmetic-simple 270.0619+-0.8556 ? 271.1015+-1.4948 ? arithmetic-precise 244.6134+-3.0700 ? 245.5301+-4.5504 ? arithmetic-complex-precise 245.8313+-6.0585 241.9283+-1.2557 might be 1.0161x faster arithmetic-precise-order-0 282.6973+-3.5471 ? 283.9946+-8.6371 ? arithmetic-precise-order-1 306.5167+-7.9570 303.6981+-2.4258 arithmetic-precise-order-2 354.6087+-4.6245 352.3367+-2.5976 arithmetic-simple-order-1 331.1409+-7.4445 ? 358.7324+-75.0263 ? might be 1.0833x slower arithmetic-simple-order-2 384.2340+-5.8287 383.0826+-5.3712 lz-string 309.2750+-5.3001 307.4274+-3.2608 <geometric> 255.1156+-1.1705 ? 256.3116+-5.0011 ? might be 1.0047x slower TipOfTree BetterNodeOrigin Geomean of preferred means: <scaled-result> 50.7147+-0.1554 50.6886+-0.1743 might be 1.0005x faster
Comment on attachment 259645 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=259645&action=review r=me > Source/JavaScriptCore/dfg/DFGNodeOrigin.h:51 > + NodeOrigin withSemantic(CodeOrigin semantic) This function is nice.
Landed in http://trac.webkit.org/changeset/188771