// Copyright 2016 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /** @typedef {{ type: string, object: !Object, name: (string|undefined), startLocation: (!RawLocation|undefined), endLocation: (!RawLocation|undefined) }} */ var Scope; /** @typedef {{ scriptId: string, lineNumber: number, columnNumber: number }} */ var RawLocation; /** @typedef {{ id: number, name: string, sourceURL: (string|undefined), sourceMappingURL: (string|undefined), source: string, startLine: number, endLine: number, startColumn: number, endColumn: number, executionContextId: number, executionContextAuxData: string }} */ var FormattedScript; /** @typedef {{ functionName: string, location: !RawLocation, this: !Object, scopeChain: !Array<!Scope>, functionLocation: (RawLocation|undefined), returnValue: (*|undefined) }} */ var JavaScriptCallFrameDetails; /** @typedef {{ sourceID: function():(number), line: function():number, column: function():number, thisObject: !Object, evaluate: function(string):*, restart: function():undefined, setVariableValue: function(number, string, *):undefined, isAtReturn: boolean, details: function():!JavaScriptCallFrameDetails }} */ var JavaScriptCallFrame; /** * @const */ var Debug = {}; Debug.clearAllBreakPoints = function() {} /** @return {!Array<!Script>} */ Debug.scripts = function() {} /** * @param {number} scriptId * @param {number=} line * @param {number=} column * @param {string=} condition * @param {string=} groupId * @param {Debug.BreakPositionAlignment=} positionAlignment */ Debug.setScriptBreakPointById = function(scriptId, line, column, condition, groupId, positionAlignment) {} /** * @param {number} breakId * @return {!Array<!SourceLocation>} */ Debug.findBreakPointActualLocations = function(breakId) {} /** * @param {number} breakId * @param {boolean} remove * @return {!BreakPoint|undefined} */ Debug.findBreakPoint = function(breakId, remove) {} /** @return {!DebuggerFlags} */ Debug.debuggerFlags = function() {} /** @enum */ const BreakPositionAlignment = { Statement: 0, BreakPosition: 1 }; Debug.BreakPositionAlignment = BreakPositionAlignment; /** @enum */ Debug.StepAction = { StepOut: 0, StepNext: 1, StepIn: 2, StepFrame: 3 }; /** @enum */ const ScriptCompilationType = { Host: 0, Eval: 1, JSON: 2 }; Debug.ScriptCompilationType = ScriptCompilationType; /** @interface */ function DebuggerFlag() {} /** @param {boolean} value */ DebuggerFlag.prototype.setValue = function(value) {} /** @typedef {{ * breakPointsActive: !DebuggerFlag * }} */ var DebuggerFlags; /** @const */ var LiveEdit = {} /** * @param {!Script} script * @param {string} newSource * @param {boolean} previewOnly * @return {!{stack_modified: (boolean|undefined)}} */ LiveEdit.SetScriptSource = function(script, newSource, previewOnly, change_log) {} /** @constructor */ function Failure() {} LiveEdit.Failure = Failure; Debug.LiveEdit = LiveEdit; /** @typedef {{ * type: string, * syntaxErrorMessage: string, * position: !{start: !{line: number, column: number}}, * }} */ var LiveEditErrorDetails; /** @typedef {{ * breakpointId: number, * sourceID: number, * lineNumber: (number|undefined), * columnNumber: (number|undefined), * condition: (string|undefined), * interstatementLocation: (boolean|undefined), * }} */ var BreakpointInfo; /** @interface */ function BreakPoint() {} /** @return {!BreakPoint|undefined} */ BreakPoint.prototype.script_break_point = function() {} /** @return {number} */ BreakPoint.prototype.number = function() {} /** @interface */ function CompileEvent() {} /** @return {!ScriptMirror} */ CompileEvent.prototype.script = function() {} /** @interface */ function BreakEvent() {} /** @return {!Array<!BreakPoint>|undefined} */ BreakEvent.prototype.breakPointsHit = function() {} /** @interface */ function ExecutionState() {} /** * @param {string} source * @param {boolean} disableBreak * @param {*=} additionalContext */ ExecutionState.prototype.evaluateGlobal = function(source, disableBreak, additionalContext) {} /** @return {number} */ ExecutionState.prototype.frameCount = function() {} /** * @param {number} index * @return {!FrameMirror} */ ExecutionState.prototype.frame = function(index) {} /** @param {number} index */ ExecutionState.prototype.setSelectedFrame = function(index) {} /** @return {number} */ ExecutionState.prototype.selectedFrame = function() {} /** @enum */ var ScopeType = { Global: 0, Local: 1, With: 2, Closure: 3, Catch: 4, Block: 5, Script: 6 }; /** @typedef {{ * script: number, * position: number, * line: number, * column:number, * start: number, * end: number, * }} */ var SourceLocation; /** @typedef{{ * id: number, * context_data: (string|undefined), * source_url: (string|undefined), * source_mapping_url: (string|undefined), * is_debugger_script: boolean, * source: string, * line_offset: number, * column_offset: number, * nameOrSourceURL: function():string, * compilationType: function():!ScriptCompilationType, * }} */ var Script; /** @interface */ function ScopeDetails() {} /** @return {!Object} */ ScopeDetails.prototype.object = function() {} /** @return {string|undefined} */ ScopeDetails.prototype.name = function() {} /** @return {number} */ ScopeDetails.prototype.type = function() {} /** @interface */ function FrameDetails() {} /** @return {!Object} */ FrameDetails.prototype.receiver = function() {} /** @return {function()} */ FrameDetails.prototype.func = function() {} /** @return {!Object} */ FrameDetails.prototype.script = function() {} /** @return {boolean} */ FrameDetails.prototype.isAtReturn = function() {} /** @return {number} */ FrameDetails.prototype.sourcePosition = function() {} /** @return {*} */ FrameDetails.prototype.returnValue = function() {} /** @return {number} */ FrameDetails.prototype.scopeCount = function() {} /** @param {boolean} value */ function ToggleMirrorCache(value) {} /** * @param {*} value * @param {boolean=} transient * @return {!Mirror} */ function MakeMirror(value, transient) {} /** @interface */ function Mirror() {} /** @return {boolean} */ Mirror.prototype.isFunction = function() {} /** @return {boolean} */ Mirror.prototype.isGenerator = function() {} /** @return {boolean} */ Mirror.prototype.isMap = function() {} /** @return {boolean} */ Mirror.prototype.isSet = function() {} /** @return {boolean} */ Mirror.prototype.isIterator = function() {} /** * @interface * @extends {Mirror} */ function ObjectMirror() {} /** @return {!Array<!PropertyMirror>} */ ObjectMirror.prototype.properties = function() {} /** * @interface * @extends {ObjectMirror} */ function FunctionMirror () {} /** @return {number} */ FunctionMirror.prototype.scopeCount = function() {} /** * @param {number} index * @return {!ScopeMirror|undefined} */ FunctionMirror.prototype.scope = function(index) {} /** @return {boolean} */ FunctionMirror.prototype.resolved = function() {} /** @return {function()} */ FunctionMirror.prototype.value = function() {} /** @return {string} */ FunctionMirror.prototype.debugName = function() {} /** @return {!ScriptMirror|undefined} */ FunctionMirror.prototype.script = function() {} /** @return {!SourceLocation|undefined} */ FunctionMirror.prototype.sourceLocation = function() {} /** @return {!ContextMirror|undefined} */ FunctionMirror.prototype.context = function() {} /** * @constructor * @param {*} value */ function UnresolvedFunctionMirror(value) {} /** * @interface * @extends {ObjectMirror} */ function MapMirror () {} /** * @param {number=} limit * @return {!Array<!{key: *, value: *}>} */ MapMirror.prototype.entries = function(limit) {} /** * @interface * @extends {ObjectMirror} */ function SetMirror () {} /** * @param {number=} limit * @return {!Array<*>} */ SetMirror.prototype.values = function(limit) {} /** * @interface * @extends {ObjectMirror} */ function IteratorMirror () {} /** * @param {number=} limit * @return {!Array<*>} */ IteratorMirror.prototype.preview = function(limit) {} /** * @interface * @extends {ObjectMirror} */ function GeneratorMirror () {} /** @return {string} */ GeneratorMirror.prototype.status = function() {} /** @return {!SourceLocation|undefined} */ GeneratorMirror.prototype.sourceLocation = function() {} /** @return {!FunctionMirror} */ GeneratorMirror.prototype.func = function() {} /** * @interface * @extends {Mirror} */ function PropertyMirror() {} /** @return {!Mirror} */ PropertyMirror.prototype.value = function() {} /** @return {string} */ PropertyMirror.prototype.name = function() {} /** @type {*} */ PropertyMirror.prototype.value_; /** * @interface * @extends {Mirror} */ function FrameMirror() {} /** * @param {boolean=} ignoreNestedScopes * @return {!Array<!ScopeMirror>} */ FrameMirror.prototype.allScopes = function(ignoreNestedScopes) {} /** @return {!FrameDetails} */ FrameMirror.prototype.details = function() {} /** @return {!ScriptMirror} */ FrameMirror.prototype.script = function() {} /** * @param {string} source * @param {boolean} disableBreak */ FrameMirror.prototype.evaluate = function(source, disableBreak) {} FrameMirror.prototype.restart = function() {} /** @param {number} index */ FrameMirror.prototype.scope = function(index) {} /** * @interface * @extends {Mirror} */ function ScriptMirror() {} /** @return {!Script} */ ScriptMirror.prototype.value = function() {} /** @return {number} */ ScriptMirror.prototype.id = function() {} /** * @param {number} position * @param {boolean=} includeResourceOffset */ ScriptMirror.prototype.locationFromPosition = function(position, includeResourceOffset) {} /** * @interface * @extends {Mirror} */ function ScopeMirror() {} /** @return {!ScopeDetails} */ ScopeMirror.prototype.details = function() {} /** * @param {string} name * @param {*} newValue */ ScopeMirror.prototype.setVariableValue = function(name, newValue) {} /** * @interface * @extends {Mirror} */ function ContextMirror() {} /** @return {string|undefined} */ ContextMirror.prototype.data = function() {}