{"version":3,"file":"inspector.mjs","sources":["../lib-src/inspector/objects/primitives.mts","../lib-src/inspector/evaluator.mts","../lib-src/inspector/objects/function.mts","../lib-src/inspector/objects/objects.mts","../lib-src/inspector/objects/shadow-realms.mts","../lib-src/inspector/objects/modules.mts","../lib-src/inspector/objects/RegExp.mts","../lib-src/inspector/objects/proxies.mts","../lib-src/inspector/objects/promises.mts","../lib-src/inspector/objects/arrays.mts","../lib-src/inspector/objects/dates.mts","../lib-src/inspector/objects/collections.mts","../lib-src/inspector/objects/errors.mts","../lib-src/inspector/objects/index.mts","../lib-src/inspector/context.mts","../lib-src/inspector/internal-utils.mts","../lib-src/inspector/methods.mts","../lib-src/inspector/utils.mts","../lib-src/inspector/index.mts"],"sourcesContent":["import type { Inspector } from './index.mts';\nimport {\n  NullValue, UndefinedValue, BooleanValue, SymbolValue, SymbolDescriptiveString, JSStringValue, NumberValue, BigIntValue,\n} from '#self';\n\nexport const Null: Inspector<NullValue> = {\n  toRemoteObject: () => ({ type: 'object', subtype: 'null', value: null }),\n  toObjectPreview: () => ({\n    type: 'object', subtype: 'null', properties: [], overflow: false,\n  }),\n  toPropertyPreview: (name) => ({\n    name, type: 'object', subtype: 'null', value: 'null',\n  }),\n  toDescription: () => '',\n};\n\nexport const Undefined: Inspector<UndefinedValue> = {\n  toRemoteObject: () => ({ type: 'undefined' }),\n  toObjectPreview: () => ({\n    type: 'undefined', properties: [], overflow: false,\n  }),\n  toPropertyPreview: (name) => ({\n    name, type: 'undefined', value: 'undefined',\n  }),\n  toDescription: () => 'undefined',\n};\n\nexport const Boolean: Inspector<BooleanValue> = {\n  toRemoteObject: (value) => ({ type: 'boolean', value: value.booleanValue() }),\n  toPropertyPreview: (name, value) => ({\n    name, type: 'boolean', value: value.booleanValue().toString(),\n  }),\n  toObjectPreview(value) {\n    return {\n      type: 'boolean',\n      value: value.booleanValue(),\n      description: value.booleanValue().toString(),\n      overflow: false,\n      properties: [],\n    };\n  },\n  toDescription: (value) => value.booleanValue().toString(),\n};\n\nexport const Symbol: Inspector<SymbolValue> = {\n  toRemoteObject: (value, getObjectId) => ({\n    type: 'symbol',\n    description: SymbolDescriptiveString(value).stringValue(),\n    objectId: getObjectId(value),\n  }),\n  toPropertyPreview: (name, value) => ({\n    name, type: 'symbol', value: SymbolDescriptiveString(value).stringValue(),\n  }),\n  toObjectPreview: (value) => ({\n    type: 'symbol',\n    description: SymbolDescriptiveString(value).stringValue(),\n    overflow: false,\n    properties: [],\n  }),\n  toDescription: (value) => SymbolDescriptiveString(value).stringValue(),\n};\n\nexport const String: Inspector<JSStringValue> = {\n  toRemoteObject: (value) => ({ type: 'string', value: value.stringValue() }),\n  toPropertyPreview(name, value) {\n    return {\n      name, type: 'string', value: value.stringValue(),\n    };\n  },\n  toObjectPreview(value) {\n    return {\n      type: 'string',\n      description: value.stringValue(),\n      overflow: false,\n      properties: [],\n    };\n  },\n  toDescription: (value) => value.stringValue(),\n};\n\nexport const Number: Inspector<NumberValue> = {\n  toRemoteObject(value) {\n    const v = value.value;\n    let description = v.toString();\n    const isNeg0 = Object.is(v, -0);\n    // Includes values `-0`, `NaN`, `Infinity`, `-Infinity`, and bigint literals.\n    if (isNeg0 || !globalThis.Number.isFinite(v)) {\n      if (typeof v === 'bigint') {\n        description += 'n';\n        return { type: 'bigint', unserializableValue: description, description };\n      }\n      return { type: 'number', unserializableValue: description, description: isNeg0 ? '-0' : description };\n    }\n    return { type: 'number', value: v, description };\n  },\n  toPropertyPreview(name, value, context) {\n    return {\n      name, type: 'number', value: this.toDescription(value, context),\n    };\n  },\n  toObjectPreview(value, context) {\n    return {\n      type: 'number',\n      description: this.toDescription(value, context),\n      overflow: false,\n      properties: [],\n    };\n  },\n  toDescription: (value) => {\n    const r = value.value;\n    return value instanceof BigIntValue ? `${r}n` : r.toString();\n  },\n};\n","import type { InspectorContext } from './context.mts';\nimport {\n  isEvaluator, ManagedRealm, skipDebugger, surroundingAgent, type PlainCompletion, type PlainEvaluator,\n} from '#self';\n\nexport function nativeEvalInAnyRealm<T>(closure: (() => PlainCompletion<T>) | (() => PlainEvaluator<T>), context: InspectorContext): PlainCompletion<T> | undefined {\n  const realm = (surroundingAgent.runningExecutionContext?.Realm || context.getAnyRealm()?.realm) as ManagedRealm | undefined;\n  if (!realm) return undefined;\n  return realm.scope((): PlainCompletion<T> | undefined => {\n    const result = closure();\n    if (isEvaluator(result)) {\n      return skipDebugger(result);\n    }\n    return result;\n  });\n}\n","import type { Protocol } from 'devtools-protocol';\nimport type { Location } from '../../../src/parser/ParseNode.mts';\nimport { getDisplayObjectFromEnvironmentRecord } from '../context.mts';\nimport { nativeEvalInAnyRealm } from '../evaluator.mts';\nimport type { Inspector } from './index.mts';\nimport {\n  type FunctionObject, isWrappedFunctionExoticObject, IntrinsicsFunctionToString, isECMAScriptFunctionObject,\n  isBuiltinFunctionObject,\n  type DefaultConstructorBuiltinFunction,\n  EnvironmentRecord,\n  ObjectValue,\n  CreateArrayFromList,\n  unwrapCompletion,\n  isBoundFunctionObject,\n} from '#self';\n\nfunction unwrapFunction(value: FunctionObject): FunctionObject {\n  if (isWrappedFunctionExoticObject(value)) {\n    return unwrapFunction(value.WrappedTargetFunction);\n  }\n  if (isBoundFunctionObject(value)) {\n    return unwrapFunction(value.BoundTargetFunction);\n  }\n  return value;\n}\n\nfunction toLocation(location: Location, scriptId: string | undefined): Protocol.Runtime.InternalPropertyDescriptor {\n  return {\n    name: '[[FunctionLocation]]',\n    value: {\n      type: 'object',\n      subtype: 'internal#location' as never,\n      description: 'Object',\n      value: {\n        columnNumber: location.start.column,\n        lineNumber: location.start.line - 1,\n        scriptId,\n      },\n    },\n  };\n}\n\nexport const Function: Inspector<FunctionObject> = {\n  toRemoteObject(value, getObjectId) {\n    const result: Protocol.Runtime.RemoteObject = {\n      type: 'function',\n      objectId: getObjectId(value),\n    };\n    value = unwrapFunction(value);\n    result.description = IntrinsicsFunctionToString(value);\n    if (isECMAScriptFunctionObject(value) && value.ECMAScriptCode) {\n      if (value.ECMAScriptCode.type === 'FunctionBody') {\n        result.className = 'Function';\n      } else if (value.ECMAScriptCode.type === 'GeneratorBody') {\n        result.className = 'GeneratorFunction';\n      } else if (value.ECMAScriptCode.type === 'AsyncBody') {\n        result.className = 'AsyncFunction';\n      } else if (value.ECMAScriptCode.type === 'AsyncGeneratorBody') {\n        result.className = 'AsyncGeneratorFunction';\n      }\n    } else {\n      result.className = 'Function';\n    }\n    return result;\n  },\n  toPropertyPreview: (name) => ({ name, type: 'function', value: '' }),\n  toObjectPreview(value) {\n    return {\n      type: 'function',\n      description: IntrinsicsFunctionToString(unwrapFunction(value)),\n      overflow: false,\n      properties: [],\n    };\n  },\n  toInternalProperties(value, getObjectId, context) {\n    const result: Protocol.Runtime.InternalPropertyDescriptor[] = [];\n\n    while (true) {\n      if (isWrappedFunctionExoticObject(value)) {\n        if (!result.some((p) => p.name === '[[WrappedTargetFunction]]')) {\n          result.push({\n            name: '[[WrappedTargetFunction]]',\n            value: context.toRemoteObject(value.WrappedTargetFunction, { generatePreview: true }),\n          });\n        }\n        value = value.WrappedTargetFunction;\n        continue;\n      }\n\n      if (isBoundFunctionObject(value)) {\n        const v = value;\n        if (!result.some((p) => p.name === '[[BoundTargetFunction]]')) {\n          result.push({\n            name: '[[BoundTargetFunction]]',\n            value: context.toRemoteObject(v.BoundTargetFunction, { generatePreview: true }),\n          }, {\n            name: '[[BoundThis]]',\n            value: context.toRemoteObject(v.BoundThis, { generatePreview: true }),\n          }, {\n            name: '[[BoundArguments]]',\n            value: context.toRemoteObject(\n              unwrapCompletion(nativeEvalInAnyRealm(() => CreateArrayFromList(v.BoundArguments), context))!,\n              { generatePreview: true },\n            ),\n          });\n        }\n        value = v.BoundTargetFunction;\n        continue;\n      }\n      break;\n    }\n\n    if (isECMAScriptFunctionObject(value)) {\n      if (!value.ECMAScriptCode) return [];\n\n      const scope: ObjectValue[] = [];\n      let env: EnvironmentRecord | null = value.Environment;\n      while (env instanceof EnvironmentRecord) {\n        const result = getDisplayObjectFromEnvironmentRecord(env);\n        if (result) {\n          scope.push(result.object);\n        }\n        env = env.OuterEnv;\n      }\n      const scopeObject = unwrapCompletion(nativeEvalInAnyRealm(() => CreateArrayFromList(scope), context));\n      const scopeDesc: Protocol.Runtime.RemoteObject | undefined = scopeObject ? {\n        className: 'Array',\n        description: `Scopes[${scope.length}]`,\n        objectId: getObjectId(scopeObject as ObjectValue),\n        subtype: 'internal#scopeList' as never,\n        type: 'object',\n      } : undefined;\n      result.push(toLocation(value.ECMAScriptCode.location, value.scriptId), { name: '[[Scopes]]', value: scopeDesc });\n    }\n\n    if (isBuiltinFunctionObject(value)) {\n      if ((value as DefaultConstructorBuiltinFunction).HostLocation) {\n        const [scriptId, location] = (value as DefaultConstructorBuiltinFunction).HostLocation;\n        result.push(toLocation(location, scriptId));\n      }\n      if (value.nativeFunction.section) {\n        result.push({\n          name: '[[Section]]',\n          value: {\n            type: 'string',\n            value: value.nativeFunction.section,\n          },\n        });\n      }\n    }\n    return result;\n  },\n  toDescription: () => 'Function',\n};\n","import type { Protocol } from 'devtools-protocol';\nimport type { InspectorContext } from '../context.mts';\nimport { getInspector, type Inspector } from './index.mts';\nimport {\n  Descriptor,\n  isTypedArrayObject, JSStringValue, ObjectValue, PrivateElementRecord, PrivateName, SymbolDescriptiveString, SymbolValue, UndefinedValue, Value, type MapObject, type PropertyKeyValue, type SetObject,\n  DataBlock,\n  TypedArrayGetElement,\n  TypedArrayLength,\n  MakeTypedArrayWithBufferWitnessRecord,\n  ArrayExoticObjectInternalMethods,\n  F,\n} from '#self';\n\nexport type InternalPropertyItem = readonly [string, Value | MapObject['MapData'] | SetObject['SetData']];\nexport type AdditionalPropertyItem = readonly [string, Value];\n\nexport class ObjectInspector<T extends ObjectValue> implements Inspector<T> {\n  subtype: Protocol.Runtime.RemoteObject['subtype'];\n\n  className: string | ((value: Value) => string);\n\n  toDescription: (value: T, context: InspectorContext) => string;\n\n  toCustomPreview?: (value: T, getObjectId: (val: SymbolValue | ObjectValue) => string, context: InspectorContext) => Protocol.Runtime.CustomPreview | undefined;\n\n  private toEntries: ((value: T, context: InspectorContext) => Protocol.Runtime.ObjectPreview['entries']) | undefined;\n\n  private additionalProperties: ((value: T, context: InspectorContext) => Iterable<AdditionalPropertyItem>) | undefined;\n\n  private internalProperties: ((value: T, context: InspectorContext) => Iterable<InternalPropertyItem>) | undefined;\n\n  public exoticProperties: Inspector<T>['exoticProperties'] | undefined;\n\n  constructor(\n    className: ObjectInspector<T>['className'],\n    subtype: ObjectInspector<T>['subtype'],\n    toDescription: ObjectInspector<T>['toDescription'],\n    additionalOptions?: {\n      entries?: ObjectInspector<T>['toEntries'];\n      additionalProperties?: ObjectInspector<T>['additionalProperties'];\n      internalProperties?: ObjectInspector<T>['internalProperties'];\n      exoticProperties?: ObjectInspector<T>['exoticProperties'];\n      customPreview?: ObjectInspector<T>['toCustomPreview'];\n    },\n  ) {\n    this.className = className;\n    this.subtype = subtype;\n    this.toDescription = toDescription;\n    this.toEntries = additionalOptions?.entries;\n    this.additionalProperties = additionalOptions?.additionalProperties;\n    this.internalProperties = additionalOptions?.internalProperties;\n    this.exoticProperties = additionalOptions?.exoticProperties;\n    this.toCustomPreview = additionalOptions?.customPreview;\n  }\n\n  toRemoteObject(value: T, getObjectId: (val: ObjectValue | SymbolValue) => string, context: InspectorContext): Protocol.Runtime.RemoteObject {\n    const object: Protocol.Runtime.RemoteObject = {\n      type: 'object',\n      subtype: this.subtype,\n      objectId: getObjectId(value),\n      className: typeof this.className === 'string' ? this.className : this.className(value),\n      description: this.toDescription(value, context),\n      preview: this.toObjectPreview(value, context),\n    };\n    const customPreview = this.toCustomPreview?.(value, getObjectId, context);\n    if (customPreview) object.customPreview = customPreview;\n    return object;\n  }\n\n  toPropertyPreview(name: string, value: T, context: InspectorContext): Protocol.Runtime.PropertyPreview {\n    return {\n      name,\n      type: 'object',\n      subtype: this.subtype,\n      value: this.toDescription(value, context),\n    };\n  }\n\n  toInternalProperties(value: T, getObjectId: (val: ObjectValue | SymbolValue) => string, context: InspectorContext, generatePreview: boolean | undefined): Protocol.Runtime.InternalPropertyDescriptor[] {\n    const internalProperties = [...this.internalProperties?.(value, context) || []];\n    if (!internalProperties.length) {\n      return [];\n    }\n    return internalProperties.map(([name, val]): Protocol.Runtime.InternalPropertyDescriptor => {\n      let value: Protocol.Runtime.RemoteObject;\n      if (val instanceof Value) {\n        value = getInspector(val).toRemoteObject(val, getObjectId, context, generatePreview);\n      } else {\n        const array = new ObjectValue([]);\n        array.DefineOwnProperty = ArrayExoticObjectInternalMethods.DefineOwnProperty;\n        array.properties.set('length', Descriptor({ Value: F(val.length) }));\n        for (const [index, item] of val.entries()) {\n          let value;\n          if (item instanceof Value) {\n            value = item;\n          } else {\n            if (!item?.Key || !item.Value) {\n              continue;\n            }\n            value = new ObjectValue(['InspectorEntry']);\n            value.properties.set('key', Descriptor({ Value: item.Key }));\n            value.properties.set('value', Descriptor({ Value: item.Value }));\n          }\n          array.properties.set(Value(index.toString()), Descriptor({ Value: value }));\n        }\n        value = getInspector(array).toRemoteObject(array, getObjectId, context, generatePreview);\n      }\n      return ({ name, value });\n    });\n  }\n\n  toObjectPreview(value: T, context: InspectorContext): Protocol.Runtime.ObjectPreview {\n    const e = this.toEntries?.(value, context);\n    return {\n      type: 'object',\n      subtype: this.subtype,\n      description: this.toDescription(value, context),\n      entries: e?.length ? e : undefined,\n      ...propertiesToPropertyPreview(\n        value,\n        [...this.internalProperties?.(value, context) || [], ...this.additionalProperties?.(value, context) || []],\n        context,\n      ),\n    };\n  }\n}\n\nexport const DefaultObject = new ObjectInspector<ObjectValue>('Object', undefined, (object) => {\n  const [ctor] = object.ConstructedBy;\n  if (!ctor) {\n    return 'Object';\n  }\n  return propertyNameToString(ctor.HostInitialName);\n});\n\nexport const InternalInspectorEntry = new ObjectInspector<ObjectValue>('Object', 'internal#entry' as never, (value, context) => {\n  const key = value.properties.get(Value('key'))!.Value!;\n  const val = value.properties.get(Value('value'))!.Value!;\n  return `{${getInspector(key).toDescription(key, context)} => ${getInspector(val).toDescription(val, context)}}`;\n});\n\nfunction propertyNameToString(value: PropertyKeyValue | PrivateName): string {\n  if (value instanceof JSStringValue) {\n    return value.stringValue();\n  } else if (value instanceof PrivateName) {\n    return value.Description.stringValue();\n  } else {\n    return SymbolDescriptiveString(value).stringValue();\n  }\n}\n\nexport function propertyToPropertyPreview(key: PropertyKeyValue | PrivateName, desc: Descriptor | PrivateElementRecord, context: InspectorContext): Protocol.Runtime.PropertyPreview {\n  const name = propertyNameToString(key);\n  if (desc.Get || desc.Set) {\n    return { name, type: 'accessor' };\n  } else {\n    return getInspector(desc.Value!).toPropertyPreview(name, desc.Value!, context);\n  }\n}\n\nfunction propertiesToPropertyPreview(value: ObjectValue, extra: undefined | Iterable<InternalPropertyItem>, context: InspectorContext, max = 5) {\n  let overflow = false;\n  const properties: Protocol.Runtime.PropertyPreview[] = [];\n  if (extra) {\n    for (const [key, value] of extra) {\n      if (value instanceof Value) {\n        properties.push(getInspector(value).toPropertyPreview(key, value, context));\n      }\n      // TODO:... handle Value[]\n    }\n  }\n  if (isTypedArrayObject(value) && value.ViewedArrayBuffer instanceof ObjectValue && value.ViewedArrayBuffer.ArrayBufferData instanceof DataBlock) {\n    const record = MakeTypedArrayWithBufferWitnessRecord(value, 'seq-cst');\n    const length = TypedArrayLength(record);\n    for (let index = 0; index < length; index += 1) {\n      const index_value = TypedArrayGetElement(value, Value(index));\n      if (index_value instanceof UndefinedValue) {\n        break;\n      }\n      if (properties.length > 100) {\n        overflow = true;\n        break;\n      }\n      properties.push(getInspector(index_value).toPropertyPreview(index.toString(), index_value, context));\n    }\n    properties.push(\n      {\n        name: 'buffer', type: 'object', subtype: 'arraybuffer', value: `ArrayBuffer(${value.ViewedArrayBuffer.ArrayBufferData.byteLength})`,\n      },\n      { name: 'byteLength', type: 'number', value: globalThis.String(value.ArrayLength) },\n      { name: 'byteOffset', type: 'number', value: globalThis.String(value.ByteOffset) },\n      { name: 'length', type: 'number', value: globalThis.String(length) },\n    );\n  }\n  for (const [key, desc] of value.properties) {\n    if (properties.length > max) {\n      overflow = true;\n      break;\n    }\n    properties.push(propertyToPropertyPreview(key, desc, context));\n  }\n  for (const desc of value.PrivateElements) {\n    if (properties.length > max) {\n      overflow = true;\n      break;\n    }\n    properties.push(propertyToPropertyPreview(desc.Key, desc, context));\n  }\n  return { overflow, properties };\n}\n","import { ObjectInspector } from './objects.mts';\nimport type { ShadowRealmObject } from '#self';\n\nexport const ShadowRealm = new ObjectInspector<ShadowRealmObject>('ShadowRealm', undefined, () => 'ShadowRealm', {\n  internalProperties: (realm) => [['[[GlobalObject]]', realm.ShadowRealm.GlobalObject]],\n});\n","import type { Protocol } from 'devtools-protocol';\nimport { nativeEvalInAnyRealm } from '../evaluator.mts';\nimport { ObjectInspector, type AdditionalPropertyItem } from './objects.mts';\nimport { getInspector } from './index.mts';\nimport {\n  type ModuleNamespaceObject, surroundingAgent, skipDebugger, EnsureCompletion, Get, NormalCompletion, Value, ManagedRealm,\n  CreateBuiltinFunction,\n} from '#self';\n\nexport const Module = new ObjectInspector<ModuleNamespaceObject>('Module', undefined, () => 'Module', {\n  additionalProperties: (module, context) => {\n    const result: AdditionalPropertyItem[] = [];\n    surroundingAgent.debugger_scopePreview(() => {\n      nativeEvalInAnyRealm(() => {\n        for (const key of module.Exports) {\n          const completion = EnsureCompletion(skipDebugger(Get(module, key)));\n          if (completion instanceof NormalCompletion) {\n            result.push([key.stringValue(), completion.Value!]);\n          }\n        }\n        return Value.undefined;\n      }, context);\n    });\n    return result;\n  },\n  exoticProperties(module, getObjectId, context, generatePreview): Protocol.Runtime.PropertyDescriptor[] {\n    const result: Protocol.Runtime.PropertyDescriptor[] = [];\n    surroundingAgent.debugger_scopePreview(() => {\n      nativeEvalInAnyRealm(() => {\n        for (const key of module.Exports) {\n          const completion = EnsureCompletion(skipDebugger(Get(module, key)));\n          if (completion instanceof NormalCompletion) {\n            result.push({\n              name: key.stringValue(),\n              value: getInspector(completion.Value!).toRemoteObject(completion.Value!, getObjectId, context, generatePreview),\n              writable: false,\n              configurable: false,\n              enumerable: true,\n              isOwn: true,\n            });\n          } else {\n            const realm = module.Module.Realm as ManagedRealm;\n            const evaluate = CreateBuiltinFunction(function* evaluate() {\n              return yield* (Get(module, key));\n            }, 0, 'Module.evaluate', [], realm);\n            result.push({\n              name: key.stringValue(),\n              get: getInspector(evaluate).toRemoteObject(evaluate, getObjectId, context, generatePreview),\n              set: { type: 'undefined' },\n              writable: false,\n              configurable: false,\n              enumerable: true,\n              isOwn: true,\n            });\n          }\n        }\n        return Value.undefined;\n      }, context);\n    });\n    return result;\n  },\n});\n","import { ObjectInspector } from './objects.mts';\nimport type { RegExpObject } from '#self';\n\nexport const RegExp = new ObjectInspector<RegExpObject>('RegExp', 'regexp', (value) => `/${value.OriginalSource.stringValue()}/${value.OriginalFlags.stringValue()}`);\n","import { ObjectInspector } from './objects.mts';\nimport { type ProxyObject, IsCallable, ObjectValue } from '#self';\n\nexport const Proxy = new ObjectInspector<ProxyObject>('Proxy', 'proxy', (value) => {\n  if (IsCallable(value.ProxyTarget)) {\n    return 'Proxy(Function)';\n  }\n  if (value.ProxyTarget instanceof ObjectValue) {\n    return 'Proxy(Object)';\n  }\n  return 'Proxy';\n});\n","import { ObjectInspector } from './objects.mts';\nimport { type PromiseObject, Value } from '#self';\n\nexport const Promise = new ObjectInspector<PromiseObject>('Promise', 'promise', () => 'Promise', {\n  internalProperties: (value) => [['[[PromiseState]]', Value(value.PromiseState)], ['[[PromiseResult]]', value.PromiseResult || Value.undefined]],\n});\n","import type { Protocol } from 'devtools-protocol';\nimport type { InspectorContext } from '../context.mts';\nimport { ObjectInspector, propertyToPropertyPreview } from './objects.mts';\nimport { type Inspector, getInspector } from './index.mts';\nimport {\n  DataBlock,\n  isIntegerIndex, JSStringValue, NumberValue, ObjectValue, R, Value, type ArrayBufferObject, type DataViewObject, type TypedArrayObject,\n} from '#self';\n\nexport const Array: Inspector<ObjectValue> = {\n  toRemoteObject(value, getObjectId, context) {\n    return {\n      type: 'object',\n      className: 'Array',\n      subtype: 'array',\n      objectId: getObjectId(value),\n      description: getInspector(value).toDescription(value, context),\n      preview: this.toObjectPreview?.(value, context),\n    };\n  },\n  toPropertyPreview(name, value, context) {\n    return {\n      name, type: 'object', subtype: 'array', value: this.toDescription(value, context),\n    };\n  },\n  toObjectPreview(value, context) {\n    const result: Protocol.Runtime.ObjectPreview = {\n      type: 'object',\n      subtype: 'array',\n      overflow: false,\n      properties: [],\n      description: this.toDescription(value, context),\n    };\n    const indexProp: Protocol.Runtime.PropertyPreview[] = [];\n    const otherProp: Protocol.Runtime.PropertyPreview[] = [];\n    for (const [key, desc] of value.properties) {\n      if (indexProp.length > 100) {\n        result.overflow = true;\n        break;\n      }\n      if (isIntegerIndex(key)) {\n        indexProp.push(propertyToPropertyPreview(key, desc, context));\n      } else if (!(key instanceof JSStringValue && key.stringValue() === 'length')) {\n        otherProp.push(propertyToPropertyPreview(key, desc, context));\n      }\n    }\n    result.properties = indexProp.concat(otherProp).slice(0, 100);\n    return result;\n  },\n  toDescription(value) {\n    const length = [...value.properties.entries()].find(([key]) => key instanceof JSStringValue && key.stringValue() === 'length');\n    if (!length || !(length[1].Value instanceof NumberValue)) {\n      throw new TypeError('Bad ArrayExoticObject');\n    }\n    return `Array(${R(length[1].Value)})`;\n  },\n};\n\nconst globalId = new WeakMap<InspectorContext, number>();\nconst id = new WeakMap<DataBlock, number>();\nexport const ArrayBuffer = new ObjectInspector<ArrayBufferObject>('ArrayBuffer', 'arraybuffer', (value) => `ArrayBuffer(${value.ArrayBufferByteLength})`, {\n  internalProperties(value, context) {\n    if (value.ArrayBufferData instanceof DataBlock) {\n      if (!id.has(value.ArrayBufferData)) id.set(value.ArrayBufferData, (globalId.get(context) ?? 1000) + 1);\n      const blockId = id.get(value.ArrayBufferData)!;\n      globalId.set(context, blockId);\n      return [\n        ['[[ArrayBufferByteLength]]', Value(value.ArrayBufferByteLength)],\n        ['[[ArrayBufferData]]', Value(blockId)],\n      ];\n    }\n    return [];\n  },\n});\n\nexport const DataView = new ObjectInspector<DataViewObject>('DataView', 'dataview', (value) => `DataView(${value.ByteLength})`);\n\nexport const TypedArray = new ObjectInspector<TypedArrayObject>('TypedArray', 'typedarray', (value) => `${value.TypedArrayName.stringValue()}(${value.ArrayLength})`);\n","import { ObjectInspector } from './objects.mts';\nimport {\n  type DateObject, DateProto_toISOString, Value, ValueOfNormalCompletion, NormalCompletion, JSStringValue, type TemporalInstantObject, TemporalInstantToString, type TemporalDurationObject, TemporalDurationToString, type TemporalPlainDateObject, TemporalDateToString, type TemporalPlainDateTimeObject, FormatISODateTime, type TemporalPlainMonthDayObject, TemporalMonthDayToString, type TemporalPlainTimeObject, TimeRecordToString, type TemporalPlainYearMonthObject, TemporalYearMonthToString, type TemporalZonedDateTimeObject, TemporalZonedDateTimeToString,\n} from '#self';\n\n\nexport const Date = new ObjectInspector<DateObject>('Date', 'date', ((value: DateObject) => {\n  if (!globalThis.Number.isFinite(value.DateValue)) {\n    return 'Invalid Date';\n  }\n  const val = DateProto_toISOString([], { thisValue: value, NewTarget: Value.undefined });\n  return ValueOfNormalCompletion(val as NormalCompletion<JSStringValue>).stringValue();\n}));\n\nexport const TemporalInstant = new ObjectInspector<TemporalInstantObject>(\n  'Temporal.Instant',\n  'date',\n  (value) => `Temporal.Instant <${TemporalInstantToString(value, undefined, 'auto')}>`,\n);\n\nexport const TemporalDuration = new ObjectInspector<TemporalDurationObject>('Temporal.Duration', 'date', (value) => `Temporal.Duration <${TemporalDurationToString(value, 'auto')}>`);\n\nexport const TemporalPlainDate = new ObjectInspector<TemporalPlainDateObject>('Temporal.PlainDate', 'date', (value) => `Temporal.PlainDate <${TemporalDateToString(value, 'auto')}>`);\n\nexport const TemporalPlainDateTime = new ObjectInspector<TemporalPlainDateTimeObject>(\n  'Temporal.PlainDateTime',\n  'date',\n  (value) => `Temporal.PlainDateTime <${FormatISODateTime(value.ISODateTime, value.Calendar, 'auto', 'auto')}>`,\n);\n\nexport const TemporalPlainMonthDay = new ObjectInspector<TemporalPlainMonthDayObject>(\n  'Temporal.PlainMonthDay',\n  'date',\n  (value) => `Temporal.PlainMonthDay <${TemporalMonthDayToString(value, 'auto')}>`,\n);\n\nexport const TemporalPlainTime = new ObjectInspector<TemporalPlainTimeObject>('Temporal.PlainTime', 'date', (value) => `Temporal.PlainTime <${TimeRecordToString(value.Time, 'auto')}>`);\n\nexport const TemporalPlainYearMonth = new ObjectInspector<TemporalPlainYearMonthObject>(\n  'Temporal.PlainYearMonth',\n  'date',\n  (value) => `Temporal.PlainYearMonth <${TemporalYearMonthToString(value, 'auto')}>`,\n);\n\nexport const TemporalZonedDateTime = new ObjectInspector<TemporalZonedDateTimeObject>(\n  'Temporal.ZonedDateTime',\n  'date',\n  (value) => `Temporal.ZonedDateTime <${TemporalZonedDateTimeToString(value, 'auto', 'auto', 'auto', 'auto')}>`,\n);\n","import { getInspector } from './index.mts';\nimport { ObjectInspector } from './objects.mts';\nimport {\n  type MapObject, Value, type SetObject, type WeakMapObject, type WeakSetObject,\n} from '#self';\n\nexport const Map = new ObjectInspector<MapObject>('Map', 'map', (value) => `Map(${value.MapData.filter((x) => !!x.Key).length})`, {\n  additionalProperties: (value) => [['size', Value(value.MapData.filter((x) => !!x.Key).length)]],\n  internalProperties: (value) => [['[[Entries]]', value.MapData]],\n  entries: (value, context) => value.MapData.filter((x) => x.Key).map(({ Key, Value }) => ({\n    key: getInspector(Key!).toObjectPreview(Key!, context),\n    value: getInspector(Value!).toObjectPreview(Value!, context),\n  })),\n});\n\nexport const Set = new ObjectInspector<SetObject>('Set', 'set', (value) => `Set(${value.SetData.filter(globalThis.Boolean).length})`, {\n  additionalProperties: (value) => [['size', Value(value.SetData.filter(globalThis.Boolean).length)]],\n  internalProperties: (value) => [['[[Entries]]', value.SetData]],\n  entries: (value, context) => value.SetData.filter(globalThis.Boolean).map((Value) => ({\n    value: getInspector(Value!).toObjectPreview(Value!, context),\n  })),\n});\n\nexport const WeakMap = new ObjectInspector<WeakMapObject>('WeakMap', 'weakmap', () => 'WeakMap', {\n  internalProperties: (value) => [['[[Entries]]', value.WeakMapData]],\n  entries: (value, context) => value.WeakMapData.filter((x) => x.Key).map(({ Key, Value }) => ({\n    key: getInspector(Key!).toObjectPreview(Key!, context),\n    value: getInspector(Value!).toObjectPreview(Value!, context),\n  })),\n});\n\nexport const WeakSet = new ObjectInspector<WeakSetObject>('WeakSet', 'weakset', () => 'WeakSet', {\n  internalProperties: (value) => [['[[Entries]]', value.WeakSetData]],\n  entries: (value, context) => value.WeakSetData.filter(globalThis.Boolean).map((Value) => ({\n    value: getInspector(Value!).toObjectPreview(Value!, context),\n  })),\n});\n","import { nativeEvalInAnyRealm } from '../evaluator.mts';\nimport { ObjectInspector } from './objects.mts';\nimport { getInspector } from './index.mts';\nimport {\n  ObjectValue, surroundingAgent, skipDebugger, Get, Value, getHostDefinedErrorDetails,\n  CreateArrayFromList,\n  unwrapCompletion,\n  JSStringValue,\n  EnsureCompletion,\n  NormalCompletion,\n} from '#self';\n\nexport const Error = new ObjectInspector<ObjectValue>('Error', 'error', (value, context) => {\n  let text = '';\n  surroundingAgent.debugger_scopePreview(() => nativeEvalInAnyRealm(() => {\n    const completion = EnsureCompletion(surroundingAgent.debugger_scopePreview(() => nativeEvalInAnyRealm(() => skipDebugger(Get(value, Value('stack'))), context)));\n    if (completion instanceof NormalCompletion && completion.Value instanceof JSStringValue) {\n      text = completion.Value.stringValue();\n      if (!text.includes('  at') && !text.includes('SyntaxError')) {\n        text = '';\n      }\n    }\n    return Value.undefined;\n  }, context));\n  return text || 'Error';\n}, {\n  internalProperties: (error, context) => {\n    const unformattedMessage = getHostDefinedErrorDetails(error).message;\n    if (!unformattedMessage) return [];\n    const value = nativeEvalInAnyRealm(() => CreateArrayFromList(unformattedMessage.map((part) => (typeof part === 'string' ? Value(part) : part))), context);\n    if (!value) return [];\n    return [['[[UnformattedErrorMessage]]', unwrapCompletion(value)]];\n  },\n  customPreview: (error, getObjectId, context) => {\n    const { message, stack, stackGetterValue } = getHostDefinedErrorDetails(error);\n    if (!message || !stackGetterValue) return undefined;\n\n    const stackC = EnsureCompletion(surroundingAgent.debugger_scopePreview(() => nativeEvalInAnyRealm(() => skipDebugger(Get(error, Value('stack'))), context)));\n    if (stackC instanceof NormalCompletion && stackC.Value instanceof JSStringValue) {\n      const stackMaybeModified = stackC.Value.stringValue();\n      if (stackMaybeModified !== stackGetterValue) return undefined;\n    }\n\n    let constructorName = 'Error';\n    const nameC = EnsureCompletion(surroundingAgent.debugger_scopePreview(() => nativeEvalInAnyRealm(() => skipDebugger(Get(error, Value('name'))), context)));\n    if (nameC instanceof NormalCompletion && nameC.Value instanceof JSStringValue) constructorName = nameC.Value.stringValue();\n\n    const header = JSON.stringify(['span', null,\n      constructorName,\n      ': ',\n      ...message.map((part) => (\n        typeof part === 'string' ? part : ['object', getInspector(part).toRemoteObject(part, getObjectId, context, false)]\n      )),\n      stack,\n    ]);\n    return { header };\n  },\n});\n","import type { Protocol } from 'devtools-protocol';\nimport type { InspectorContext } from '../context.mts';\nimport {\n  Null, Undefined, Boolean, Number, String, Symbol,\n} from './primitives.mts';\nimport { Function } from './function.mts';\nimport {\n  DefaultObject, InternalInspectorEntry,\n} from './objects.mts';\nimport { ShadowRealm } from './shadow-realms.mts';\nimport { Module } from './modules.mts';\nimport { RegExp } from './RegExp.mts';\nimport { Proxy } from './proxies.mts';\nimport { Promise } from './promises.mts';\nimport {\n  Array, TypedArray, ArrayBuffer, DataView,\n} from './arrays.mts';\nimport {\n  Date, TemporalDuration, TemporalInstant, TemporalPlainDate, TemporalPlainDateTime, TemporalPlainMonthDay, TemporalPlainTime, TemporalPlainYearMonth, TemporalZonedDateTime,\n} from './dates.mts';\nimport {\n  Map, Set, WeakMap, WeakSet,\n} from './collections.mts';\nimport { Error } from './errors.mts';\nimport {\n  BigIntValue,\n  isArrayBufferObject,\n  isArrayExoticObject,\n  IsCallable,\n  isDataViewObject,\n  isDateObject,\n  isErrorObject,\n  isMapObject,\n  isModuleNamespaceObject,\n  isPromiseObject,\n  isProxyExoticObject,\n  isRegExpObject,\n  isSetObject,\n  isShadowRealmObject,\n  isTemporalDurationObject,\n  isTemporalInstantObject,\n  isTemporalPlainDateObject,\n  isTemporalPlainDateTimeObject,\n  isTemporalPlainMonthDayObject,\n  isTemporalPlainTimeObject,\n  isTemporalPlainYearMonthObject,\n  isTemporalZonedDateTimeObject,\n  isTypedArrayObject,\n  isWeakMapObject,\n  isWeakSetObject,\n  JSStringValue,\n  NumberValue,\n  ObjectValue, SymbolValue, Value,\n} from '#self';\n\nexport interface Inspector<T extends Value> {\n  toRemoteObject(value: T, getObjectId: (val: SymbolValue | ObjectValue) => string, context: InspectorContext, generatePreview: boolean | undefined): Protocol.Runtime.RemoteObject;\n  toObjectPreview(value: T, context: InspectorContext): Protocol.Runtime.ObjectPreview;\n  toPropertyPreview(name: string, value: T, context: InspectorContext): Protocol.Runtime.PropertyPreview;\n  toDescription(value: T, context: InspectorContext): string;\n  toInternalProperties?(value: T, getObjectId: (val: SymbolValue | ObjectValue) => string, context: InspectorContext, generatePreview: boolean | undefined): Protocol.Runtime.InternalPropertyDescriptor[];\n  exoticProperties?(value: T, getObjectId: (val: SymbolValue | ObjectValue) => string, context: InspectorContext, generatePreview: boolean | undefined): Protocol.Runtime.PropertyDescriptor[];\n}\n\nexport function getInspector(value: Value): Inspector<Value> {\n  switch (true) {\n    case value === Value.null:\n      return Null;\n    case value === Value.undefined:\n      return Undefined;\n    case value === Value.true || value === Value.false:\n      return Boolean;\n    case value instanceof SymbolValue:\n      return Symbol;\n    case value instanceof JSStringValue:\n      return String;\n    case value instanceof NumberValue:\n    case value instanceof BigIntValue:\n      return Number;\n    case isProxyExoticObject(value):\n      return Proxy;\n    case IsCallable(value):\n      return Function;\n    case isArrayExoticObject(value):\n      return Array;\n    case isRegExpObject(value):\n      return RegExp;\n    case isDateObject(value):\n      return Date;\n    case isMapObject(value):\n      return Map;\n    case isSetObject(value):\n      return Set;\n    case isWeakMapObject(value):\n      return WeakMap;\n    case isWeakSetObject(value):\n      return WeakSet;\n    // generator\n    case isErrorObject(value):\n      return Error;\n    case isPromiseObject(value):\n      return Promise;\n    case isTypedArrayObject(value):\n      return TypedArray;\n    case isArrayBufferObject(value):\n      return ArrayBuffer;\n    case isDataViewObject(value):\n      return DataView;\n    case isModuleNamespaceObject(value):\n      return Module;\n    case isShadowRealmObject(value):\n      return ShadowRealm;\n    case isTemporalInstantObject(value):\n      return TemporalInstant;\n    case isTemporalDurationObject(value):\n      return TemporalDuration;\n    case isTemporalPlainDateObject(value):\n      return TemporalPlainDate;\n    case isTemporalPlainDateTimeObject(value):\n      return TemporalPlainDateTime;\n    case isTemporalPlainMonthDayObject(value):\n      return TemporalPlainMonthDay;\n    case isTemporalPlainTimeObject(value):\n      return TemporalPlainTime;\n    case isTemporalPlainYearMonthObject(value):\n      return TemporalPlainYearMonth;\n    case isTemporalZonedDateTimeObject(value):\n      return TemporalZonedDateTime;\n    case (value as ObjectValue).internalSlotsList.includes('InspectorEntry'):\n      return InternalInspectorEntry;\n    default:\n      return DefaultObject;\n  }\n}\n","import type { Protocol } from 'devtools-protocol';\nimport { getInspector } from './objects/index.mts';\nimport type { Inspector } from './index.mts';\nimport {\n  EnsureCompletion, JSStringValue, ManagedRealm, NullValue, ObjectValue, SymbolValue, ThrowCompletion, Value,\n  getHostDefinedErrorDetails,\n  type ValueCompletion,\n  getCurrentStack,\n  isECMAScriptFunctionObject,\n  SymbolDescriptiveString,\n  type EnvironmentRecordWithThisBinding,\n  EnvironmentRecord,\n  DeclarativeEnvironmentRecord,\n  ObjectEnvironmentRecord,\n  FunctionEnvironmentRecord,\n  GlobalEnvironmentRecord,\n  ModuleEnvironmentRecord,\n  OrdinaryObjectCreate,\n  Descriptor,\n  isArgumentExoticObject,\n  Agent,\n  surroundingAgent,\n  IsAccessorDescriptor,\n  isIntegerIndex,\n  CallSite,\n  CallFrame,\n  type OrdinaryObject,\n} from '#self';\n\ninterface InspectedRealmDescriptor {\n  readonly realm: ManagedRealm;\n  readonly descriptor: Protocol.Runtime.ExecutionContextDescription;\n  readonly agent: Agent;\n  detach(): void;\n}\n\nexport class InspectorContext {\n  #io: Inspector;\n\n  constructor(io: Inspector) {\n    this.#io = io;\n  }\n\n  realms: (InspectedRealmDescriptor | undefined)[] = [];\n\n  attachRealm(realm: ManagedRealm, agent: Agent) {\n    const id = this.realms.length;\n    const descriptor: Protocol.Runtime.ExecutionContextDescription = {\n      id,\n      origin: realm.HostDefined.specifier || 'vm://repl',\n      name: realm.HostDefined.name || 'engine262',\n      uniqueId: id.toString(),\n    };\n    this.realms.push({\n      realm,\n      descriptor,\n      agent,\n      detach: () => {\n        realm.HostDefined.attachingInspector = oldInspector;\n        realm.HostDefined.attachingInspectorReportError = function attachingInspectorReportError(realm, error) {\n          if (this.attachingInspector && realm instanceof ManagedRealm) {\n            (this.attachingInspector as Inspector).console(realm, 'error' as Protocol.Runtime.ConsoleAPICalledEventType, [error]);\n          }\n        };\n      },\n    });\n    const oldInspector = realm.HostDefined.attachingInspector;\n    realm.HostDefined.attachingInspector = this.#io;\n    this.#io.sendEvent['Runtime.executionContextCreated']({ context: descriptor });\n  }\n\n  detachAgent(agent: Agent) {\n    for (const realm of this.realms) {\n      if (realm?.agent === agent) {\n        this.detachRealm(realm.realm);\n      }\n    }\n  }\n\n  detachRealm(realm: ManagedRealm) {\n    const index = this.realms.findIndex((c) => c?.realm === realm);\n    if (index === -1) {\n      return;\n    }\n    const { descriptor } = this.realms[index]!;\n    realm.HostDefined.attachingInspector = undefined;\n    realm.HostDefined.attachingInspectorReportError = undefined;\n    this.realms[index] = undefined;\n    this.#io.sendEvent['Runtime.executionContextDestroyed']({ executionContextId: descriptor.id, executionContextUniqueId: descriptor.uniqueId });\n  }\n\n  getRealm(realm: ManagedRealm | string | number | undefined) {\n    if (realm === undefined) {\n      if (surroundingAgent.runningExecutionContext && surroundingAgent.currentRealmRecord instanceof ManagedRealm) {\n        realm = surroundingAgent.currentRealmRecord;\n      } else {\n        return undefined;\n      }\n    }\n    if (typeof realm === 'string') {\n      return this.realms.find((c) => c?.descriptor.uniqueId === realm);\n    } else if (typeof realm === 'number') {\n      return this.realms[realm];\n    }\n    return this.realms.find((c) => c?.realm === realm);\n  }\n\n  /** @deprecated in this case we are guessing the realm should be using, which may create bad result */\n  getAnyRealm() {\n    return this.realms.find(Boolean);\n  }\n\n  #idToObject = new Map<string, ObjectValue | SymbolValue>();\n\n  #objectToId = new Map<ObjectValue | SymbolValue, string>();\n\n  #objectCounter = 1;\n\n  #internObject(object: ObjectValue | SymbolValue, group = 'default') {\n    if (this.#objectToId.has(object)) {\n      return this.#objectToId.get(object)!;\n    }\n    const id = `${group}:${this.#objectCounter}`;\n    this.#objectCounter += 1;\n    this.#idToObject.set(id, object);\n    this.#objectToId.set(object, id);\n    return id;\n  }\n\n  releaseObject(id: string) {\n    const object = this.#idToObject.get(id);\n    if (object) {\n      this.#idToObject.delete(id);\n      this.#objectToId.delete(object);\n    }\n  }\n\n  releaseObjectGroup(group: string) {\n    for (const [id, object] of this.#idToObject.entries()) {\n      if (id.startsWith(group)) {\n        this.#idToObject.delete(id);\n        this.#objectToId.delete(object);\n      }\n    }\n  }\n\n  getObject(objectId: string) {\n    return this.#idToObject.get(objectId);\n  }\n\n  toRemoteObject(value: Value, options: { objectGroup?: string, generatePreview?: boolean }): Protocol.Runtime.RemoteObject {\n    return getInspector(value).toRemoteObject(value, (val) => this.#internObject(val, options.objectGroup), this, options.generatePreview);\n  }\n\n  getProperties({\n    objectId, accessorPropertiesOnly, generatePreview, nonIndexedPropertiesOnly, ownProperties,\n  }: Protocol.Runtime.GetPropertiesRequest): Protocol.Runtime.GetPropertiesResponse {\n    const object = this.getObject(objectId);\n    if (!(object instanceof ObjectValue)) {\n      return { result: [] };\n    }\n    const wrap = (v: Value) => this.toRemoteObject(v, { generatePreview });\n\n    const properties: Protocol.Runtime.PropertyDescriptor[] = [];\n    const internalProperties: Protocol.Runtime.InternalPropertyDescriptor[] = [];\n    const privateProperties: Protocol.Runtime.PrivatePropertyDescriptor[] = [];\n\n    if (!accessorPropertiesOnly) {\n      object.PrivateElements.forEach((value) => {\n        const desc: Protocol.Runtime.PrivatePropertyDescriptor = {\n          name: value.Key.Description.stringValue(),\n        };\n        if (value.Value) desc.value = wrap(value.Value);\n        if (value.Get) desc.get = wrap(value.Get);\n        if (value.Set) desc.set = wrap(value.Set);\n        privateProperties.push(desc);\n      });\n\n      const exoticProperties = getInspector(object).exoticProperties?.(object, (val) => this.#internObject(val), this, generatePreview);\n      if (exoticProperties) {\n        properties.push(...exoticProperties);\n      }\n    }\n\n    (() => {\n      let p: NullValue | ObjectValue = object;\n      while (p instanceof ObjectValue) {\n        for (const key of p.properties.keys()) {\n          if (nonIndexedPropertiesOnly && isIntegerIndex(key)) {\n            continue;\n          }\n          const desc = (p.properties.get(key));\n          if (!desc) {\n            return;\n          }\n          if (accessorPropertiesOnly && !IsAccessorDescriptor(desc)) {\n            continue;\n          }\n          const descriptor: Protocol.Runtime.PropertyDescriptor = {\n            name: key instanceof JSStringValue\n              ? key.stringValue()\n              : SymbolDescriptiveString(key).stringValue(),\n            writable: desc.Writable === Value.true,\n            configurable: desc.Configurable === Value.true,\n            enumerable: desc.Enumerable === Value.true,\n            isOwn: p === object,\n          };\n          if (desc.Value && !('HostUninitializedBindingMarkerObject' in desc.Value)) descriptor.value = wrap(desc.Value);\n          if (desc.Get) descriptor.get = wrap(desc.Get);\n          if (desc.Set) descriptor.set = wrap(desc.Set);\n          if (key instanceof SymbolValue) descriptor.symbol = wrap(key);\n          properties.push(descriptor);\n        }\n\n        if (ownProperties) {\n          break;\n        }\n        if ('Prototype' in p) {\n          p = (p as OrdinaryObject).Prototype;\n        } else {\n          p = Value.null;\n        }\n      }\n    })();\n\n    const additionalInternalFields = getInspector(object).toInternalProperties?.(object, (val) => this.#internObject(val, 'default'), this, generatePreview);\n    if (additionalInternalFields) {\n      internalProperties.push(...additionalInternalFields);\n    }\n\n    if ('Prototype' in object) {\n      internalProperties.push({\n        name: '[[Prototype]]',\n        value: wrap(object.Prototype as Value),\n      });\n    }\n\n    return { result: properties, internalProperties, privateProperties };\n  }\n\n  createExceptionDetails(completion: ThrowCompletion | Value, isPromise: boolean): Protocol.Runtime.ExceptionDetails {\n    const value = completion instanceof ThrowCompletion ? completion.Value : completion;\n    const { callStack } = getHostDefinedErrorDetails(value);\n    const frames = InspectorContext.callSiteToCallFrame(callStack);\n    const exceptionId = this.#objectCounter;\n    this.#objectCounter += 1;\n    return {\n      text: isPromise ? 'Uncaught (in promise)' : 'Uncaught',\n      stackTrace: callStack ? { callFrames: frames } : undefined,\n      exception: getInspector(value).toRemoteObject(value, (val) => this.#internObject(val), this, false),\n      lineNumber: frames[0]?.lineNumber || 0,\n      columnNumber: frames[0]?.columnNumber || 0,\n      exceptionId,\n      scriptId: frames[0]?.scriptId,\n      url: frames[0]?.url,\n    };\n  }\n\n  static callSiteToCallFrame(callSite: readonly (CallSite | CallFrame)[] | undefined): Protocol.Runtime.CallFrame[] {\n    return callSite?.map((call) => call.toCallFrame()!).filter(Boolean) || [];\n  }\n\n  createEvaluationResult(completion: ValueCompletion): Protocol.Runtime.EvaluateResponse {\n    completion = EnsureCompletion(completion);\n    if (!(completion.Value instanceof Value)) {\n      throw new RangeError('Invalid completion value');\n    }\n    return {\n      exceptionDetails: completion instanceof ThrowCompletion ? this.createExceptionDetails(completion, false) : undefined,\n      result: this.toRemoteObject(completion.Value, {}),\n    };\n  }\n\n  getDebuggerCallFrame(): Protocol.Debugger.CallFrame[] {\n    const stacks = getCurrentStack(false);\n    const length = surroundingAgent.executionContextStack.length;\n    return stacks.map((stack, index): Protocol.Debugger.CallFrame => {\n      if (!stack.getScriptId()) {\n        return undefined!;\n      }\n      const scopeChain: Protocol.Debugger.Scope[] = [];\n      let env: EnvironmentRecord | null = stack.context.LexicalEnvironment;\n      while (env instanceof EnvironmentRecord) {\n        const result = getDisplayObjectFromEnvironmentRecord(env);\n        if (result) {\n          scopeChain.push({ type: result.type, object: this.toRemoteObject(result.object, {}) });\n        }\n        env = env.OuterEnv;\n      }\n      return {\n        callFrameId: String(length - index - 1),\n        functionName: stack.getFunctionName() || '<anonymous>',\n        location: {\n          scriptId: stack.getScriptId()!,\n          lineNumber: (stack.lineNumber || 1) - 1,\n          columnNumber: (stack.columnNumber || 1) - 1,\n        },\n        this: this.toRemoteObject(HostGetThisEnvironment(stack.context.LexicalEnvironment), {}),\n        url: stack.getSpecifier() || '',\n        canBeRestarted: false,\n        functionLocation: isECMAScriptFunctionObject(stack.context.Function) ? {\n          lineNumber: (stack.context.Function.ECMAScriptCode?.location.start.line || 1) - 1,\n          columnNumber: (stack.context.Function.ECMAScriptCode?.location.start.column || 1) - 1,\n          scriptId: stack.getScriptId() || '',\n        } : undefined,\n        scopeChain,\n      };\n    }).filter(Boolean);\n  }\n\n  evaluateMode: 'script' | 'module' | 'console' = 'script';\n}\n\nfunction HostGetThisEnvironment(env: EnvironmentRecord | null): Value {\n  while (env !== null) {\n    const exists = env.HasThisBinding();\n    if (exists === Value.true) {\n      const value = (env as EnvironmentRecordWithThisBinding).GetThisBinding();\n      if (value instanceof ThrowCompletion) {\n        return Value.undefined;\n      }\n      return value as Value;\n    }\n    const outer = env.OuterEnv;\n    env = outer;\n  }\n  throw new ReferenceError('No this environment found');\n}\n\nexport function getDisplayObjectFromEnvironmentRecord(record: EnvironmentRecord): undefined | { type: Protocol.Debugger.Scope['type'], object: ObjectValue } {\n  if (record instanceof DeclarativeEnvironmentRecord) {\n    const object = OrdinaryObjectCreate(Value.null, ['HostInspectorScopePreview']);\n    for (const [key, binding] of record.bindings) {\n      const value = binding.initialized ? binding.value! : OrdinaryObjectCreate(Value.null, ['HostUninitializedBindingMarkerObject']);\n      if (isArgumentExoticObject(value)) {\n        continue;\n      }\n      object.properties.set(key, Descriptor({\n        Enumerable: isArgumentExoticObject(value) ? Value.false : Value.true,\n        Value: value,\n        Writable: binding.mutable ? Value.true : Value.false,\n      }));\n    }\n    let type: Protocol.Debugger.Scope['type'] = 'block';\n    if (record instanceof FunctionEnvironmentRecord) {\n      type = 'local';\n    } else if (record instanceof ModuleEnvironmentRecord) {\n      type = 'module';\n    }\n    if (type !== 'local' && !object.properties.size) {\n      return undefined;\n    }\n    return { type, object };\n  } else if (record instanceof ObjectEnvironmentRecord) {\n    return { type: record.IsWithEnvironment === Value.true ? 'with' : 'global', object: record.BindingObject };\n  } else if (record instanceof GlobalEnvironmentRecord) {\n    return { type: 'global', object: record.GlobalThisValue };\n  }\n  throw new TypeError('Unknown environment record');\n}\n","import type { Protocol } from 'devtools-protocol';\nimport { DynamicParsedCodeRecord, SourceTextModuleRecord, type ScriptRecord } from '#self';\n\nexport function getParsedEvent(source: ScriptRecord | SourceTextModuleRecord | DynamicParsedCodeRecord, id: string, executionContextId: number): Protocol.Debugger.ScriptParsedEvent {\n  const lines = source.ECMAScriptCode.sourceText.split('\\n');\n  return {\n    isModule: source instanceof SourceTextModuleRecord,\n    scriptId: id,\n    url: source.HostDefined?.specifier || `vm:///${id}`,\n    startLine: 0,\n    startColumn: 0,\n    endLine: lines.length,\n    endColumn: lines.pop()!.length,\n    executionContextId,\n    hash: '',\n    buildId: '',\n  };\n}\n","import type { Protocol } from 'devtools-protocol';\nimport type {\n  DebuggerContext,\n  DebuggerNamespace, HeapProfilerNamespace, ProfilerNamespace, RuntimeNamespace,\n  TargetNamespace,\n} from './types.mts';\nimport { getParsedEvent } from './internal-utils.mts';\nimport { InspectorContext } from './context.mts';\nimport {\n  Call, NormalCompletion, ObjectValue, ParseScript, runJobQueue, ScriptRecord, surroundingAgent, ThrowCompletion, skipDebugger, Value, type FunctionObject,\n  ParseModule,\n  SourceTextModuleRecord,\n  ValueOfNormalCompletion,\n  JSStringValue,\n  evalQ,\n  Assert,\n  kInternal,\n  captureStack,\n  isEvaluator,\n  getBreakpointCandidateNodes,\n  parseNodeToBreakpointLocation,\n  performDevtoolsEval,\n  isFunctionObject,\n  ModuleRecord,\n  GetModuleNamespace,\n} from '#self';\n\nexport const Debugger: DebuggerNamespace = {\n  enable(_req, context) {\n    context.onDebuggerConnect();\n    return { debuggerId: 'debugger.0' };\n  },\n  disable(_req, context) {\n    context.onDebuggerDisconnect();\n  },\n  getScriptSource({ scriptId }) {\n    const source = surroundingAgent.parsedSources.get(scriptId);\n    if (!source) {\n      throw new Error('Not found');\n    }\n    return { scriptSource: source.ECMAScriptCode.sourceText };\n  },\n  setAsyncCallStackDepth() { },\n  setBlackboxPatterns() { },\n  setBlackboxExecutionContexts() { },\n\n  // #region breakpoints\n  getPossibleBreakpoints({ start, end, restrictToFunction }) {\n    return {\n      locations: [...getBreakpointCandidateNodes(start, end, restrictToFunction)]\n        .map((node) => parseNodeToBreakpointLocation(start.scriptId, node)),\n    };\n  },\n  removeBreakpoint({ breakpointId }) {\n    surroundingAgent?.removeBreakpoint(breakpointId);\n  },\n  setBreakpoint(req) {\n    return surroundingAgent.addBreakpointByLocation(req);\n  },\n  setBreakpointByUrl(req) {\n    return surroundingAgent.addBreakpointByUrl(req);\n  },\n  setBreakpointOnFunctionCall(req, context) {\n    const f = context.context.getObject(req.objectId);\n    if (!f || !isFunctionObject(f)) return { breakpointId: null! };\n    return surroundingAgent.addBreakpointOnFunctionCall(f, req.condition);\n  },\n  setInstrumentationBreakpoint(req) {\n    return surroundingAgent.addInstrumentationBreakpoint(req);\n  },\n  setBreakpointsActive({ active }) {\n    surroundingAgent.breakpointsEnabled = active;\n  },\n  setPauseOnExceptions({ state }) {\n    if (surroundingAgent) {\n      surroundingAgent.pauseOnExceptions = state === 'none' ? undefined : state;\n    }\n  },\n  // #endregion\n\n  stepInto(_, { sendEvent }) {\n    sendEvent['Debugger.resumed']();\n    surroundingAgent.resumeEvaluate({ pauseAt: 'step-in' });\n  },\n  resume(_, { sendEvent }) {\n    sendEvent['Debugger.resumed']();\n    surroundingAgent.resumeEvaluate();\n  },\n  stepOver(_req, { sendEvent }) {\n    sendEvent['Debugger.resumed']();\n    surroundingAgent.resumeEvaluate({ pauseAt: 'step-over' });\n  },\n  stepOut(_req, { sendEvent }) {\n    sendEvent['Debugger.resumed']();\n    surroundingAgent.resumeEvaluate({ pauseAt: 'step-out' });\n  },\n  evaluateOnCallFrame(req, context) {\n    return evaluate({\n      ...req,\n      uniqueContextId: context.context.getRealm(undefined)!.descriptor.uniqueId,\n      evalMode: context.context.evaluateMode,\n    }, context);\n  },\n  engine262_setEvaluateMode({ mode }, { context }) {\n    if (mode === 'module' || mode === 'script' || mode === 'console') {\n      context.evaluateMode = mode;\n    }\n  },\n  engine262_setFeatures() {\n    throw new Error('Method should not be implemented here.');\n  },\n};\nexport const Profiler: ProfilerNamespace = {\n  enable() { },\n};\nexport const Runtime: RuntimeNamespace = {\n  discardConsoleEntries() { },\n  enable() {},\n  compileScript(options, { context, sendEvent }) {\n    let parsed!: ScriptRecord | SourceTextModuleRecord | ObjectValue[];\n    let realm = context.getRealm(options.executionContextId);\n    if (!realm && !options.persistScript) {\n      realm = context.getAnyRealm();\n    }\n    if (!realm) {\n      return unsupportedError;\n    }\n    realm.realm.scope(() => {\n      if (context.evaluateMode === 'module') {\n        parsed = ParseModule(options.expression, realm.realm, { specifier: options.sourceURL, doNotTrackScriptId: !options.persistScript });\n      } else {\n        parsed = ParseScript(options.expression, realm.realm, { specifier: options.sourceURL, doNotTrackScriptId: !options.persistScript, [kInternal]: { allowAllPrivateNames: true, allowAwait: true } });\n      }\n    });\n    if (!parsed) {\n      throw new Error('No parsed result');\n    }\n    if (Array.isArray(parsed)) {\n      const e = context.createExceptionDetails(ThrowCompletion(parsed[0]), false);\n      // Note: it has to be this message to trigger devtools' line wrap.\n      e.exception!.description = 'SyntaxError: Unexpected end of input';\n      return { exceptionDetails: e };\n    }\n    if (options.persistScript) {\n      if (realm?.descriptor.id === undefined) {\n        throw new Error('No realm id found');\n      }\n      const event = getParsedEvent(parsed, parsed.HostDefined!.scriptId!, realm.descriptor.id);\n      sendEvent['Debugger.scriptParsed'](event);\n      return { scriptId: event.scriptId };\n    }\n    return {};\n  },\n  callFunctionOn(options, { context }): Protocol.Runtime.CallFunctionOnResponse {\n    const realmDesc = context.getRealm(options.uniqueContextId || options.executionContextId) || context.getAnyRealm();\n    if (!realmDesc) {\n      throw new Error('No realm found');\n    }\n    const { Value: F } = realmDesc.realm.evaluateScriptSkipDebugger(`(${options.functionDeclaration})`, { doNotTrackScriptId: true }) as NormalCompletion<FunctionObject>;\n    const thisValue = options.objectId\n      ? context.getObject(options.objectId)!\n      : Value.undefined;\n    const args = options.arguments?.map((a) => {\n      // TODO: revisit\n      if ('value' in a) {\n        return Value(a.value);\n      }\n      if (a.objectId) {\n        return context.getObject(a.objectId)!;\n      }\n      if ('unserializableValue' in a) {\n        throw new RangeError();\n      }\n      return Value.undefined;\n    });\n    return realmDesc.realm.scope((): Protocol.Runtime.CallFunctionOnResponse => {\n      const completion = evalQ((Q, X): Protocol.Runtime.CallFunctionOnResponse => {\n        const r = Q(skipDebugger(Call(F, thisValue, args || [])));\n        if (options.returnByValue) {\n          const value = X(Call(realmDesc.realm.Intrinsics['%JSON.stringify%'], Value.undefined, [r]));\n          if (value instanceof JSStringValue) {\n            const valueRealized = JSON.parse(value.stringValue());\n            return { result: { type: typeof value, value: valueRealized } };\n          }\n        }\n        return context.createEvaluationResult(r);\n      });\n      if (completion instanceof ThrowCompletion) {\n        return { result: { type: 'undefined' }, exceptionDetails: context.createExceptionDetails(completion, false) };\n      }\n      return completion.Value;\n    });\n  },\n  evaluate(options, context) {\n    return evaluate({\n      ...options,\n      evalMode: context.context.evaluateMode,\n      uniqueContextId: options.uniqueContextId!,\n    }, context);\n  },\n  getExceptionDetails(req, { context }) {\n    const object = context.getObject(req.errorObjectId)!;\n    if (object instanceof ObjectValue) {\n      return {\n        exceptionDetails: context.createExceptionDetails(ThrowCompletion(object), false),\n      };\n    }\n    return {\n      exceptionDetails: {\n        text: 'unsupported', lineNumber: 0, columnNumber: 0, exceptionId: 0,\n      },\n    };\n  },\n  getHeapUsage() {\n    return {\n      usedSize: 0, totalSize: 0, backingStorageSize: 0, embedderHeapUsedSize: 0,\n    };\n  },\n  getIsolateId() {\n    return { id: 'isolate.0' };\n  },\n  getProperties(options, { context }) {\n    return context.getProperties(options);\n  },\n  globalLexicalScopeNames({ executionContextId }, { context }) {\n    const global = context.getRealm(executionContextId)?.realm.GlobalObject;\n    if (!global) {\n      return { names: [] };\n    }\n    const keys = skipDebugger(global.OwnPropertyKeys());\n    if (keys instanceof ThrowCompletion) {\n      return { names: [] };\n    }\n    return { names: ValueOfNormalCompletion(keys).map((k) => (k instanceof JSStringValue ? k.stringValue() : null!)).filter(Boolean) };\n  },\n  releaseObject(req, { context }) {\n    context.releaseObject(req.objectId);\n  },\n  releaseObjectGroup({ objectGroup }, { context }) {\n    context.releaseObjectGroup(objectGroup);\n  },\n  runIfWaitingForDebugger() { },\n};\nexport const HeapProfiler: HeapProfilerNamespace = {\n  enable() { },\n  collectGarbage() { },\n};\n\nexport const Target: TargetNamespace = {\n  setDiscoverTargets() { },\n  // @ts-expect-error no doc\n  setRemoteLocations() { },\n};\n\nconst unsupportedError: Protocol.Runtime.EvaluateResponse = {\n  result: { type: 'undefined' },\n  exceptionDetails: {\n    text: 'unsupported', lineNumber: 0, columnNumber: 0, exceptionId: 0,\n  },\n};\nfunction evaluate(options: {\n  uniqueContextId: string,\n  expression: string,\n  evalMode: InspectorContext['evaluateMode'],\n  throwOnSideEffect?: boolean,\n  awaitPromise?: boolean,\n  callFrameId?: string,\n}, inspectorContext: DebuggerContext): Protocol.Runtime.EvaluateResponse | Promise<Protocol.Runtime.EvaluateResponse> {\n  const { context } = inspectorContext;\n  const isPreview = options.throwOnSideEffect;\n  if (options.awaitPromise) {\n    return unsupportedError;\n  }\n  const realm = context.getRealm(options.uniqueContextId);\n  if (!realm) {\n    return unsupportedError;\n  }\n\n  const isCallOnFrame = typeof options.callFrameId === 'string';\n  let callOnFramePoppedLevel = 0;\n  const oldExecutionStack = [...surroundingAgent.executionContextStack];\n  if (isCallOnFrame) {\n    const frame = surroundingAgent.executionContextStack[options.callFrameId as `${number}`];\n    if (!frame) {\n      inspectorContext.sendEvent['Runtime.exceptionThrown']({\n        timestamp: Date.now(),\n        exceptionDetails: {\n          columnNumber: 0,\n          exceptionId: 0,\n          lineNumber: 0,\n          text: `Execution context not found for callFrameId ${options.callFrameId}`,\n        },\n      });\n      return unsupportedError;\n    }\n    for (const currentFrame of [...surroundingAgent.executionContextStack].reverse()) {\n      if (currentFrame === frame) {\n        break;\n      }\n      callOnFramePoppedLevel += 1;\n      surroundingAgent.executionContextStack.pop(currentFrame);\n    }\n  }\n  const promise = new Promise<Protocol.Runtime.EvaluateResponse>((resolve) => {\n    let toBeEvaluated;\n    if (isPreview || options.evalMode === 'console' || isCallOnFrame) {\n      toBeEvaluated = performDevtoolsEval(options.expression, realm.realm, false, !!(isPreview || isCallOnFrame));\n    } else {\n      let parsed!: ScriptRecord | SourceTextModuleRecord | ObjectValue[];\n      const realm = context.getRealm(options.uniqueContextId);\n      realm?.realm.scope(() => {\n        if (options.evalMode === 'module') {\n          parsed = ParseModule(options.expression, realm.realm);\n        } else {\n          parsed = ParseScript(options.expression, realm.realm);\n        }\n      });\n      if (Array.isArray(parsed)) {\n        const e = context.createExceptionDetails(ThrowCompletion(parsed[0]), false);\n        resolve({ exceptionDetails: e, result: { type: 'undefined' } });\n        return;\n      }\n      toBeEvaluated = parsed;\n    }\n\n    const noDebuggerEvaluate = () => {\n      if (!isEvaluator(toBeEvaluated)) {\n        throw new Assert.Error('Unexpected');\n      }\n      resolve(context.createEvaluationResult(skipDebugger(toBeEvaluated)));\n    };\n    if (isPreview) {\n      surroundingAgent.debugger_scopePreview(noDebuggerEvaluate);\n      return;\n    }\n    if (isCallOnFrame) {\n      noDebuggerEvaluate();\n      return;\n    }\n\n    if (toBeEvaluated instanceof ModuleRecord) {\n      realm.realm.evaluateModule(toBeEvaluated, undefined, (completion) => {\n        if (completion instanceof ThrowCompletion) {\n          resolve(context.createEvaluationResult(completion));\n        } else {\n          resolve(context.createEvaluationResult(NormalCompletion(GetModuleNamespace(toBeEvaluated, 'evaluation'))));\n        }\n        runJobQueue();\n      });\n    } else if (toBeEvaluated instanceof ScriptRecord) {\n      let completion;\n      realm.realm.evaluateScript(toBeEvaluated, {}, (c) => {\n        completion = c;\n        resolve(context.createEvaluationResult(completion));\n      });\n      if (!completion) surroundingAgent.resumeEvaluate();\n      runJobQueue();\n    } else {\n      let completion;\n      surroundingAgent.evaluate(toBeEvaluated, (c) => {\n        completion = c;\n        resolve(context.createEvaluationResult(c));\n      });\n      if (!completion) surroundingAgent.resumeEvaluate();\n      runJobQueue();\n    }\n  });\n  promise.then(() => {\n    if (callOnFramePoppedLevel) {\n      Assert(oldExecutionStack.length - callOnFramePoppedLevel === surroundingAgent.executionContextStack.length);\n      for (const [newIndex, newStack] of surroundingAgent.executionContextStack.entries()) {\n        Assert(newStack === oldExecutionStack[newIndex]);\n      }\n      surroundingAgent.executionContextStack.length = 0;\n      for (const stack of oldExecutionStack) {\n        surroundingAgent.executionContextStack.push(stack);\n      }\n    }\n  }, (err): Protocol.Runtime.EvaluateResponse => {\n    const expr = surroundingAgent.runningExecutionContext?.callSite.lastNode?.sourceText;\n    const frame = InspectorContext.callSiteToCallFrame(captureStack().stack);\n    // @ts-expect-error\n    // eslint-disable-next-line no-console, @typescript-eslint/no-explicit-any\n    declare const console: any;\n    if (typeof console === 'object') console.error(err);\n    inspectorContext.sendEvent['Runtime.exceptionThrown']({\n      timestamp: Date.now(),\n      exceptionDetails: {\n        stackTrace: frame.length ? { callFrames: frame } : undefined,\n        text: `engine262 error when evaluating the following node:\\n\\n    ${expr}\\n\\n${err.constructor.name}: ${err.message}\\n${err.stack.slice(err.stack.indexOf(err.message) + err.message.length).split('\\n').map((line: string) => `  ${line}`).join('\\n')}\\n\\nFrom now on, the engine262 VM state is broken, please press the reload button.`,\n        columnNumber: frame[0]?.columnNumber,\n        lineNumber: frame[0]?.lineNumber,\n        scriptId: frame[0]?.scriptId,\n        url: frame[0]?.url,\n        exceptionId: 0,\n      },\n    });\n    return {\n      result: { type: 'undefined' },\n    };\n  });\n  return promise;\n}\n","import type Protocol from 'devtools-protocol';\nimport type { Inspector } from './index.mts';\nimport {\n  CreateBuiltinFunction, CreateDataProperty, DefinePropertyOrThrow, Descriptor, OrdinaryObjectCreate, surroundingAgent, ThrowCompletion, skipDebugger, Value, type Arguments, type ManagedRealm,\n  type PlainEvaluator,\n  type PlainCompletion,\n  isEvaluator,\n} from '#self';\n\nconst consoleMethods = [\n  'log',\n  'debug',\n  'info',\n  'error',\n  'warning',\n  'dir',\n  'dirxml',\n  'table',\n  'trace',\n  'clear',\n  'startGroup',\n  'startGroupCollapsed',\n  'endGroup',\n  'assert',\n  'profile',\n  'profileEnd',\n  'count',\n  'timeEnd',\n] as const;\ntype ConsoleMethod = typeof consoleMethods[number];\nexport function createConsole(\n  realm: ManagedRealm,\n  defaultBehaviour: Partial<Record<ConsoleMethod, (args: Arguments) => void | PlainCompletion<void> | PlainEvaluator<void>>> & { default?: (method: ConsoleMethod, args: Arguments) => void | PlainCompletion<void> | PlainEvaluator<void> },\n) {\n  realm.scope(() => {\n    const console = OrdinaryObjectCreate(realm.Intrinsics['%Object.prototype%']);\n    skipDebugger(DefinePropertyOrThrow(\n      realm.GlobalObject,\n      Value('console'),\n      Descriptor({\n        Configurable: Value.true,\n        Enumerable: Value.false,\n        Writable: Value.true,\n        Value: console,\n      }),\n    ));\n    consoleMethods.forEach((method) => {\n      const f = CreateBuiltinFunction(\n        function* Console(args): PlainEvaluator<Value> {\n          if (surroundingAgent.debugger_isPreviewing) {\n            return Value.undefined;\n          }\n\n          let completion;\n          if (defaultBehaviour[method]) {\n            completion = defaultBehaviour[method](args);\n          } else if (defaultBehaviour.default) {\n            completion = defaultBehaviour.default(method, args);\n          }\n\n          if (completion) {\n            if (isEvaluator(completion)) {\n              completion = yield* completion;\n            }\n            // Do not use Q(host) here. A host may return something invalid like ReturnCompletion.\n            if (completion instanceof ThrowCompletion) {\n              return completion;\n            }\n          }\n          if (realm.HostDefined.attachingInspector) {\n            (realm.HostDefined.attachingInspector as Inspector).console(realm, method as Protocol.Protocol.Runtime.ConsoleAPICalledEventType, args);\n          }\n          return Value.undefined;\n        },\n        1,\n        Value(method),\n        [],\n      );\n      skipDebugger(CreateDataProperty(console, Value(method), f));\n    });\n  });\n}\n","import type { Protocol } from 'devtools-protocol';\nimport { InspectorContext } from './context.mts';\nimport * as impl from './methods.mts';\nimport type { DebuggerContext, DebuggerPreference, DevtoolEvents } from './types.mts';\nimport { getParsedEvent } from './internal-utils.mts';\nimport {\n  Agent, HostPromiseRejectionTracker, ManagedRealm, Realm, Value, type Arguments,\n} from '#self';\n\nconst ignoreNamespaces = ['Network'];\nconst ignoreMethods: string[] = [];\n\nexport type { DebuggerPreference } from './types.mts';\nexport { createConsole } from './utils.mts';\n\ninterface AgentRecord {\n  readonly agent: Agent;\n  onDetach(): void;\n}\nexport abstract class Inspector {\n  #context = new InspectorContext(this);\n\n  #agents: AgentRecord[] = [];\n\n  #unhandledExceptionIds = new WeakMap<Value, number>();\n\n  attachAgent(agent: Agent, priorRealms: ManagedRealm[]) {\n    const oldOnDebugger = agent.hostDefinedOptions.onDebugger;\n    agent.hostDefinedOptions.onDebugger = (reason) => {\n      oldOnDebugger?.(reason);\n      const pausedEvent: Protocol.Debugger.PausedEvent = {\n        reason: reason?.reason ?? 'debugCommand',\n        callFrames: this.#context.getDebuggerCallFrame(),\n      };\n      if (reason?.hitBreakpoints) {\n        pausedEvent.hitBreakpoints = [...reason.hitBreakpoints];\n      }\n      this.sendEvent['Debugger.paused'](pausedEvent);\n    };\n\n    agent.hostDefinedOptions.hostHooks ??= {};\n    agent.hostDefinedOptions.hostHooks.HostPromiseRejectionTrackers ??= new Set();\n    const tracker: HostPromiseRejectionTracker = (promise, operation) => {\n      if (operation === 'reject') {\n        const detail = this.#context.createExceptionDetails(promise, true);\n        this.#unhandledExceptionIds.set(promise, detail.exceptionId);\n        this.sendEvent['Runtime.exceptionThrown']({\n          timestamp: Date.now(),\n          exceptionDetails: detail,\n        });\n      } else {\n        const id = this.#unhandledExceptionIds.get(promise);\n        if (id) {\n          this.sendEvent['Runtime.exceptionRevoked']({\n            reason: 'Handler added to rejected promise',\n            exceptionId: id,\n          });\n        }\n      }\n    };\n    agent.hostDefinedOptions.hostHooks.HostPromiseRejectionTrackers.add(tracker);\n\n    const oldOnRealmCreated = agent.hostDefinedOptions.onRealmCreated;\n    agent.hostDefinedOptions.onRealmCreated = (realm) => {\n      oldOnRealmCreated?.(realm);\n      this.#context.attachRealm(realm, agent);\n    };\n\n    const oldOnScriptParsed = agent.hostDefinedOptions.onScriptParsed;\n    agent.hostDefinedOptions.onScriptParsed = (script, id) => {\n      oldOnScriptParsed?.(script, id);\n      const realmId = this.#context.getRealm(script.Realm as ManagedRealm)?.descriptor.id;\n      if (realmId === undefined) {\n        return;\n      }\n      this.sendEvent['Debugger.scriptParsed'](getParsedEvent(script, id, realmId));\n    };\n    this.#agents.push({\n      agent,\n      onDetach: () => {\n        agent.hostDefinedOptions.onDebugger = oldOnDebugger;\n        agent.hostDefinedOptions.onRealmCreated = oldOnRealmCreated;\n        agent.hostDefinedOptions.onScriptParsed = oldOnScriptParsed;\n        agent.hostDefinedOptions.hostHooks!.HostPromiseRejectionTrackers!.delete(tracker);\n        this.#agents = this.#agents.filter((x) => x.agent !== agent);\n      },\n    });\n    priorRealms.forEach((realm) => {\n      this.#context.attachRealm(realm, agent);\n    });\n  }\n\n  detachAgent(agent: Agent) {\n    const record = this.#agents.find((x) => x.agent === agent);\n    record?.onDetach();\n    this.#context.detachAgent(agent);\n  }\n\n  protected abstract send(data: object): void;\n\n  readonly preference: DebuggerPreference = { previewDebug: false };\n\n  protected onMessage(id: unknown, methodArg: string, params: unknown): void {\n    if (ignoreMethods.includes(methodArg)) {\n      return;\n    }\n    const [namespace, method] = methodArg.split('.');\n    if (ignoreNamespaces.includes(namespace)) {\n      return;\n    }\n    if (!(namespace in impl)) {\n      this.sendEvent['Runtime.consoleAPICalled']({\n        timestamp: Date.now(),\n        type: 'warning',\n        executionContextId: 0,\n        args: [{\n          type: 'string',\n          value: `engine262 internal error: Namespace not implemented: ${namespace}.*`,\n        }],\n      });\n      return;\n    }\n    const ns = (impl as Record<string, object>)[namespace];\n    if (!(method in ns)) {\n      this.sendEvent['Runtime.consoleAPICalled']({\n        timestamp: Date.now(),\n        type: 'warning',\n        executionContextId: 0,\n        args: [{\n          type: 'string',\n          value: `engine262 internal error: Method not implemented: ${namespace}.${method}`,\n        }],\n      });\n      return;\n    }\n\n    const f = (ns as Record<string, (args: unknown, context: DebuggerContext) => unknown>)[method];\n    new Promise((resolve) => {\n      resolve(f(params, this.#debugContext));\n    }).then((result = {}) => {\n      this.send({ id, result });\n    });\n  }\n\n  sendEvent: DevtoolEvents = Object.create(new Proxy({}, {\n    get: (_, key: string) => {\n      const f = (params: Record<string, unknown>) => {\n        if (this.#debuggerAttached) {\n          this.send({ method: key, params });\n        }\n      };\n      Object.defineProperty(this.sendEvent, key, { value: f });\n      return f;\n    },\n  }));\n\n  console(realm: Realm, type: Protocol.Runtime.ConsoleAPICalledEventType, args: Arguments) {\n    const context = this.#context.getRealm(realm as ManagedRealm);\n    if (!context) {\n      return;\n    }\n    this.sendEvent['Runtime.consoleAPICalled']({\n      type,\n      args: args.map((x) => this.#context.toRemoteObject(x, { })),\n      executionContextId: context.descriptor.id,\n      timestamp: Date.now(),\n    });\n  }\n\n  #debuggerAttached = false;\n\n  onDebuggerDisconnect() {\n    this.#debuggerAttached = false;\n  }\n\n  #onDebuggerConnected() {\n    this.#context.realms.forEach((realm) => {\n      if (realm) {\n        this.sendEvent['Runtime.executionContextCreated']({\n          context: realm.descriptor,\n        });\n      }\n    });\n    this.#agents.forEach(({ agent }) => {\n      agent.parsedSources.forEach((script, id) => {\n        const realmId = this.#context.getRealm(script.Realm as ManagedRealm)?.descriptor.id;\n        if (realmId === undefined) {\n          return;\n        }\n        this.sendEvent['Debugger.scriptParsed'](getParsedEvent(script, id, realmId));\n      });\n    });\n  }\n\n  #debugContext: DebuggerContext = {\n    sendEvent: this.sendEvent,\n    preference: this.preference,\n    context: this.#context,\n    onDebuggerConnect: () => {\n      if (!this.#debuggerAttached) {\n        this.#debuggerAttached = true;\n        this.#onDebuggerConnected();\n      }\n    },\n    onDebuggerDisconnect: () => {\n      this.#debuggerAttached = false;\n    },\n  };\n}\n"],"names":["Null","toRemoteObject","type","subtype","value","toObjectPreview","properties","overflow","toPropertyPreview","name","toDescription","Undefined","Boolean","booleanValue","toString","description","Symbol","getObjectId","SymbolDescriptiveString","stringValue","objectId","String","Number","v","isNeg0","Object","is","globalThis","isFinite","unserializableValue","context","r","BigIntValue","nativeEvalInAnyRealm","closure","realm","surroundingAgent","runningExecutionContext","Realm","getAnyRealm","undefined","scope","result","isEvaluator","skipDebugger","unwrapFunction","isWrappedFunctionExoticObject","WrappedTargetFunction","isBoundFunctionObject","BoundTargetFunction","toLocation","location","scriptId","columnNumber","start","column","lineNumber","line","Function","IntrinsicsFunctionToString","isECMAScriptFunctionObject","ECMAScriptCode","className","toInternalProperties","some","p","push","generatePreview","BoundThis","unwrapCompletion","CreateArrayFromList","BoundArguments","env","Environment","EnvironmentRecord","getDisplayObjectFromEnvironmentRecord","object","OuterEnv","scopeObject","scopeDesc","length","isBuiltinFunctionObject","HostLocation","nativeFunction","section","ObjectInspector","toCustomPreview","toEntries","additionalProperties","internalProperties","exoticProperties","constructor","additionalOptions","entries","customPreview","preview","map","val","Value","getInspector","array","ObjectValue","DefineOwnProperty","ArrayExoticObjectInternalMethods","set","Descriptor","F","index","item","Key","e","propertiesToPropertyPreview","DefaultObject","ctor","ConstructedBy","propertyNameToString","HostInitialName","InternalInspectorEntry","key","get","JSStringValue","PrivateName","Description","propertyToPropertyPreview","desc","Get","Set","extra","max","isTypedArrayObject","ViewedArrayBuffer","ArrayBufferData","DataBlock","record","MakeTypedArrayWithBufferWitnessRecord","TypedArrayLength","index_value","TypedArrayGetElement","UndefinedValue","byteLength","ArrayLength","ByteOffset","PrivateElements","ShadowRealm","GlobalObject","Module","module","debugger_scopePreview","Exports","completion","EnsureCompletion","NormalCompletion","writable","configurable","enumerable","isOwn","evaluate","CreateBuiltinFunction","RegExp","OriginalSource","OriginalFlags","Proxy","IsCallable","ProxyTarget","Promise","PromiseState","PromiseResult","Array","indexProp","otherProp","isIntegerIndex","concat","slice","find","NumberValue","TypeError","R","globalId","WeakMap","id","ArrayBuffer","ArrayBufferByteLength","has","blockId","DataView","ByteLength","TypedArray","TypedArrayName","Date","DateValue","DateProto_toISOString","thisValue","NewTarget","ValueOfNormalCompletion","TemporalInstant","TemporalInstantToString","TemporalDuration","TemporalDurationToString","TemporalPlainDate","TemporalDateToString","TemporalPlainDateTime","FormatISODateTime","ISODateTime","Calendar","TemporalPlainMonthDay","TemporalMonthDayToString","TemporalPlainTime","TimeRecordToString","Time","TemporalPlainYearMonth","TemporalYearMonthToString","TemporalZonedDateTime","TemporalZonedDateTimeToString","Map","MapData","filter","x","SetData","WeakMapData","WeakSet","WeakSetData","Error","text","includes","error","unformattedMessage","getHostDefinedErrorDetails","message","part","stack","stackGetterValue","stackC","stackMaybeModified","constructorName","nameC","header","JSON","stringify","null","true","false","SymbolValue","isProxyExoticObject","isArrayExoticObject","isRegExpObject","isDateObject","isMapObject","isSetObject","isWeakMapObject","isWeakSetObject","isErrorObject","isPromiseObject","isArrayBufferObject","isDataViewObject","isModuleNamespaceObject","isShadowRealmObject","isTemporalInstantObject","isTemporalDurationObject","isTemporalPlainDateObject","isTemporalPlainDateTimeObject","isTemporalPlainMonthDayObject","isTemporalPlainTimeObject","isTemporalPlainYearMonthObject","isTemporalZonedDateTimeObject","internalSlotsList","InspectorContext","io","realms","attachRealm","agent","descriptor","origin","HostDefined","specifier","uniqueId","detach","attachingInspector","oldInspector","attachingInspectorReportError","ManagedRealm","console","sendEvent","detachAgent","detachRealm","findIndex","c","executionContextId","executionContextUniqueId","getRealm","currentRealmRecord","#internObject","group","releaseObject","delete","releaseObjectGroup","startsWith","getObject","options","objectGroup","getProperties","accessorPropertiesOnly","nonIndexedPropertiesOnly","ownProperties","wrap","privateProperties","forEach","keys","IsAccessorDescriptor","Writable","Configurable","Enumerable","symbol","Prototype","additionalInternalFields","createExceptionDetails","isPromise","ThrowCompletion","callStack","frames","callSiteToCallFrame","exceptionId","stackTrace","callFrames","exception","url","callSite","call","toCallFrame","createEvaluationResult","RangeError","exceptionDetails","getDebuggerCallFrame","stacks","getCurrentStack","executionContextStack","getScriptId","scopeChain","LexicalEnvironment","callFrameId","functionName","getFunctionName","this","HostGetThisEnvironment","getSpecifier","canBeRestarted","functionLocation","evaluateMode","exists","HasThisBinding","GetThisBinding","outer","ReferenceError","DeclarativeEnvironmentRecord","OrdinaryObjectCreate","binding","bindings","initialized","isArgumentExoticObject","mutable","FunctionEnvironmentRecord","ModuleEnvironmentRecord","size","ObjectEnvironmentRecord","IsWithEnvironment","BindingObject","GlobalEnvironmentRecord","GlobalThisValue","getParsedEvent","source","lines","sourceText","split","isModule","SourceTextModuleRecord","startLine","startColumn","endLine","endColumn","pop","hash","buildId","Debugger","enable","_req","onDebuggerConnect","debuggerId","disable","onDebuggerDisconnect","getScriptSource","parsedSources","scriptSource","setAsyncCallStackDepth","setBlackboxPatterns","setBlackboxExecutionContexts","getPossibleBreakpoints","end","restrictToFunction","locations","getBreakpointCandidateNodes","node","parseNodeToBreakpointLocation","removeBreakpoint","breakpointId","setBreakpoint","req","addBreakpointByLocation","setBreakpointByUrl","addBreakpointByUrl","setBreakpointOnFunctionCall","f","isFunctionObject","addBreakpointOnFunctionCall","condition","setInstrumentationBreakpoint","addInstrumentationBreakpoint","setBreakpointsActive","active","breakpointsEnabled","setPauseOnExceptions","state","pauseOnExceptions","stepInto","_","resumeEvaluate","pauseAt","resume","stepOver","stepOut","evaluateOnCallFrame","uniqueContextId","evalMode","engine262_setEvaluateMode","mode","engine262_setFeatures","Profiler","Runtime","discardConsoleEntries","compileScript","parsed","persistScript","unsupportedError","ParseModule","expression","sourceURL","doNotTrackScriptId","ParseScript","kInternal","allowAllPrivateNames","allowAwait","isArray","event","callFunctionOn","realmDesc","evaluateScriptSkipDebugger","functionDeclaration","args","arguments","a","evalQ","Q","X","Call","returnByValue","Intrinsics","valueRealized","parse","getExceptionDetails","errorObjectId","getHeapUsage","usedSize","totalSize","backingStorageSize","embedderHeapUsedSize","getIsolateId","globalLexicalScopeNames","global","names","OwnPropertyKeys","k","runIfWaitingForDebugger","HeapProfiler","collectGarbage","Target","setDiscoverTargets","setRemoteLocations","inspectorContext","isPreview","throwOnSideEffect","awaitPromise","isCallOnFrame","callOnFramePoppedLevel","oldExecutionStack","frame","timestamp","now","currentFrame","reverse","promise","resolve","toBeEvaluated","performDevtoolsEval","noDebuggerEvaluate","Assert","ModuleRecord","evaluateModule","GetModuleNamespace","runJobQueue","ScriptRecord","evaluateScript","then","newIndex","newStack","err","expr","lastNode","captureStack","indexOf","join","consoleMethods","createConsole","defaultBehaviour","DefinePropertyOrThrow","method","Console","debugger_isPreviewing","default","CreateDataProperty","ignoreNamespaces","ignoreMethods","Inspector","attachAgent","priorRealms","oldOnDebugger","hostDefinedOptions","onDebugger","reason","pausedEvent","hitBreakpoints","hostHooks","HostPromiseRejectionTrackers","tracker","operation","detail","add","oldOnRealmCreated","onRealmCreated","oldOnScriptParsed","onScriptParsed","script","realmId","onDetach","preference","previewDebug","onMessage","methodArg","params","namespace","impl","ns","send","create","defineProperty","#onDebuggerConnected"],"mappings":"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"}