From bae0da31c2a50ebe4c01a5812755c83ca691f333 Mon Sep 17 00:00:00 2001 From: Chris Wanstrath Date: Fri, 7 Nov 2025 21:05:42 -0800 Subject: [PATCH] globals accepts {} too --- src/compiler/compiler.ts | 4 ++-- src/parser/tokenizer.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/compiler.ts b/src/compiler/compiler.ts index 429a94b..9ce7bce 100644 --- a/src/compiler/compiler.ts +++ b/src/compiler/compiler.ts @@ -58,9 +58,9 @@ export class Compiler { bytecode: Bytecode pipeCounter = 0 - constructor(public input: string, globals?: string[]) { + constructor(public input: string, globals?: string[] | Record) { try { - if (globals) setGlobals(globals) + if (globals) setGlobals(Array.isArray(globals) ? globals : Object.keys(globals)) const cst = parser.parse(input) const errors = checkTreeForErrors(cst) diff --git a/src/parser/tokenizer.ts b/src/parser/tokenizer.ts index ba8da48..3f5ca6c 100644 --- a/src/parser/tokenizer.ts +++ b/src/parser/tokenizer.ts @@ -8,9 +8,9 @@ export function specializeKeyword(ident: string) { // tell the dotGet searcher about builtin globals export const globals: string[] = [] -export const setGlobals = (newGlobals: string[]) => { +export const setGlobals = (newGlobals: string[] | Record) => { globals.length = 0 - globals.push(...newGlobals) + globals.push(...(Array.isArray(newGlobals) ? newGlobals : Object.keys(newGlobals))) } // The only chars that can't be words are whitespace, apostrophes, closing parens, and EOF.