Bug 154440 - [ES6] Implement Proxy.[[Construct]]
Summary: [ES6] Implement Proxy.[[Construct]]
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Saam Barati
URL:
Keywords:
Depends on: 154856
Blocks:
  Show dependency treegraph
 
Reported: 2016-02-18 23:00 PST by Saam Barati
Modified: 2016-03-01 04:51 PST (History)
11 users (show)

See Also:


Attachments
patch (23.54 KB, patch)
2016-02-19 18:19 PST, Saam Barati
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Saam Barati 2016-02-18 23:00:10 PST
...
Comment 1 Saam Barati 2016-02-19 18:19:36 PST
Created attachment 271833 [details]
patch
Comment 2 WebKit Commit Bot 2016-02-19 18:21:11 PST
Attachment 271833 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOperations.cpp:167:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Saam Barati 2016-02-19 18:23:38 PST
Ran benchmarks because of changing create_this
It's claiming a big slow down on json-stringify-tinderbox,
but I don't trust that it's actually a slow down. I haven't
changed code related to that benchmark and have seen a slow down (like now),
and I've also changed code not related to it and seen a speed up
in the past. I'm going to ignore it for now. When running just
that benchmark without the entire suite, I was getting about a 4% "slowdown".



Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Saams-MacBook-Pro (MacBookPro11,3).

VMs tested:
"og" at /Volumes/Data/WK/a/OpenSource/WebKitBuild/Release/jsc (r196836)
"change" at /Volumes/Data/WK/c/OpenSource/WebKitBuild/Release/jsc (r196836)

Collected 6 samples per benchmark/VM, with 6 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.

                                                            og                      change                                      
SunSpider:
   3d-cube                                            7.3352+-0.4663            7.1460+-0.1870          might be 1.0265x faster
   3d-morph                                           8.1139+-0.1181            8.0964+-0.1144        
   3d-raytrace                                        9.6134+-2.8296            9.1818+-0.9997          might be 1.0470x faster
   access-binary-trees                                3.0880+-0.0443            3.0793+-0.0598        
   access-fannkuch                                    9.0050+-0.1508            8.8686+-0.2245          might be 1.0154x faster
   access-nbody                                       4.0245+-0.2063            3.9428+-0.0500          might be 1.0207x faster
   access-nsieve                                      4.9777+-0.2602            4.9047+-0.0782          might be 1.0149x faster
   bitops-3bit-bits-in-byte                           1.6918+-0.0608     ?      1.6965+-0.0245        ?
   bitops-bits-in-byte                                4.6413+-0.1482     ?      4.6781+-0.1415        ?
   bitops-bitwise-and                                 3.0629+-0.0525            3.0483+-0.0649        
   bitops-nsieve-bits                                 4.9324+-1.1371            4.5110+-0.2135          might be 1.0934x faster
   controlflow-recursive                              3.5227+-0.1266            3.5150+-0.0640        
   crypto-aes                                         6.0642+-0.0389            6.0491+-0.0793        
   crypto-md5                                         3.8072+-0.0445     ?      3.8101+-0.0630        ?
   crypto-sha1                                        3.4468+-0.0914            3.3488+-0.0455          might be 1.0292x faster
   date-format-tofte                                 10.6065+-0.5264     ?     10.7917+-0.5968        ? might be 1.0175x slower
   date-format-xparb                                  7.1639+-0.3590     ?      7.6572+-1.3926        ? might be 1.0689x slower
   math-cordic                                        4.3578+-0.0657     ?      4.3887+-0.1230        ?
   math-partial-sums                                  7.3992+-0.0502     ?      7.4186+-0.1427        ?
   math-spectral-norm                                 2.9541+-0.0452            2.9510+-0.0163        
   regexp-dna                                         9.7386+-0.3839            9.5715+-0.1910          might be 1.0175x faster
   string-base64                                      6.6731+-0.0606     ?      7.4460+-1.8705        ? might be 1.1158x slower
   string-fasta                                       9.0912+-0.5939            8.9958+-0.2135          might be 1.0106x faster
   string-tagcloud                                   12.3619+-0.2760           12.2238+-0.3188          might be 1.0113x faster
   string-unpack-code                                27.1171+-0.3927     ?     27.6357+-0.7797        ? might be 1.0191x slower
   string-validate-input                              6.3763+-0.0605     ?      6.3915+-0.0894        ?

   <arithmetic>                                       6.9680+-0.1766     ?      6.9749+-0.1716        ? might be 1.0010x slower

                                                            og                      change                                      
LongSpider:
   3d-cube                                         1242.4852+-13.6719        1232.8468+-6.8158        
   3d-morph                                         922.0151+-2.5596          921.1400+-0.8496        
   3d-raytrace                                      966.2213+-6.3557     ?    969.6072+-6.8909        ?
   access-binary-trees                             1245.0384+-11.3726        1240.1152+-4.8851        
   access-fannkuch                                  439.0143+-46.6689         426.0937+-48.7848         might be 1.0303x faster
   access-nbody                                     796.5947+-0.2257          796.5033+-0.1370        
   access-nsieve                                    515.4970+-3.4211     ?    538.3703+-58.0893       ? might be 1.0444x slower
   bitops-3bit-bits-in-byte                          51.5664+-0.2317           51.4462+-0.0411        
   bitops-bits-in-byte                              168.5716+-3.5800     ?    169.2112+-2.8106        ?
   bitops-nsieve-bits                               598.8747+-6.1902          594.7639+-3.1494        
   controlflow-recursive                            706.6451+-3.4939          705.9624+-2.3617        
   crypto-aes                                       989.7089+-4.5953     ?    990.3807+-5.8667        ?
   crypto-md5                                       908.3913+-12.5433    ?    910.6193+-11.0576       ?
   crypto-sha1                                     1153.3921+-5.9309         1152.8166+-4.9250        
   date-format-tofte                                876.1734+-21.3831    ?    876.4246+-12.1941       ?
   date-format-xparb                                995.1245+-4.4365     !   1001.1654+-1.5823        ! definitely 1.0061x slower
   hash-map                                         236.8259+-4.1157          236.4858+-2.8132        
   math-cordic                                      731.4942+-9.0434     ?    738.7069+-9.5928        ?
   math-partial-sums                                636.4109+-0.7241          635.8084+-0.8192        
   math-spectral-norm                               854.4603+-0.7814          853.9714+-0.9064        
   string-base64                                    589.3462+-6.6652     ?    627.6405+-91.9425       ? might be 1.0650x slower
   string-fasta                                     542.2315+-5.4449     ?    548.3340+-12.0857       ? might be 1.0113x slower
   string-tagcloud                                  256.9517+-2.5891          255.6188+-0.9506        

   <geometric>                                      594.3759+-3.8175     ?    596.2281+-4.9291        ? might be 1.0031x slower

                                                            og                      change                                      
V8Spider:
   crypto                                            57.8856+-0.5269           57.3193+-0.1828        
   deltablue                                         76.2763+-2.8686     ?     77.2826+-1.9250        ? might be 1.0132x slower
   earley-boyer                                      59.5703+-0.3917           59.4159+-0.6276        
   raytrace                                          30.1468+-0.4771     ?     30.5571+-0.7821        ? might be 1.0136x slower
   regexp                                            94.7330+-2.2973     ?     94.7757+-1.6146        ?
   richards                                          62.1947+-0.4271     ?     62.5832+-0.6415        ?
   splay                                             50.3670+-4.1729           49.7024+-2.5730          might be 1.0134x faster

   <geometric>                                       58.5024+-0.2974     ?     58.5851+-0.9460        ? might be 1.0014x slower

                                                            og                      change                                      
