blob: 937091f6a4abe3af8e8a5efca71ba81903aefe62 [file]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
#pragma once
namespace Js
{
class BreakpointProbe : public Probe
{
int characterOffset;
int byteOffset;
DebugDocument* debugDocument;
FunctionBody* functionBody;
UINT breakpointId;
public:
BreakpointProbe(DebugDocument* debugDocument, StatementLocation& statement, int breakpointId);
virtual bool Install(ScriptContext* pScriptContext);
virtual bool Uninstall(ScriptContext* pScriptContext);
virtual bool CanHalt(InterpreterHaltState* pHaltState);
virtual void DispatchHalt(InterpreterHaltState* pHaltState);
virtual void CleanupHalt();
bool Matches(FunctionBody* _pBody, int characterPosition);
bool Matches(StatementLocation statement);
bool Matches(FunctionBody* _pBody, DebugDocument* debugDocument, int byteOffset);
UINT GetId() const { return this->breakpointId; }
void GetStatementLocation(StatementLocation * statement);
FunctionBody* GetFunctionBody() const { return this->functionBody; }
int GetBytecodeOffset() const { return this->byteOffset; }
DebugDocument* GetDbugDocument() { return this->debugDocument; }
int GetCharacterOffset() { return this->characterOffset; }
};
typedef JsUtil::List<BreakpointProbe*, ArenaAllocator> BreakpointProbeList;
}