From af0cb893b577ceb0cbcd6b20c17db4534cfef114 Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Mon, 25 Sep 2023 03:27:38 -0700 Subject: Add microbenchmark for symbol-based private variables --- bench/snippets/private.mjs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'bench/snippets/private.mjs') diff --git a/bench/snippets/private.mjs b/bench/snippets/private.mjs index ca75c6e07..452dab06b 100644 --- a/bench/snippets/private.mjs +++ b/bench/snippets/private.mjs @@ -77,4 +77,24 @@ bench("ConventionalPrivates", () => { new Foo().run(); }); +const _state = Symbol("state"); +const _inc = Symbol("inc"); + +bench("SymbolPrivates", () => { + class Foo { + [_state] = 1; + [_inc] = 13; + + run() { + let n = 1000000; + while (n-- > 0) { + this[_state] += this[_inc]; + } + return n; + } + } + + new Foo().run(); +}); + await run(); -- cgit v1.2.3