aboutsummaryrefslogtreecommitdiff
path: root/bench/snippets/private.mjs
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-09-25 03:27:38 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-09-25 03:27:38 -0700
commitaf0cb893b577ceb0cbcd6b20c17db4534cfef114 (patch)
tree8f8843c08710284cf9941b0403ab9e404c0978da /bench/snippets/private.mjs
parent702749319636faf2a96f79d201ed0a7a25af06dd (diff)
downloadbun-af0cb893b577ceb0cbcd6b20c17db4534cfef114.tar.gz
bun-af0cb893b577ceb0cbcd6b20c17db4534cfef114.tar.zst
bun-af0cb893b577ceb0cbcd6b20c17db4534cfef114.zip
Add microbenchmark for symbol-based private variables
Diffstat (limited to '')
-rw-r--r--bench/snippets/private.mjs20
1 files changed, 20 insertions, 0 deletions
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();