Skip to main content

Runtime budgets

Drawing primitive budgets

Entity budgets

Entity overflow is silent on screen - no chart error. Watch the Console panel for "Line limit exceeded" and similar warnings when you hit the per-type cap.

Series budget

Every unique key passed to ta.barssince(key, ...) or ta.cum(key, ...) consumes one slot from this budget.

Console output budget

Lines beyond the cap are dropped. The console panel shows a truncation notice when the limit is reached.

Banned constructs

The following are rejected at parse time (not at runtime - the script will not evaluate at all):
  • Function, eval, globalThis, window, self
  • WebAssembly, Atomics, SharedArrayBuffer
  • Reflect, Proxy
  • setTimeout, setInterval, setImmediate, queueMicrotask
  • fetch, XMLHttpRequest, WebSocket, Worker
  • process, require, __dirname, __filename
  • import declarations and dynamic import()
  • with statements
  • async function / async () =>
  • Generators
  • for await ... of
  • while(true) without a syntactic break
  • for(;;) without a break
  • Literal loop bounds > 100 000
  • Property walks through __proto__ / constructor / prototype

Performance tips

How to stay within budgets on large bar counts.

Troubleshooting

Common limit-related error messages.

Series

64-series budget details.