From bf442f8399ba38db2591f1efde820a6a6e9c5924 Mon Sep 17 00:00:00 2001 From: overlookmotel <557937+overlookmotel@users.noreply.github.com> Date: Sat, 14 Mar 2026 01:22:59 +0000 Subject: [PATCH] perf(linter/plugins): cheaper `Token` creation (#20360) Small optimization. Initialize `Token` class instances with `null` fields. `null` is one of the cheapest types to create as it's represented in V8 as a static 64-bit value - likely cheaper than creating a string, even an empty one. These placeholder values are immediately overwritten a few lines later, so it doesn't matter what they are initially. --- apps/oxlint/src-js/plugins/tokens.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/oxlint/src-js/plugins/tokens.ts b/apps/oxlint/src-js/plugins/tokens.ts index 3663cb7b7661f..c9d69c43a32b0 100644 --- a/apps/oxlint/src-js/plugins/tokens.ts +++ b/apps/oxlint/src-js/plugins/tokens.ts @@ -127,8 +127,8 @@ let resetLoc: (token: Token) => void; * All `Token` instances always have the same V8 hidden class, keeping property access monomorphic. */ class Token { - type: TokenType["type"] = "" as TokenType["type"]; // Overwritten later - value: string = ""; + type: TokenType["type"] = null!; // Overwritten later + value: string = null!; // Overwritten later regex: RegularExpressionToken["regex"] | undefined; start: number = 0; end: number = 0;