Octane:
   encrypt                                           0.23992+-0.00382    ?     0.24193+-0.00226       ?
   decrypt                                           4.33483+-0.02945          4.32319+-0.01387       
   deltablue                                x2       0.21232+-0.01646          0.20528+-0.00414         might be 1.0343x faster
   earley                                            0.44867+-0.00994    ?     0.45108+-0.00533       ?
   boyer                                             7.47964+-0.04263          7.47459+-0.01792       
   navier-stokes                            x2       7.60486+-0.00891    ?     7.60855+-0.01461       ?
   raytrace                                 x2       1.38565+-0.02772    ?     1.40023+-0.00514       ? might be 1.0105x slower
   richards                                 x2       0.12613+-0.00208          0.12560+-0.00089       
   splay                                    x2       0.52524+-0.00810          0.51534+-0.00977         might be 1.0192x faster
   regexp                                   x2      39.57396+-0.47047         38.73897+-0.70656         might be 1.0216x faster
   pdfjs                                    x2      58.68395+-0.24273         58.28930+-0.59698       
   mandreel                                 x2      69.95148+-0.19873    ?    70.00130+-0.14337       ?
   gbemu                                    x2      42.50506+-1.06774         42.14435+-0.22374       
   closure                                           0.87863+-0.00905          0.87338+-0.00326       
   jquery                                           11.38190+-0.06962         11.31866+-0.04586       
   box2d                                    x2      15.35900+-0.07890    ?    15.49120+-0.10929       ?
   zlib                                     x2     575.99291+-2.97203    ?   577.16005+-2.72533       ?
   typescript                               x2     957.06177+-5.46219    ?   963.24581+-15.50920      ?

   <geometric>                                       8.20108+-0.05889          8.16650+-0.02706         might be 1.0042x faster

                                                            og                      change                                      
Kraken:
   ai-astar                                          147.391+-2.454      ?     151.310+-6.850         ? might be 1.0266x slower
   audio-beat-detection                               65.647+-0.283      ?      65.717+-0.627         ?
   audio-dft                                         150.811+-15.608           145.208+-0.649           might be 1.0386x faster
   audio-fft                                          48.611+-0.186             48.520+-0.134         
   audio-oscillator                                   74.217+-0.455      ?      74.354+-0.533         ?
   imaging-darkroom                                   89.717+-0.629             89.319+-0.189         
   imaging-desaturate                                 69.847+-4.291             68.393+-0.377           might be 1.0213x faster
   imaging-gaussian-blur                             118.460+-0.151            116.509+-6.020           might be 1.0167x faster
   json-parse-financial                               56.039+-0.214             55.788+-0.254         
   json-stringify-tinderbox                           35.173+-1.173      !      38.194+-1.300         ! definitely 1.0859x slower
   stanford-crypto-aes                                62.263+-2.311             60.545+-0.534           might be 1.0284x faster
   stanford-crypto-ccm                                54.027+-2.789      ?      54.896+-0.589         ? might be 1.0161x slower
   stanford-crypto-pbkdf2                            154.988+-1.636      ?     155.629+-2.984         ?
   stanford-crypto-sha256-iterative                   59.001+-0.121             58.664+-0.241         

   <arithmetic>                                       84.728+-0.973             84.503+-0.751           might be 1.0027x faster

                                                            og                      change                                      
