blob: b322dfd1e25c5fad59bdd576f4520afb9a7dbe6d [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// 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
#include "CommonMinMemory.h"
#ifdef _WIN32
typedef _Return_type_success_(return >= 0) LONG NTSTATUS;
#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0)
#endif
#define MAKE_HR(errnum) (MAKE_HRESULT(SEVERITY_ERROR, FACILITY_CONTROL, errnum))
// If we're using the PAL for C++ standard library compat,
// we don't need to include wchar for string handling
#ifndef USING_PAL_STDLIB
// === C Runtime Header Files ===
#include <wchar.h>
#include <stdarg.h>
#include <float.h>
#include <limits.h>
#if defined(_UCRT)
#include <cmath>
#else
#include <math.h>
#endif
#include <time.h>
#include <io.h>
#include <malloc.h>
#endif
#include "Common/GetCurrentFrameId.h"
namespace Js
{
typedef int32 PropertyId;
typedef uint32 ModuleID;
}
#define IsTrueOrFalse(value) ((value) ? _u("True") : _u("False"))
// Header files
#include "Core/BinaryFeatureControl.h"
#include "TemplateParameter.h"
#include "Common/vtinfo.h"
#include "EnumClassHelp.h"
#include "Common/Tick.h"
#include "Common/IntMathCommon.h"
#include "Common/Int16Math.h"
#include "Common/Int32Math.h"
#include "Common/UInt16Math.h"
#include "Common/UInt32Math.h"
#include "Common/Int64Math.h"
template<typename T> struct IntMath { using Type = void; };
template<> struct IntMath<int16> { using Type = Int16Math; };
template<> struct IntMath<int32> { using Type = Int32Math; };
template<> struct IntMath<uint16> { using Type = UInt16Math; };
template<> struct IntMath<uint32> { using Type = UInt32Math; };
template<> struct IntMath<int64> { using Type = Int64Math; };
#include "Common/DateUtilities.h"
#include "Common/NumberUtilitiesBase.h"
#include "Common/NumberUtilities.h"
#include <Codex/Utf8Codex.h>
#include "Core/DelayLoadLibrary.h"
#include "Core/EtwTraceCore.h"
#include "Common/RejitReason.h"
#include "Common/ThreadService.h"
// Exceptions
#include "Exceptions/ExceptionBase.h"
#include "Exceptions/JavascriptException.h"
#include "Exceptions/OutOfMemoryException.h"
#include "Exceptions/OperationAbortedException.h"
#include "Exceptions/RejitException.h"
#include "Exceptions/ScriptAbortException.h"
#include "Exceptions/StackOverflowException.h"
#include "Exceptions/NotImplementedException.h"
#include "Exceptions/AsmJsParseException.h"
#include "Memory/AutoPtr.h"
#include "Memory/AutoAllocatorObjectPtr.h"
#include "Memory/LeakReport.h"
#include "DataStructures/DoublyLinkedListElement.h"
#include "DataStructures/DoublyLinkedList.h"
#include "DataStructures/SimpleHashTable.h"
#include "Memory/XDataAllocator.h"
#include "Memory/CustomHeap.h"
#include "Core/FinalizableObject.h"
#include "Memory/RecyclerRootPtr.h"
#include "Memory/RecyclerFastAllocator.h"
#include "Util/Pinned.h"
// Data Structures 2
#include "DataStructures/QuickSort.h"
#include "DataStructures/StringBuilder.h"
#include "DataStructures/WeakReferenceDictionary.h"
#include "DataStructures/LeafValueDictionary.h"
#include "DataStructures/Dictionary.h"
#include "DataStructures/List.h"
#include "DataStructures/Stack.h"
#include "DataStructures/Queue.h"
#include "DataStructures/CharacterBuffer.h"
#include "DataStructures/InternalString.h"
#include "DataStructures/Interval.h"
#include "DataStructures/InternalStringNoCaseComparer.h"
#include "DataStructures/SparseArray.h"
#include "DataStructures/GrowingArray.h"
#include "DataStructures/EvalMapString.h"
#include "DataStructures/RegexKey.h"
#include "Core/ICustomConfigFlags.h"
#include "Core/CmdParser.h"
#include "Core/ProfileInstrument.h"
#include "Core/ProfileMemory.h"
#include "Core/StackBackTrace.h"
#include "Common/Event.h"
#include "Common/Jobs.h"
#include "Common/vtregistry.h" // Depends on SimpleHashTable.h
#include "DataStructures/Cache.h" // Depends on config flags
#include "DataStructures/MruDictionary.h" // Depends on DoublyLinkedListElement
#include "Common/SmartFpuControl.h"
// This class is only used by AutoExp.dat
class AutoExpDummyClass
{
};
#pragma warning(push)
#if defined(PROFILE_RECYCLER_ALLOC) || defined(HEAP_TRACK_ALLOC) || defined(ENABLE_DEBUG_CONFIG_OPTIONS)
#ifdef _MSC_VER
#ifdef _UCRT
#include <typeinfo>
#else
#include <typeinfo.h>
#endif
#endif
#endif
#pragma warning(pop)