aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/object-entries.mjs
blob: c3e4bf9e5b527144abf14add5974dfc823fa8aa1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// so it can run in environments without node module resolution
import { bench, run } from "../../node_modules/mitata/src/cli.mjs";

const obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 4,
  e: 5,
  f: 6,
  g: 7,
  h: 8,
  i: 9,
  j: 10,
  k: 11,
  l: 12,
  m: 13,
  n: 14,
  o: 15,
  p: 16,
  q: 17,
  r: 18,
  s: 19,
  t: 20,
  u: 21,
  v: 22,
  w: 23,
  x: 24,
  y: 25,
  z: 26,
};

bench("Object.entries(26 keys)", () => {
  var k;
  for (let [key, value] of Object.entries(obj)) {
    value = key;
  }
  return k;
});

bench("Object.keys(26 keys)", () => {
  var k;
  for (let [key, value] of Object.keys(obj)) {
    value = key;
  }
  return k;
});

bench("Object.entries(2 keys)", () => {
  var k;
  for (let [key, value] of Object.entries({ a: 1, b: 2 })) {
    value = key;
  }
  return k;
});

bench("Object.keys(2 keys)", () => {
  var k;
  for (let item of Object.keys({ a: 1, b: 2 })) {
  }
  return k;
});

await run();