JSRegress:
   abc-forward-loop-equal                            36.5127+-0.2768           36.4107+-0.1725        
   abc-postfix-backward-loop                         45.5080+-0.0747     ?     45.5204+-0.0417        ?
   abc-simple-backward-loop                          40.7005+-11.3838          36.0231+-0.0780          might be 1.1298x faster
   abc-simple-forward-loop                           36.2334+-0.1271           36.1530+-0.1020        
   abc-skippy-loop                                   31.6122+-0.1952           31.4352+-0.0621        
   abs-boolean                                        3.6845+-0.0299     ?      3.6922+-0.0226        ?
   adapt-to-double-divide                            22.0971+-0.2176     ?     22.2865+-0.3434        ?
   aliased-arguments-getbyval                         1.6357+-0.0828     ?      1.6758+-0.0866        ? might be 1.0245x slower
   allocate-big-object                                3.3757+-0.0770     ?      3.3944+-0.1404        ?
   arguments-named-and-reflective                    12.2998+-0.2238           12.2590+-0.0716        
   arguments-out-of-bounds                           10.5395+-0.7868           10.3346+-0.1138          might be 1.0198x faster
   arguments-strict-mode                             71.3882+-4.1087           71.2793+-1.9183        
   arguments                                         10.2171+-0.0319     ?     10.2407+-0.0300        ?
   arity-mismatch-inlining                            1.2443+-0.0231     ?      1.2830+-0.0845        ? might be 1.0311x slower
   array-access-polymorphic-structure                12.0463+-3.1274           10.9351+-0.2735          might be 1.1016x faster
   array-nonarray-polymorhpic-access                 30.0765+-0.5181           29.8516+-0.7048        
   array-prototype-every                            105.4339+-1.3356     ?    105.7482+-0.8858        ?
   array-prototype-forEach                          104.0730+-1.4117     ?    105.2797+-0.4358        ? might be 1.0116x slower
   array-prototype-map                              114.9467+-1.7982     ?    116.4191+-3.1071        ? might be 1.0128x slower
   array-prototype-reduce                            99.3820+-0.1125     ?     99.8306+-0.3842        ?
   array-prototype-reduceRight                      129.2960+-4.7693     ^    122.7528+-0.1741        ^ definitely 1.0533x faster
   array-prototype-some                             105.7176+-0.3662     ?    106.9655+-2.5647        ? might be 1.0118x slower
   array-splice-contiguous                           34.0573+-0.4899           33.8890+-0.4219        
   array-with-double-add                              5.2749+-0.0627            5.2520+-0.0256        
   array-with-double-increment                        5.0711+-1.0856            4.5960+-0.0376          might be 1.1034x faster
   array-with-double-mul-add                          6.7314+-0.0665     ?      6.7346+-0.0713        ?
   array-with-double-sum                              4.7786+-0.0399            4.7714+-0.0736        
   array-with-int32-add-sub                           9.4058+-0.0691     ?     10.7882+-2.9958        ? might be 1.1470x slower
   array-with-int32-or-double-sum                     5.1645+-0.6110            4.9011+-0.0578          might be 1.0537x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     41.8556+-0.6715           41.0613+-0.4165          might be 1.0193x faster
   ArrayBuffer-DataView-alloc-long-lived             18.8993+-0.1697           18.8428+-0.1673        
   ArrayBuffer-Int32Array-byteOffset                  5.4115+-0.1345            5.3882+-0.0663        
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     41.4325+-0.5990           41.1364+-0.2769        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     30.0013+-0.6733           29.9598+-0.1891        
   ArrayBuffer-Int8Array-alloc-long-lived            17.4955+-0.3460           17.4491+-0.5773        
   ArrayBuffer-Int8Array-alloc                       14.8814+-0.4550           14.5488+-0.2238          might be 1.0229x faster
   arrowfunction-call                                14.7749+-0.1841     ?     14.9010+-0.3003        ?
   asmjs_bool_bug                                    11.3498+-0.1272           11.2873+-0.2073        
   assign-custom-setter-polymorphic                   3.8240+-0.0232     ?      3.8607+-0.0253        ?
   assign-custom-setter                               5.4792+-0.2313            5.4765+-0.0333        
   basic-set                                         11.9658+-0.5783           11.7269+-0.3591          might be 1.0204x faster
   big-int-mul                                        4.6221+-0.0462            4.6187+-0.0323        
   boolean-test                                       4.9812+-0.0602     ?      5.0057+-0.0443        ?
   branch-fold                                        5.3112+-0.0398            5.3009+-0.0350        
   branch-on-string-as-boolean                       17.7840+-0.6994     ?     18.3415+-1.1960        ? might be 1.0313x slower
   by-val-generic                                     6.3180+-0.2985     ?      6.3468+-0.2372        ?
   call-spread-apply                                 66.5140+-1.0930           66.0244+-1.2365        
   call-spread-call                                 102.3954+-4.6849           99.5690+-4.5115          might be 1.0284x faster
   captured-assignments                               0.6586+-0.0178            0.6558+-0.0117        
   cast-int-to-double                                 7.5343+-0.0406            7.5205+-0.0197        
   cell-argument                                      4.2754+-0.0304            4.2317+-0.0327          might be 1.0103x faster
   cfg-simplify                                       4.2502+-0.1075     ?      4.3474+-0.1401        ? might be 1.0229x slower
   chain-getter-access                               16.9537+-0.1834     ?     16.9654+-0.1570        ?
   cmpeq-obj-to-obj-other                            13.3575+-0.6335           13.2274+-0.2207        
   constant-test                                      7.1350+-0.0863            7.0872+-0.0265        
   create-lots-of-functions                          11.5844+-1.5026     ?     11.7909+-1.5675        ? might be 1.0178x slower
   cse-new-array-buffer                               3.2148+-0.1239            3.1968+-0.1363        
   cse-new-array                                      3.3415+-0.1660            3.1746+-0.1719          might be 1.0526x faster
   custom-setter-getter-as-put-get-by-id              0.7576+-0.0270     ?      0.7635+-0.0417        ?
   DataView-custom-properties                        49.3934+-0.6126     ?     49.8127+-0.3023        ?
   delay-tear-off-arguments-strictmode               17.6281+-0.2527     ?     18.7403+-2.6266        ? might be 1.0631x slower
   deltablue-varargs                                 59.4245+-5.3761           57.9547+-0.8120          might be 1.0254x faster
   destructuring-arguments                          236.2841+-1.8385     ?    238.0123+-1.1428        ?
   destructuring-parameters-overridden-by-function   
                                                      0.6628+-0.0130     ?      0.6650+-0.0117        ?
   destructuring-swap                                 6.9567+-0.0358     ?      6.9786+-0.0583        ?
   direct-arguments-getbyval                          1.6383+-0.0637     ?      1.7878+-0.1479        ? might be 1.0913x slower
   div-boolean-double                                 7.0535+-0.0249            7.0513+-0.0280        
   div-boolean                                       11.7393+-0.0862     ?     11.8074+-0.1443        ?
   double-get-by-val-out-of-bounds                    6.3873+-0.1944     ?      6.3898+-0.3729        ?
   double-pollution-getbyval                         12.8420+-0.2003           12.7166+-0.1455        
   double-pollution-putbyoffset                       5.3537+-0.0494     ?      5.3572+-0.1084        ?
   double-real-use                                   36.8113+-0.0908     ?     37.7024+-2.2315        ? might be 1.0242x slower
   double-to-int32-typed-array-no-inline              3.0017+-0.1833            2.9656+-0.0477          might be 1.0122x faster
   double-to-int32-typed-array                        2.9742+-0.0250     ?      3.0913+-0.1779        ? might be 1.0394x slower
   double-to-uint32-typed-array-no-inline             3.3708+-0.8654            3.1635+-0.1382          might be 1.0655x faster
   double-to-uint32-typed-array                       3.0540+-0.1024            3.0181+-0.0453          might be 1.0119x faster
   elidable-new-object-dag                           46.5707+-0.2543     ?     47.0789+-0.8476        ? might be 1.0109x slower
   elidable-new-object-roflcopter                    48.3047+-0.2728     ?     48.4083+-0.2487        ?
   elidable-new-object-then-call                     35.7102+-0.1747           35.5980+-0.1774        
   elidable-new-object-tree                          48.2112+-0.6200           47.9027+-0.1552        
   empty-string-plus-int                              7.2731+-0.1318            7.1809+-0.1425          might be 1.0128x faster
   emscripten-cube2hash                              37.1432+-0.5754     ?     37.2406+-0.4953        ?
   exit-length-on-plain-object                       22.8970+-1.0963           22.7937+-0.2576        
   external-arguments-getbyval                        1.6542+-0.0996            1.6338+-0.0334          might be 1.0125x faster
   external-arguments-putbyval                        3.2590+-0.0425     ?      3.3352+-0.1985        ? might be 1.0234x slower
   fixed-typed-array-storage-var-index                1.7450+-0.0189            1.7439+-0.0535        
   fixed-typed-array-storage                          1.3679+-0.0361     ?      1.4212+-0.1523        ? might be 1.0390x slower
   Float32Array-matrix-mult                           7.0207+-0.5170            6.7926+-0.1140          might be 1.0336x faster
   Float32Array-to-Float64Array-set                  65.3985+-1.9354     ?     67.2919+-1.8026        ? might be 1.0290x slower
   Float64Array-alloc-long-lived                     83.0955+-0.8420           82.6116+-0.7893        
   Float64Array-to-Int16Array-set                    85.6010+-0.5512     ?     89.3221+-9.6583        ? might be 1.0435x slower
   fold-double-to-int                                19.6587+-0.0380     ?     19.8480+-0.3100        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     13.0333+-0.2278     ?     13.1366+-0.3499        ?
   fold-get-by-id-to-multi-get-by-offset             10.4372+-0.1702     ?     10.5262+-0.1806        ?
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.4837+-2.0436     ?      9.4855+-2.0086        ?
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     11.0156+-2.6362            9.3213+-2.0326          might be 1.1818x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     10.8171+-1.7410     ?     11.5111+-1.8754        ? might be 1.0642x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      9.5806+-1.7255     ?     10.0908+-3.0790        ? might be 1.0533x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     14.9005+-1.5536           14.3613+-0.2485          might be 1.0375x faster
   fold-put-by-id-to-multi-put-by-offset             12.4680+-0.1263     ?     12.4839+-0.2977        ?
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     12.6362+-0.3500           12.6081+-0.1973        
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     12.8319+-0.3048           12.7501+-0.0574        
   fold-put-structure                                 7.5072+-0.2071            7.5013+-0.2324        
   for-of-iterate-array-entries                      14.3945+-0.3636           14.3225+-0.4338        
   for-of-iterate-array-keys                          4.8986+-0.0542     ?      5.0497+-0.3272        ? might be 1.0309x slower
   for-of-iterate-array-values                        4.7144+-0.1667     ?      4.7320+-0.2589        ?
   fround                                            17.9428+-0.1264     ?     18.1596+-0.2618        ? might be 1.0121x slower
   ftl-library-inlining-dataview                     88.3227+-0.2569     !     91.5600+-0.6799        ! definitely 1.0367x slower
   ftl-library-inlining                              35.2849+-0.1448     ?     35.2864+-0.1758        ?
   ftl-polymorphic-bitand                           175.4882+-3.2483          172.1012+-0.5833          might be 1.0197x faster
   ftl-polymorphic-bitor                            173.1597+-0.9592     ?    173.2799+-1.6247        ?
   ftl-polymorphic-bitxor                           173.8219+-0.5132     ?    174.8843+-3.1955        ?
   ftl-polymorphic-div                              685.9545+-1.1611          685.5875+-1.2797        
   ftl-polymorphic-lshift                           218.6148+-1.2449     ?    218.6245+-2.9951        ?
   ftl-polymorphic-mul                              336.7717+-0.1422     ?    339.4548+-7.5028        ?
   ftl-polymorphic-rshift                           218.1824+-0.9519          217.1938+-0.1702        
   ftl-polymorphic-StringFromCharCode                63.9398+-0.1199           63.8251+-0.1476        
   ftl-polymorphic-sub                              252.9625+-0.3664          252.6932+-2.7098        
   ftl-polymorphic-urshift                          237.5991+-0.7323          236.0367+-0.9759        
   function-call                                     15.9484+-0.2519     ?     16.0035+-0.4752        ?
   function-dot-apply                                 3.0202+-0.0150     ?      3.1239+-0.2001        ? might be 1.0344x slower
   function-test                                      4.7552+-0.1199     ?      4.7553+-0.0935        ?
   function-with-eval                               145.3370+-2.1079     ?    146.6096+-2.3273        ?
   gcse-poly-get-less-obvious                        22.7405+-0.2632     ?     22.8514+-0.3162        ?
   gcse-poly-get                                     24.8124+-2.5626           23.9698+-1.9312          might be 1.0352x faster
   gcse                                               5.0226+-0.0825     ?      5.1953+-0.4405        ? might be 1.0344x slower
   generator-create                                   1.0518+-0.0317     ?      1.0668+-0.0282        ? might be 1.0142x slower
   generator-fib                                    153.5582+-1.2765     ^    150.7392+-1.0958        ^ definitely 1.0187x faster
   generator-function-create                          5.3707+-0.1517     ?      5.6363+-0.4477        ? might be 1.0494x slower
   generator-sunspider-access-nsieve                  8.6490+-0.3300            8.5156+-0.1898          might be 1.0157x faster
   generator-with-several-types                     493.9170+-13.1188         485.7619+-13.5076         might be 1.0168x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.8737+-0.0362     ?      3.9077+-0.0367        ?
   get-by-id-bimorphic-check-structure-elimination   
                                                      7.1379+-0.0967     ?      7.1790+-0.1883        ?
   get-by-id-chain-from-try-block                     2.8326+-0.0567            2.8015+-0.0448          might be 1.0111x faster
   get-by-id-check-structure-elimination              5.8606+-0.0418            5.8466+-0.0233        
   get-by-id-proto-or-self                           15.5701+-2.7598     ?     16.4089+-2.9899        ? might be 1.0539x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.2708+-0.0396            4.2435+-0.0203        
   get-by-id-self-or-proto                           14.9701+-1.2901           14.6457+-0.7033          might be 1.0222x faster
   get-by-val-out-of-bounds                           6.1491+-0.2306            5.8848+-0.2132          might be 1.0449x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      4.0388+-0.0338     ?      4.0628+-0.0810        ?
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      9.5597+-0.0601     ?      9.6092+-0.1637        ?
   get-by-val-with-string-chain-from-try-block   
                                                      2.8895+-0.0350     ?      2.9218+-0.0358        ? might be 1.0112x slower
   get-by-val-with-string-check-structure-elimination   
                                                      8.4188+-0.0607     ?      8.4316+-0.0552        ?
   get-by-val-with-string-proto-or-self              18.2996+-2.0405     ?     18.7792+-0.6434        ? might be 1.0262x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      4.5113+-0.0214     ?      4.5506+-0.0678        ?
   get-by-val-with-string-self-or-proto              18.3485+-1.4860     ?     19.3942+-1.9123        ? might be 1.0570x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      4.6612+-0.0707     ?      4.6785+-0.0380        ?
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     18.4610+-0.1008     ?     18.6217+-0.2762        ?
   get-by-val-with-symbol-chain-from-try-block   
                                                      3.0371+-0.2759            2.9181+-0.0371          might be 1.0408x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     17.1880+-0.2597     ?     17.3105+-0.3335        ?
   get-by-val-with-symbol-proto-or-self              20.2994+-3.6912           18.3208+-1.6119          might be 1.1080x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      5.5154+-0.0476            5.5114+-0.0398        
   get-by-val-with-symbol-self-or-proto              18.1453+-2.0495           16.4001+-1.4451          might be 1.1064x faster
   get_callee_monomorphic                             3.3018+-0.0688            3.2433+-0.0651          might be 1.0180x faster
   get_callee_polymorphic                             4.8344+-0.0362            4.8059+-0.0750        
   getter-no-activation                               5.7209+-0.1461     ?      6.0096+-0.8254        ? might be 1.0505x slower
   getter-prototype                                   7.4089+-0.3238     ?      7.9696+-1.3818        ? might be 1.0757x slower
   getter-richards-try-catch                       1547.6431+-59.7478        1521.9575+-22.9692         might be 1.0169x faster
   getter-richards                                  105.7059+-2.9596          103.1278+-2.9477          might be 1.0250x faster
   getter                                             6.5839+-0.0613     ?      6.9824+-0.7681        ? might be 1.0605x slower
   global-object-access-with-mutating-structure   
                                                      7.7180+-0.1545            7.3677+-0.2279          might be 1.0475x faster
   global-var-const-infer-fire-from-opt               1.3598+-0.1727            1.3182+-0.0711          might be 1.0315x faster
   global-var-const-infer                             0.9591+-0.0289     ?      1.0335+-0.1651        ? might be 1.0776x slower
   hard-overflow-check-equal                         35.5187+-0.1450     ?     35.5840+-0.2942        ?
   hard-overflow-check                               35.3431+-0.1382     ?     35.3699+-0.1358        ?
   HashMap-put-get-iterate-keys                      34.3416+-0.3465           34.2168+-0.2729        
   HashMap-put-get-iterate                           34.2607+-0.5856     ?     34.4462+-1.7167        ?
   HashMap-string-put-get-iterate                    36.8549+-0.3654     ?     36.9733+-0.3020        ?
   hoist-make-rope                                    6.4775+-0.9738            6.4035+-1.0641          might be 1.0116x faster
   hoist-poly-check-structure-effectful-loop   
                                                      4.4012+-0.1416            4.3260+-0.0335          might be 1.0174x faster
   hoist-poly-check-structure                         3.1106+-0.1098            3.0762+-0.1358          might be 1.0112x faster
   imul-double-only                                   4.7521+-0.1344            4.6755+-0.1696          might be 1.0164x faster
   imul-int-only                                      7.4068+-0.0392     ?      7.4666+-0.0636        ?
   imul-mixed                                         5.1799+-0.0709     ^      4.8108+-0.2240        ^ definitely 1.0767x faster
   in-four-cases                                     23.4937+-0.0575           23.4754+-0.2535        
   in-one-case-false                                 14.3460+-0.1505           14.3180+-0.2068        
   in-one-case-true                                  14.2873+-0.0892     ?     14.3241+-0.1125        ?
   in-two-cases                                      14.2828+-0.2859     ?     14.3976+-0.2306        ?
   indexed-properties-in-objects                      4.2327+-0.1281            4.2002+-0.0114        
   infer-closure-const-then-mov-no-inline             4.1933+-0.0818            4.1393+-0.0493          might be 1.0131x faster
   infer-closure-const-then-mov                      12.6670+-0.1506     ?     12.7088+-0.1389        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     15.6665+-0.2379           15.5171+-0.1046        
   infer-closure-const-then-put-to-scope             33.4108+-0.8179           33.3271+-1.1169        
   infer-closure-const-then-reenter-no-inline   
                                                     76.6954+-0.1106           76.6901+-0.1295        
   infer-closure-const-then-reenter                  34.2723+-1.1223     ?     34.7363+-0.6064        ? might be 1.0135x slower
   infer-constant-global-property                     5.1849+-0.0360            5.1743+-0.0170        
   infer-constant-property                            3.9683+-0.1591            3.9233+-0.0327          might be 1.0115x faster
   infer-one-time-closure-ten-vars                   10.3198+-0.0475           10.3032+-0.0534        
   infer-one-time-closure-two-vars                   10.5979+-2.2868            9.9693+-0.6518          might be 1.0631x faster
   infer-one-time-closure                             9.5979+-0.0557     ?      9.6009+-0.0230        ?
   infer-one-time-deep-closure                       17.8221+-0.2032           17.5766+-0.1021          might be 1.0140x faster
   inline-arguments-access                            5.3415+-0.0708            5.1864+-0.2236          might be 1.0299x faster
   inline-arguments-aliased-access                    5.2658+-0.1773     ?      5.3311+-0.0711        ? might be 1.0124x slower
   inline-arguments-local-escape                      5.3666+-0.0945            5.1756+-0.2207          might be 1.0369x faster
   inline-get-scoped-var                              4.8099+-0.1290     ?      4.8564+-0.1545        ?
   inlined-put-by-id-transition                      12.0333+-0.2894     ?     12.2568+-0.2338        ? might be 1.0186x slower
   inlined-put-by-val-with-string-transition   
                                                     62.6267+-1.8504           62.2166+-0.3297        
   inlined-put-by-val-with-symbol-transition   
                                                     62.3299+-0.4378           62.3156+-1.2862        
   instanceof-bound                                  31.5683+-0.9842           31.1843+-1.0715          might be 1.0123x faster
   int-or-other-abs-then-get-by-val                   6.8374+-0.0562     ?      6.9029+-0.1474        ?
   int-or-other-abs-zero-then-get-by-val             24.2957+-0.7968           23.9038+-0.0620          might be 1.0164x faster
   int-or-other-add-then-get-by-val                   6.2443+-0.0705            6.2177+-0.0571        
   int-or-other-add                                   7.2432+-0.0593            7.2347+-0.0413        
   int-or-other-div-then-get-by-val                   5.5774+-0.0342     ?      5.5868+-0.0573        ?
   int-or-other-max-then-get-by-val                   6.1101+-0.6278            5.8626+-0.0331          might be 1.0422x faster
   int-or-other-min-then-get-by-val                   5.8550+-0.0251            5.8375+-0.0350        
   int-or-other-mod-then-get-by-val                   5.2418+-0.1202            5.2014+-0.1025        
   int-or-other-mul-then-get-by-val                   5.3068+-0.1583     ?      5.5450+-0.6122        ? might be 1.0449x slower
   int-or-other-neg-then-get-by-val                   6.4061+-0.0926            6.3575+-0.0365        
   int-or-other-neg-zero-then-get-by-val             23.8300+-0.0943     ?     23.8955+-0.2391        ?
   int-or-other-sub-then-get-by-val                   6.1521+-0.0367     ?      6.2494+-0.2527        ? might be 1.0158x slower
   int-or-other-sub                                   5.2462+-0.2628            5.1430+-0.0340          might be 1.0201x faster
   int-overflow-local                                 6.0723+-0.0523            6.0406+-0.0339        
   Int16Array-alloc-long-lived                       62.5029+-1.5811     ?     62.9885+-0.8118        ?
   Int16Array-bubble-sort-with-byteLength            29.4482+-0.6337     ?     30.2061+-1.6903        ? might be 1.0257x slower
   Int16Array-bubble-sort                            25.3726+-1.8484           25.1509+-1.7096        
   Int16Array-load-int-mul                            2.2699+-0.1545            2.1992+-0.0352          might be 1.0321x faster
   Int16Array-to-Int32Array-set                      65.7238+-0.4022     ?     66.3443+-0.6372        ?
   Int32Array-alloc-large                            16.9514+-0.3800     ?     17.0409+-0.3350        ?
   Int32Array-alloc-long-lived                       68.1875+-1.6635           67.9428+-1.4037        
   Int32Array-alloc                                   3.8949+-0.1839            3.8800+-0.2420        
   Int32Array-Int8Array-view-alloc                    8.8443+-0.2012            8.7766+-0.3832        
   int52-spill                                        6.7494+-0.0398     !      6.9426+-0.0687        ! definitely 1.0286x slower
   Int8Array-alloc-long-lived                        57.2685+-0.9510           57.2085+-0.3226        
   Int8Array-load-with-byteLength                     5.1019+-0.0936            5.0420+-0.0935          might be 1.0119x faster
   Int8Array-load                                     5.0302+-0.0478     ?      5.2028+-0.4787        ? might be 1.0343x slower
   integer-divide                                    16.3103+-0.3023           16.1924+-0.1932        
   integer-modulo                                     2.4087+-0.2065            2.3656+-0.0892          might be 1.0182x faster
   is-boolean-fold-tricky                             5.7236+-0.0374            5.6979+-0.0381        
   is-boolean-fold                                    3.9963+-0.0186     ?      4.0311+-0.0449        ?
   is-function-fold-tricky-internal-function   
                                                     15.2024+-0.0919     ?     15.2553+-0.3571        ?
   is-function-fold-tricky                            6.4002+-0.8454            6.1028+-0.0480          might be 1.0487x faster
   is-function-fold                                   4.0638+-0.0643            4.0310+-0.0266        
   is-number-fold-tricky                              5.9173+-0.0330     ?      5.9763+-0.0800        ?
   is-number-fold                                     4.0157+-0.0575            4.0088+-0.0534        
   is-object-or-null-fold-functions                   4.0557+-0.0527     ?      4.1493+-0.3145        ? might be 1.0231x slower
   is-object-or-null-fold-less-tricky                 6.0814+-0.0866     ?      6.1680+-0.2123        ? might be 1.0142x slower
   is-object-or-null-fold-tricky                      7.3810+-0.0893            7.3304+-0.0567        
   is-object-or-null-fold                             4.0769+-0.0766            4.0450+-0.0374        
   is-object-or-null-trickier-function                6.1122+-0.1003     ?      6.1295+-0.0734        ?
   is-object-or-null-trickier-internal-function   
                                                     15.5140+-0.1864           15.3000+-0.1969          might be 1.0140x faster
   is-object-or-null-tricky-function                  6.0601+-0.1080     ?      6.0941+-0.0197        ?
   is-object-or-null-tricky-internal-function   
                                                     11.0850+-0.0826     ?     11.4460+-1.2449        ? might be 1.0326x slower
   is-string-fold-tricky                              5.9472+-0.0425     ?      6.0403+-0.1174        ? might be 1.0156x slower
   is-string-fold                                     3.9900+-0.0279            3.9785+-0.0245        
   is-undefined-fold-tricky                           5.0855+-0.0980            5.0554+-0.0104        
   is-undefined-fold                                  4.0333+-0.0441            3.9975+-0.0432        
   JSONP-negative-0                                   0.4107+-0.0158            0.4005+-0.0107          might be 1.0255x faster
   large-int-captured                                 4.5031+-0.2556            4.4060+-0.1977          might be 1.0220x faster
   large-int-neg                                     19.3480+-0.3985     ?     19.4628+-0.4978        ?
   large-int                                         17.5559+-0.4404     ?     17.7906+-0.3476        ? might be 1.0134x slower
   load-varargs-elimination                          28.4366+-0.1928     !     28.8330+-0.1196        ! definitely 1.0139x slower
   logical-not-weird-types                            3.9340+-0.0751            3.8880+-0.0989          might be 1.0118x faster
   logical-not                                        5.9482+-0.0937            5.8951+-0.0541        
   lots-of-fields                                    13.0492+-0.2061     ?     13.3067+-0.2836        ? might be 1.0197x slower
   make-indexed-storage                               3.9650+-0.0698            3.9175+-0.2383          might be 1.0121x faster
   make-rope-cse                                      5.3645+-0.2529            5.2591+-0.2562          might be 1.0200x faster
   map-for-each                                       7.4818+-0.0525            7.4747+-0.0227        
   map-for-of                                        24.9205+-0.1689     ?     28.1435+-8.5316        ? might be 1.1293x slower
   marsaglia-larger-ints                             48.6647+-0.1743     ?     48.8601+-0.5913        ?
   marsaglia-osr-entry                               26.8451+-0.1773     ?     26.8917+-0.2405        ?
   math-random                                       23.2582+-0.2455           23.1407+-0.0971        
   math-with-out-of-bounds-array-values              43.9109+-0.2138     ?     44.7003+-0.8455        ? might be 1.0180x slower
   max-boolean                                        3.9622+-0.0819            3.9333+-0.0991        
   method-on-number                                  24.8516+-0.1847     ?     24.8754+-0.2555        ?
   min-boolean                                        4.0030+-0.0600     ?      4.2287+-0.6737        ? might be 1.0564x slower
   minus-boolean-double                               4.6459+-0.0333     ?      4.6659+-0.0602        ?
   minus-boolean                                      3.5435+-0.0267     ?      3.5656+-0.0206        ?
   misc-strict-eq                                    33.0730+-0.1662     !     34.9010+-0.4626        ! definitely 1.0553x slower
   mod-boolean-double                                15.0351+-0.2027     ?     15.9023+-2.2406        ? might be 1.0577x slower
   mod-boolean                                       11.5800+-0.2455     ?     11.6160+-0.3053        ?
   mul-boolean-double                                 5.2626+-0.0829     ?      5.6991+-1.1095        ? might be 1.0829x slower
   mul-boolean                                        4.2786+-0.0242            4.2693+-0.0321        
   neg-boolean                                        4.7124+-0.0345     ?      4.7303+-0.1374        ?
   negative-zero-divide                               0.5252+-0.0036     ?      0.5302+-0.0119        ?
   negative-zero-modulo                               0.5326+-0.0186            0.5239+-0.0105          might be 1.0165x faster
   negative-zero-negate                               0.5127+-0.0247            0.5096+-0.0240        
   nested-function-parsing                           49.4496+-0.4550     ?     49.6578+-0.5947        ?
   new-array-buffer-dead                            119.4880+-4.3061          117.1335+-0.5165          might be 1.0201x faster
   new-array-buffer-push                              7.9799+-0.2830     ?      8.1658+-0.1978        ? might be 1.0233x slower
   new-array-dead                                    13.3962+-0.5461     ?     13.4049+-0.2098        ?
   new-array-push                                     6.4332+-1.2681            5.7236+-0.1012          might be 1.1240x faster
   no-inline-constructor                             45.4425+-1.0702           45.1940+-1.2605        
   number-test                                        4.9425+-0.0264            4.9155+-0.0246        
   object-closure-call                                7.0085+-0.0601            7.0017+-0.0496        
   object-get-own-property-symbols-on-large-array   
                                                      6.0000+-0.1751     ?      6.0967+-0.1437        ? might be 1.0161x slower
   object-test                                        4.6977+-0.0442     ?      4.8900+-0.4328        ? might be 1.0409x slower
   obvious-sink-pathology-taken                     160.6304+-1.1043     ?    160.9726+-2.3731        ?
   obvious-sink-pathology                            35.0104+-0.1164     ?     35.3424+-0.6363        ?
   obviously-elidable-new-object                     32.3903+-0.4493     ?     32.5429+-0.5355        ?
   plus-boolean-arith                                 3.6440+-0.0769            3.5968+-0.0382          might be 1.0131x faster
   plus-boolean-double                                4.6995+-0.0791            4.6820+-0.0665        
   plus-boolean                                       3.8328+-0.1582     ?      3.8521+-0.0531        ?
   poly-chain-access-different-prototypes-simple   
                                                      3.8849+-0.0233     ?      3.8994+-0.0570        ?
   poly-chain-access-different-prototypes             3.8616+-0.1525            3.7792+-0.0464          might be 1.0218x faster
   poly-chain-access-simpler                          3.9967+-0.3572            3.9088+-0.0502          might be 1.0225x faster
   poly-chain-access                                  3.7918+-0.0542            3.7363+-0.0382          might be 1.0148x faster
   poly-stricteq                                     81.3334+-0.0676     ?     81.3598+-0.0835        ?
   polymorphic-array-call                             1.7807+-0.0972     ?      1.8214+-0.0733        ? might be 1.0229x slower
   polymorphic-get-by-id                              2.9429+-0.1345            2.8700+-0.0282          might be 1.0254x faster
   polymorphic-put-by-id                             40.0223+-0.5869           39.9401+-0.3397        
   polymorphic-put-by-val-with-string                41.6779+-0.4718     ?     42.0228+-0.8549        ?
   polymorphic-put-by-val-with-symbol                41.6500+-0.2673     ?     41.7900+-0.3352        ?
   polymorphic-structure                             18.9698+-0.1446           18.9672+-0.0983        
   polyvariant-monomorphic-get-by-id                  7.6318+-0.9305            7.2413+-0.1419          might be 1.0539x faster
   proto-getter-access                               17.0009+-0.3214           16.9019+-0.1348        
   prototype-access-with-mutating-prototype           6.5837+-0.1380     ?      7.3748+-2.1172        ? might be 1.1202x slower
   put-by-id-replace-and-transition                  11.0131+-0.4684     ?     11.0694+-0.5120        ?
   put-by-id-slightly-polymorphic                     4.0700+-0.0401            4.0407+-0.0267        
   put-by-id                                         13.2924+-0.2684     ?     13.4668+-0.5491        ? might be 1.0131x slower
   put-by-val-direct                                  0.5928+-0.0097     ?      0.6091+-0.0287        ? might be 1.0275x slower
   put-by-val-large-index-blank-indexing-type   
                                                      7.4611+-0.1469            7.4378+-0.2849        
   put-by-val-machine-int                             3.5855+-0.0252            3.5462+-0.0634          might be 1.0111x faster
   put-by-val-with-string-replace-and-transition   
                                                     14.4017+-0.1764           14.2524+-0.1653          might be 1.0105x faster
   put-by-val-with-string-slightly-polymorphic   
                                                      4.1780+-0.0516     ?      4.2477+-0.1096        ? might be 1.0167x slower
   put-by-val-with-string                            13.7965+-0.1196           13.7106+-0.1450        
   put-by-val-with-symbol-replace-and-transition   
                                                     15.0494+-0.1576     ?     15.1524+-0.1329        ?
   put-by-val-with-symbol-slightly-polymorphic   
                                                      4.8634+-0.2193            4.8458+-0.0593        
   put-by-val-with-symbol                            13.9401+-0.1130     ?     14.1119+-0.7327        ? might be 1.0123x slower
   rare-osr-exit-on-local                            19.8051+-0.2842     ?     20.0817+-0.6250        ? might be 1.0140x slower
   raytrace-with-empty-try-catch                      8.9111+-0.4105            8.7410+-0.2404          might be 1.0194x faster
   raytrace-with-try-catch                           14.7268+-0.2213     ^     14.2409+-0.2554        ^ definitely 1.0341x faster
   register-pressure-from-osr                        23.7214+-0.2741           23.6470+-0.0914        
   repeat-multi-get-by-offset                        30.5710+-5.8529           28.4630+-0.3609          might be 1.0741x faster
   richards-empty-try-catch                          71.4103+-5.7457           68.7843+-0.3326          might be 1.0382x faster
   richards-try-catch                               354.1188+-76.1118         324.4282+-2.2928          might be 1.0915x faster
   set-for-each                                       6.7646+-0.0461     ^      6.6001+-0.0532        ^ definitely 1.0249x faster
   set-for-of                                        11.2890+-0.2674     ?     11.3539+-0.3180        ?
   setter-prototype                                   6.9079+-0.0917            6.9040+-0.1063        
   setter                                             6.0641+-0.0744            6.0193+-0.0678        
   simple-activation-demo                            33.1843+-0.0719           33.1360+-0.1566        
   simple-getter-access                              26.2434+-0.2898     ?     26.7198+-1.5606        ? might be 1.0182x slower
   simple-poly-call-nested                            8.3691+-0.1419            8.3311+-0.1761        
   simple-poly-call                                   1.7627+-0.0573            1.7360+-0.0267          might be 1.0153x faster
   sin-boolean                                       21.8491+-0.6421           21.7348+-0.2768        
   singleton-scope                                   84.8085+-0.1387     ?     93.6055+-22.6281       ? might be 1.1037x slower
   sink-function                                      9.9616+-1.2196     ?     10.3310+-2.0556        ? might be 1.0371x slower
   sink-huge-activation                              18.2753+-0.3470     ?     18.3888+-0.3342        ?
   sinkable-new-object-dag                           76.8681+-2.6999           75.8316+-1.2106          might be 1.0137x faster
   sinkable-new-object-taken                         58.9646+-0.2968     ?     58.9820+-0.1132        ?
   sinkable-new-object                               35.2549+-0.4458           35.1755+-0.2643        
   slow-array-profile-convergence                     3.8692+-0.0742            3.8266+-0.0664          might be 1.0111x faster
   slow-convergence                                   3.8338+-0.0421            3.7851+-0.0194          might be 1.0129x faster
   slow-ternaries                                    20.6774+-0.1790           20.6444+-0.1114        
   sorting-benchmark                                 27.0177+-0.1313           26.9085+-0.4223        
   sparse-conditional                                 1.7276+-0.0473            1.7059+-0.0235          might be 1.0128x faster
   splice-to-remove                                  19.7582+-0.1115     ?     19.8053+-0.1693        ?
   string-char-code-at                               21.4609+-0.0733     ?     21.4627+-0.1335        ?
   string-concat-object                               2.8738+-0.1922     ?      2.9926+-0.1223        ? might be 1.0413x slower
   string-concat-pair-object                          2.8662+-0.1602     ?      2.8671+-0.1669        ?
   string-concat-pair-simple                         13.0529+-0.5002           12.8652+-0.3004          might be 1.0146x faster
   string-concat-simple                              12.9978+-0.0892     ?     13.1060+-0.2139        ?
   string-cons-repeat                                 9.3387+-0.0587     ?      9.4807+-0.1550        ? might be 1.0152x slower
   string-cons-tower                                  9.8221+-0.2895            9.8158+-0.3771        
   string-equality                                   27.2059+-0.1336           27.1510+-0.1953        
   string-from-char-code                             10.2132+-0.0498     ?     10.2390+-0.0871        ?
   string-get-by-val-big-char                         9.8724+-0.3123            9.7667+-0.2208          might be 1.0108x faster
   string-get-by-val-out-of-bounds-insane             4.9495+-0.0321     ?      5.0662+-0.2124        ? might be 1.0236x slower
   string-get-by-val-out-of-bounds                    6.6034+-0.0651     ?      6.6462+-0.0628        ?
   string-get-by-val                                  4.1853+-0.0350     ?      4.2027+-0.1092        ?
   string-hash                                        2.7817+-0.0732            2.7709+-0.0327        
   string-long-ident-equality                        22.2733+-0.2472           22.0866+-0.1361        
   string-out-of-bounds                               9.8992+-0.0732     ?      9.9023+-0.1033        ?
   string-repeat-arith                               32.7754+-0.2072     !     33.8663+-0.3155        ! definitely 1.0333x slower
   string-rope-with-object                           23.7585+-0.1900           23.6923+-0.0845        
   string-sub                                        52.9309+-0.1859           52.4725+-0.3550        
   string-test                                        4.7309+-0.0454            4.7024+-0.0466        
   string-var-equality                               42.7756+-0.4060     ?     43.2160+-0.9962        ? might be 1.0103x slower
   structure-hoist-over-transitions                   3.3651+-0.0201            3.3591+-0.1155        
   substring-concat-weird                            55.2593+-1.3799           54.7868+-0.3755        
   substring-concat                                  60.3185+-0.4186           60.0205+-0.4169        
   substring                                         67.9400+-0.7730           67.6596+-0.1598        
   switch-char-constant                               4.0018+-0.0936            3.9758+-0.0625        
   switch-char                                        7.8196+-0.0672            7.8182+-0.0603        
   switch-constant                                   11.1912+-1.0910           10.6873+-0.5423          might be 1.0472x faster
   switch-string-basic-big-var                       21.6525+-0.3355     ?     21.7806+-0.2080        ?
   switch-string-basic-big                           18.5285+-0.1110     ?     18.7478+-0.2245        ? might be 1.0118x slower
   switch-string-basic-var                           21.2526+-0.1912     ?     21.7740+-0.7582        ? might be 1.0245x slower
   switch-string-basic                               17.4508+-0.2163     ?     17.5323+-0.3478        ?
   switch-string-big-length-tower-var                29.4825+-0.1788           29.3839+-0.1258        
   switch-string-length-tower-var                    21.2351+-0.0929     ?     21.2598+-0.1533        ?
   switch-string-length-tower                        16.5072+-0.3293     ?     16.6566+-0.2086        ?
   switch-string-short                               16.7141+-0.8044           16.6085+-0.5511        
   switch                                            15.3250+-1.2799           13.6655+-0.6662          might be 1.1214x faster
   symbol-tostringtag                                 4.5565+-0.0495            4.5276+-0.0224        
   tear-off-arguments-simple                          3.5693+-0.0955            3.5156+-0.1522          might be 1.0153x faster
   tear-off-arguments                                 4.8850+-0.0997            4.7584+-0.1557          might be 1.0266x faster
   temporal-structure                                17.9347+-0.2729           17.8079+-0.1940        
   to-int32-boolean                                  20.9460+-0.2816           20.6972+-0.0731          might be 1.0120x faster
   try-catch-get-by-val-cloned-arguments              9.6198+-0.1946     ?      9.8465+-0.3887        ? might be 1.0236x slower
   try-catch-get-by-val-direct-arguments              3.0007+-0.1277            2.9815+-0.1558        
   try-catch-get-by-val-scoped-arguments              6.1469+-0.2228     ?      6.1512+-0.0376        ?
   typed-array-get-set-by-val-profiling              30.1675+-0.2700           29.9151+-0.2727        
   undefined-property-access                        436.2507+-0.7529          435.6184+-0.2402        
   undefined-test                                     5.0278+-0.0488     ?      5.0688+-0.0841        ?
   unprofiled-licm                                    9.0498+-0.0441     ?      9.1113+-0.2760        ?
   untyped-string-from-char-code                     16.5423+-0.3320           16.3845+-0.1732        
   v8-raytrace-with-empty-try-catch                  75.3236+-0.8218           75.2559+-2.5712        
   v8-raytrace-with-try-catch-high-frequency-throws   
                                                    566.5656+-6.1392     ?    570.7330+-6.2896        ?
   v8-raytrace-with-try-catch                        93.9289+-1.4513           92.4885+-1.2031          might be 1.0156x faster
   v8-regexp-search                                  78.1325+-0.3097     ?     78.8407+-0.8522        ?
   varargs-call                                      18.5940+-0.1792     ?     18.7168+-0.3275        ?
   varargs-construct-inline                          28.4097+-0.7312     ?     29.1790+-0.1356        ? might be 1.0271x slower
   varargs-construct                                 36.2092+-0.3085           36.0785+-0.1431        
   varargs-inline                                    12.4316+-0.0194           12.4306+-0.0848        
   varargs-strict-mode                               14.0713+-0.0688     ?     14.1359+-0.1714        ?
   varargs                                           13.9894+-0.2463           13.8499+-0.0881          might be 1.0101x faster
   weird-inlining-const-prop                          2.9602+-0.1189            2.8633+-0.0272          might be 1.0339x faster

   <geometric>                                       12.2885+-0.0287           12.2771+-0.0361          might be 1.0009x faster

                                                            og                      change                                      
