use std::collections::HashSet;
use once_cell::sync::Lazy;
pub static DEFAULT_GLOBALS: Lazy<HashSet<&'static str>> = Lazy::new(|| {
let mut s = HashSet::new();
for g in GLOBAL_IDENTIFIERS {
s.insert(*g);
}
s
});
const GLOBAL_IDENTIFIERS: &[&str] = &[
"globalThis",
"Infinity",
"NaN",
"undefined",
"eval",
"isFinite",
"isNaN",
"parseFloat",
"parseInt",
"decodeURI",
"decodeURIComponent",
"encodeURI",
"encodeURIComponent",
"escape",
"unescape",
"Object",
"Function",
"Boolean",
"Symbol",
"Error",
"AggregateError",
"EvalError",
"RangeError",
"ReferenceError",
"SyntaxError",
"TypeError",
"URIError",
"InternalError",
"Number",
"BigInt",
"Math",
"Date",
"String",
"RegExp",
"Array",
"Int8Array",
"Uint8Array",
"Uint8ClampedArray",
"Int16Array",
"Uint16Array",
"Int32Array",
"Uint32Array",
"BigInt64Array",
"BigUint64Array",
"Float32Array",
"Float64Array",
"Map",
"Set",
"WeakMap",
"WeakSet",
"ArrayBuffer",
"SharedArrayBuffer",
"DataView",
"Atomics",
"JSON",
"WeakRef",
"FinalizationRegistry",
"Iterator",
"AsyncIterator",
"Promise",
"GeneratorFunction",
"AsyncGeneratorFunction",
"Generator",
"AsyncGenerator",
"AsyncFunction",
"Reflect",
"Proxy",
"Intl",
"null",
"this",
"global",
"window",
"self",
"console",
"performance",
"arguments",
"require",
"fetch",
"XMLHttpRequest",
"WebSocket",
"queueMicrotask",
"requestAnimationFrame",
"cancelAnimationFrame",
"setTimeout",
"clearTimeout",
"setImmediate",
"clearImmediate",
"setInterval",
"clearInterval",
"HermesInternal",
"_WORKLET",
"_IS_FABRIC",
];