blob: c1943d725a15af8406103e40710ff171a8bbdb92 [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
{
enum HandlerType
{
HT_None,
HT_Catch,
HT_Finally
};
class EHBailoutData
{
public:
int32 nestingDepth;
int32 catchOffset;
int32 finallyOffset;
HandlerType ht;
EHBailoutData * parent;
EHBailoutData * child;
public:
EHBailoutData() : nestingDepth(-1), catchOffset(0), finallyOffset(0), parent(nullptr), child(nullptr), ht(HT_None) {}
EHBailoutData(int32 nestingDepth, int32 catchOffset, int32 finallyOffset, HandlerType ht, EHBailoutData * parent)
{
this->nestingDepth = nestingDepth;
this->catchOffset = catchOffset;
this->finallyOffset = finallyOffset;
this->ht = ht;
this->parent = parent;
this->child = nullptr;
}
#if ENABLE_NATIVE_CODEGEN
void Fixup(NativeCodeData::DataChunk* chunkList)
{
FixupNativeDataPointer(parent, chunkList);
FixupNativeDataPointer(child, chunkList);
}
#endif
};
}