AsmBench:
   bigfib.cpp                                       661.5013+-13.4620    ?    670.5317+-10.6529       ? might be 1.0137x slower
   cray.c                                           561.5823+-3.9861     ?    561.5918+-1.8885        ?
   dry.c                                            752.4342+-86.6775         720.1064+-115.8633        might be 1.0449x faster
   FloatMM.c                                       1091.3007+-14.6774    ?   1093.5269+-13.0445       ?
   gcc-loops.cpp                                   5575.3427+-74.7673        5543.4100+-5.8119        
   n-body.c                                        1245.0841+-2.2604     ?   1245.1384+-2.7895        ?
   Quicksort.c                                      619.4657+-0.6508          619.2747+-1.0433        
   stepanov_container.cpp                          5108.8988+-47.3369        5103.9646+-35.8850       
   Towers.c                                         412.9349+-0.2848     ?    414.4034+-4.3465        ?

   <geometric>                                     1119.1238+-14.3800        1114.7468+-18.4962         might be 1.0039x faster

                                                            og                      change                                      
CompressionBench:
   huffman                                           50.3894+-0.4553     ?     50.6534+-0.2988        ?
   arithmetic-simple                                406.5302+-1.8682          406.0992+-1.8129        
   arithmetic-precise                               382.9674+-2.1728     ^    377.3667+-1.4519        ^ definitely 1.0148x faster
   arithmetic-complex-precise                       377.9872+-0.7360          377.5079+-2.3922        
   arithmetic-precise-order-0                       410.0075+-1.8998     ?    412.9126+-6.3363        ?
   arithmetic-precise-order-1                       462.8408+-3.7065          461.5418+-2.7419        
   arithmetic-precise-order-2                       533.6747+-5.1098          532.8269+-3.7177        
   arithmetic-simple-order-1                        477.6129+-3.6987          477.2491+-2.6985        
   arithmetic-simple-order-2                        557.0336+-6.2226     ?    557.5456+-5.3669        ?
   lz-string                                        497.6081+-11.5666         494.4930+-13.1728       

   <geometric>                                      363.0155+-0.8455          362.4586+-1.2120          might be 1.0015x faster

                                                            og                      change                                      
