namespace Jint.Runtime.Debugger;
///
/// Variable scope type.
/// These mirror Chrome DevTools Protocol.
///
public enum DebugScopeType
{
///
/// Global scope bindings.
///
///
/// A scope chain will only include one scope of this type.
///
Global,
///
/// Block scope bindings (let/const) defined at top level.
///
///
/// A scope chain will only include one scope of this type.
///
Script,
///
/// Function local bindings.
///
///
/// Function scoped variables.
/// Note that variables in outer functions are in scopes.
/// A scope chain will only include one scope of this type.
///
Local,
///
/// Block scoped bindings.
///
///
/// This scope is not used for block scoped variables (let/const) declared at the top level of the global scope.
/// Unlike Chromium V8, it *is* used as a separate scope for block scoped variables declared at the top level of a function.
/// A scope chain may include more than one scope of this type.
///
Block,
///
/// Catch scope bindings.
///
///
/// This scope only includes the argument of a catch clause in a try/catch statement.
/// A scope chain may include more than one scope of this type.
///
Catch,
///
/// Function scope bindings in outer functions.
///
///
/// Unlike Chromium V8, which will optimize variables out that aren't referenced from the inner scope,
/// Jint includes local variables from the outer function in this scope.
/// A scope chain may include more than one scope of this type.
///
Closure,
///
/// With scope bindings.
///
///
/// Includes the bindings created from properties of object used as argument to a with statement.
/// A scope chain may include more than one scope of this type.
///
With,
///
/// Eval scope bindings.
///
/// Variables declared in an evaluated string. Not implemented.
Eval,
///
/// Module scope bindings.
///
Module,
///
/// WebAssembly expression stack bindings.
///
/// Not currently implemented by Jint.
WasmExpressionStack
}