Namespace globals whose listed methods a condition may CALL, keyed by namespace name.
Both halves of Math.abs(x) are fixed identifiers in the AST, so admitting them adds no dynamic
lookup: the four invariants that close the sandbox escape — literal-only computed keys, no
constructor/__proto__/prototype, a closed non-computed call surface with no
call/apply/bind, and screened free identifiers — are all untouched by this list.
Every entry is a pure value function. Math.random is deliberately absent (a condition that
evaluates differently on each run is not a guard), as are Object.assign,
Object.defineProperty and Object.setPrototypeOf, which mutate.
Namespace globals whose listed methods a condition may CALL, keyed by namespace name.
Both halves of
Math.abs(x)are fixed identifiers in the AST, so admitting them adds no dynamic lookup: the four invariants that close the sandbox escape — literal-only computed keys, noconstructor/__proto__/prototype, a closed non-computed call surface with nocall/apply/bind, and screened free identifiers — are all untouched by this list.Every entry is a pure value function.
Math.randomis deliberately absent (a condition that evaluates differently on each run is not a guard), as areObject.assign,Object.definePropertyandObject.setPrototypeOf, which mutate.