Geomean of preferred means:
   <scaled-result>                                   73.3753+-0.3469           73.3030+-0.1575          might be 1.0010x faster
Comment 4 Oliver Hunt 2016-02-19 20:12:42 PST
Comment on attachment 271833 [details]
patch

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

r=me

> Source/JavaScriptCore/runtime/ProxyObject.cpp:380
> +    JSArray* argArray = constructArray(exec, static_cast<ArrayAllocationProfile*>(nullptr), ArgList(exec));

out of curiosity, is the <ArrayAllocationProfile> cast necessary? if so this seems like a dangerous API
Comment 5 Saam Barati 2016-02-20 15:45:41 PST
(In reply to comment #4)
> Comment on attachment 271833 [details]
> patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=271833&action=review
> 
> r=me
> 
> > Source/JavaScriptCore/runtime/ProxyObject.cpp:380
> > +    JSArray* argArray = constructArray(exec, static_cast<ArrayAllocationProfile*>(nullptr), ArgList(exec));
> 
> out of curiosity, is the <ArrayAllocationProfile> cast necessary? if so this
> seems like a dangerous API

Thanks for the review.

We have two conflicting definitions, so the cast is necessary.
I'm not sure that the API is dangerous, because you will get
a compiler error without the cast. That said, I think we could make
it cleaner. It would be super easy to do, we can just name
the one I'm calling in this patch something like:
constructArrayWithAllocationProfile(...)

The conflicting definitions are:
inline JSArray* constructArray(ExecState* exec, ArrayAllocationProfile* profile, const ArgList& values, JSValue newTarget = JSValue()) // in JSGlobalObject.h

inline JSArray* constructArray(ExecState* exec, Structure* arrayStructure, const ArgList& values) // in JSArray.h
Comment 6 Saam Barati 2016-02-20 15:51:53 PST
landed in:
http://trac.webkit.org/changeset/196868