lib: use Object.create(null) directly
Since v8/v8@532c16eca071df3ec8eed394dcebb932ef584ee6 (included in v5.6), using Object.create(null)
directly is now faster than using a constructor.
Refs: https://github.com/emberjs/ember.js/issues/15001 Refs: https://crrev.com/532c16eca071df3ec8eed394dcebb932ef584ee6
/cc @nodejs/v8
querystring
improvement confidence p.value
querystring/querystring-parse.js n=100000 type="altspaces" 5.40 % * 1.400406e-02
querystring/querystring-parse.js n=100000 type="encodefake" 5.70 % 6.377693e-02
querystring/querystring-parse.js n=100000 type="encodelast" 3.49 % 1.214386e-01
querystring/querystring-parse.js n=100000 type="encodemany" 5.08 % * 1.427018e-02
querystring/querystring-parse.js n=100000 type="manyblankpairs" -7.21 % ** 1.152391e-03
querystring/querystring-parse.js n=100000 type="manypairs" 8.53 % *** 6.779383e-10
querystring/querystring-parse.js n=100000 type="multicharsep" 6.11 % ** 8.321237e-03
querystring/querystring-parse.js n=100000 type="multivalue" 12.44 % ** 1.668042e-03
querystring/querystring-parse.js n=100000 type="multivaluemany" 19.43 % *** 1.919249e-09
querystring/querystring-parse.js n=100000 type="noencode" 6.23 % *** 2.348627e-04
map-bench
es/map-bench.js millions=3 method="object": 0.39794620430879774
es/map-bench.js millions=3 method="nullProtoObject": 0.41138972726767054
es/map-bench.js millions=3 method="nullProtoLiteralObject": 0.37403618701313923
es/map-bench.js millions=3 method="storageObject": 0.39906914551802625
es/map-bench.js millions=3 method="fakeMap": 0.3576056060343219
es/map-bench.js millions=3 method="map": 0.5858516350899148
Checklist
-
make -j4 test
(UNIX), orvcbuild test
(Windows) passes -
commit message follows commit guidelines
Affected core subsystem(s)
lib