build: bump volta node version
[benchmarks-js.git] / shallow-clone-object.mjs
CommitLineData
6dce9ba7 1/* eslint-disable no-unused-vars */
f522d7b9 2import _ from 'lodash'
ab9a08f3 3import { assoc } from 'rambda'
4676a95c 4import { bench, group, run } from 'tatami-ng'
0c01f51c 5
95d31631 6import { generateRandomObject } from './benchmark-utils.mjs'
6dce9ba7 7
8e1fbc06 8const object = generateRandomObject()
6dce9ba7 9
ab9a08f3
JB
10group(`Shallow clone object with ${Object.keys(object).length} keys`, () => {
11 bench('Spread', () => {
bf2f087f 12 return { ...object }
6dce9ba7 13 })
ab9a08f3 14 bench('Object assign', () => {
bf2f087f 15 return Object.assign({}, object)
ab9a08f3
JB
16 })
17 bench('lodash clone', () => {
bf2f087f 18 _.clone(object)
ab9a08f3
JB
19 })
20 bench('rambda assoc', () => {
bf2f087f 21 assoc(object)
ab9a08f3
JB
22 })
23})
24
25await run({
26 units: true
27})