mirror of
https://gitee.com/openharmony/arkcompiler_ets_runtime
synced 2024-11-23 01:59:58 +00:00
[JIT] export libark_jsruntime.so symbols for libark_jsoptimizer.so
ISSUE:https://gitee.com/openharmony/arkcompiler_ets_runtime/issues/I8UZN0 Change-Id: If5e76b9da12114f6b8717824427af4a6ceedea5c Signed-off-by: xiaoweidong <xiaoweidong@huawei.com>
This commit is contained in:
parent
25a1ab932b
commit
0f4dd9fa1b
1
BUILD.gn
1
BUILD.gn
@ -29,6 +29,7 @@ group("ark_js_packages") {
|
||||
is_ohos) {
|
||||
deps += [
|
||||
"ecmascript/compiler:ark_aot_compiler",
|
||||
"ecmascript/compiler:libark_jsoptimizer",
|
||||
"ecmascript/pgo_profiler/prof_dump:profdump",
|
||||
]
|
||||
}
|
||||
|
@ -20,6 +20,7 @@
|
||||
#include <vector>
|
||||
|
||||
#include "libpandabase/utils/utf.h"
|
||||
#include "ecmascript/common.h"
|
||||
|
||||
namespace panda::ecmascript::base::utf_helper {
|
||||
static constexpr uint16_t DECODE_LEAD_LOW = 0xD800;
|
||||
@ -82,8 +83,8 @@ Utf8Char ConvertUtf16ToUtf8(uint16_t d0, uint16_t d1, bool modify, bool isWriteB
|
||||
|
||||
size_t Utf16ToUtf8Size(const uint16_t *utf16, uint32_t length, bool modify = true);
|
||||
|
||||
size_t ConvertRegionUtf16ToUtf8(const uint16_t *utf16In, uint8_t *utf8Out, size_t utf16Len, size_t utf8Len,
|
||||
size_t start, bool modify = true, bool isWriteBuffer = false);
|
||||
size_t PUBLIC_API ConvertRegionUtf16ToUtf8(const uint16_t *utf16In, uint8_t *utf8Out, size_t utf16Len, size_t utf8Len,
|
||||
size_t start, bool modify = true, bool isWriteBuffer = false);
|
||||
|
||||
std::pair<uint32_t, size_t> ConvertUtf8ToUtf16Pair(const uint8_t *data, bool combine = false);
|
||||
|
||||
|
@ -24,7 +24,7 @@ public:
|
||||
using FuncEntryIndexKey = std::pair<std::string, uint32_t>; // (compilefileName, MethodID)
|
||||
AnFileInfo() = default;
|
||||
~AnFileInfo() override = default;
|
||||
void Save(const std::string &filename, Triple triple);
|
||||
void PUBLIC_API Save(const std::string &filename, Triple triple);
|
||||
void AddModuleDes(ModuleSectionDes &moduleDes)
|
||||
{
|
||||
des_.emplace_back(moduleDes);
|
||||
@ -85,7 +85,7 @@ public:
|
||||
return methodToEntryIndexMap_;
|
||||
}
|
||||
|
||||
void GenerateMethodToEntryIndexMap();
|
||||
void PUBLIC_API GenerateMethodToEntryIndexMap();
|
||||
|
||||
void Dump() const;
|
||||
|
||||
|
@ -53,7 +53,7 @@ public:
|
||||
|
||||
void InitSnapshot(uint32_t compileFilesCount);
|
||||
|
||||
void StoreConstantPoolInfo(BytecodeInfoCollector *bcInfoCollector);
|
||||
void PUBLIC_API StoreConstantPoolInfo(BytecodeInfoCollector *bcInfoCollector);
|
||||
|
||||
void ResolveSnapshotData(const CMap<std::pair<std::string, uint32_t>, uint32_t> &methodToEntryIndexMap)
|
||||
{
|
||||
|
@ -85,7 +85,7 @@ protected:
|
||||
};
|
||||
|
||||
#define DEFINE_INFO_CLASS(V, name) \
|
||||
class name##Info final : public BaseSnapshotInfo { \
|
||||
class PUBLIC_API name##Info final : public BaseSnapshotInfo { \
|
||||
public: \
|
||||
name##Info(EcmaVM *vm, \
|
||||
const JSPandaFile *jsPandaFile, \
|
||||
@ -111,8 +111,8 @@ public:
|
||||
}
|
||||
~SnapshotConstantPoolData() = default;
|
||||
|
||||
void Record(const BytecodeInstruction &bcIns, int32_t bcIndex,
|
||||
const CString &recordName, const MethodLiteral *method);
|
||||
void PUBLIC_API Record(const BytecodeInstruction &bcIns, int32_t bcIndex,
|
||||
const CString &recordName, const MethodLiteral *method);
|
||||
|
||||
void StoreDataToGlobalData(SnapshotGlobalData &snapshotData, const std::set<uint32_t> &skippedMethods) const;
|
||||
|
||||
|
@ -40,8 +40,8 @@ public:
|
||||
data_.emplace_back(data);
|
||||
}
|
||||
|
||||
void Resolve(JSThread *thread, const SnapshotGlobalData *globalData,
|
||||
const CMap<std::pair<std::string, uint32_t>, uint32_t> &methodToEntryIndexMap);
|
||||
void PUBLIC_API Resolve(JSThread *thread, const SnapshotGlobalData *globalData,
|
||||
const CMap<std::pair<std::string, uint32_t>, uint32_t> &methodToEntryIndexMap);
|
||||
|
||||
protected:
|
||||
JSHandle<ConstantPool> GetConstantPoolFromSnapshotData(JSThread *thread, const SnapshotGlobalData *globalData,
|
||||
|
@ -89,8 +89,8 @@ public:
|
||||
|
||||
uint32_t GetPGOExtendGTCount(const CString &recordName) const;
|
||||
|
||||
void Record(const BytecodeInstruction &bcIns, int32_t bcIndex,
|
||||
const CString &recordName, const MethodLiteral *method);
|
||||
void PUBLIC_API Record(const BytecodeInstruction &bcIns, int32_t bcIndex,
|
||||
const CString &recordName, const MethodLiteral *method);
|
||||
|
||||
template <class Callback>
|
||||
void IterateInfoAndType(uint32_t methodOffset, const Callback &cb) const
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
return thread_;
|
||||
}
|
||||
|
||||
void SetCurConstantPool(const JSPandaFile *jsPandaFile, uint32_t methodOffset);
|
||||
void PUBLIC_API SetCurConstantPool(const JSPandaFile *jsPandaFile, uint32_t methodOffset);
|
||||
|
||||
JSHandle<JSTaggedValue> GetCurConstantPool() const
|
||||
{
|
||||
@ -43,7 +43,7 @@ public:
|
||||
}
|
||||
|
||||
// snapshot
|
||||
void InitAOTSnapshot(uint32_t compileFilesCount);
|
||||
void PUBLIC_API InitAOTSnapshot(uint32_t compileFilesCount);
|
||||
void GenArrayInfo();
|
||||
void GenConstantIndexInfo();
|
||||
|
||||
@ -58,18 +58,18 @@ public:
|
||||
}
|
||||
|
||||
// array
|
||||
void RecordElements(panda_file::File::EntityId id, JSTaggedValue elements);
|
||||
void PUBLIC_API RecordElements(panda_file::File::EntityId id, JSTaggedValue elements);
|
||||
|
||||
void RecordConstantIndex(uint32_t bcAbsoluteOffset, uint32_t index);
|
||||
|
||||
int GetElementsIndexByEntityId(panda_file::File::EntityId id);
|
||||
int PUBLIC_API GetElementsIndexByEntityId(panda_file::File::EntityId id);
|
||||
|
||||
// hclass
|
||||
void RecordHClass(ProfileType rootType, ProfileType childType, JSTaggedType hclass);
|
||||
|
||||
uint32_t GetHClassIndexByProfileType(ProfileTyper type) const;
|
||||
uint32_t PUBLIC_API GetHClassIndexByProfileType(ProfileTyper type) const;
|
||||
|
||||
JSTaggedValue QueryHClass(ProfileType rootType, ProfileType childType) const;
|
||||
JSTaggedValue PUBLIC_API QueryHClass(ProfileType rootType, ProfileType childType) const;
|
||||
ElementsKind QueryElementKind(ProfileType rootType);
|
||||
|
||||
inline ProfileType GetRootIdByLocation(const PGOTypeLocation &loc)
|
||||
|
@ -87,10 +87,10 @@ private:
|
||||
|
||||
class PGOTypeParser {
|
||||
public:
|
||||
explicit PGOTypeParser(const PGOProfilerDecoder &decoder, PGOTypeManager *ptManager);
|
||||
explicit PUBLIC_API PGOTypeParser(const PGOProfilerDecoder &decoder, PGOTypeManager *ptManager);
|
||||
~PGOTypeParser() = default;
|
||||
|
||||
void CreatePGOType(BytecodeInfoCollector &collector);
|
||||
void PUBLIC_API CreatePGOType(BytecodeInfoCollector &collector);
|
||||
|
||||
private:
|
||||
const PGOProfilerDecoder &decoder_;
|
||||
|
@ -29,14 +29,15 @@ using PGORWOpType = pgo::PGORWOpType;
|
||||
class PGOTypeRecorder {
|
||||
public:
|
||||
explicit PGOTypeRecorder(const PGOProfilerDecoder &decoder);
|
||||
PGOTypeRecorder(const PGOProfilerDecoder &decoder, const JSPandaFile *jsPandaFile, uint32_t methodOffset);
|
||||
PUBLIC_API PGOTypeRecorder(const PGOProfilerDecoder &decoder,
|
||||
const JSPandaFile *jsPandaFile, uint32_t methodOffset);
|
||||
~PGOTypeRecorder() = default;
|
||||
|
||||
std::vector<ElementsKind> GetElementsKindsForUser(int32_t offset) const;
|
||||
ElementsKind GetElementsKindForCreater(int32_t offset) const;
|
||||
uint32_t GetElementsLength(int32_t offset) const;
|
||||
std::vector<ElementsKind> PUBLIC_API GetElementsKindsForUser(int32_t offset) const;
|
||||
ElementsKind PUBLIC_API GetElementsKindForCreater(int32_t offset) const;
|
||||
uint32_t PUBLIC_API GetElementsLength(int32_t offset) const;
|
||||
|
||||
PGOTypeRef GetPGOType(int32_t offset) const;
|
||||
PGOTypeRef PUBLIC_API GetPGOType(int32_t offset) const;
|
||||
|
||||
inline PGODefineOpType GetPGODefOpType(int32_t bcOffset) const
|
||||
{
|
||||
|
@ -123,9 +123,9 @@ public:
|
||||
void CollectDeoptBundleVec(std::vector<kungfu::ARKDeopt>& deoptBundle);
|
||||
JSTaggedType ConstructAsmInterpretFrame();
|
||||
void UpdateAndDumpDeoptInfo(kungfu::DeoptType type);
|
||||
static std::string DisplayItems(kungfu::DeoptType type);
|
||||
static int32_t EncodeDeoptVregIndex(int32_t index, size_t depth, size_t shift);
|
||||
static size_t ComputeShift(size_t depth);
|
||||
static PUBLIC_API std::string DisplayItems(kungfu::DeoptType type);
|
||||
static PUBLIC_API int32_t EncodeDeoptVregIndex(int32_t index, size_t depth, size_t shift);
|
||||
static PUBLIC_API size_t ComputeShift(size_t depth);
|
||||
static int32_t DecodeVregIndex(OffsetType id, size_t shift);
|
||||
static size_t DecodeDeoptDepth(OffsetType id, size_t shift);
|
||||
JSThread *GetThread() const
|
||||
|
@ -142,7 +142,7 @@ public:
|
||||
return ptManager_;
|
||||
}
|
||||
|
||||
void SetTSManager(TSManager *set);
|
||||
void PUBLIC_API SetTSManager(TSManager *set);
|
||||
|
||||
ARK_INLINE JSThread *GetJSThread() const
|
||||
{
|
||||
@ -257,9 +257,9 @@ public:
|
||||
|
||||
bool HasCachedConstpool(const JSPandaFile *jsPandaFile) const;
|
||||
|
||||
JSTaggedValue FindConstpool(const JSPandaFile *jsPandaFile, int32_t index);
|
||||
JSTaggedValue PUBLIC_API FindConstpool(const JSPandaFile *jsPandaFile, int32_t index);
|
||||
// For new version instruction.
|
||||
JSTaggedValue FindConstpool(const JSPandaFile *jsPandaFile, panda_file::File::EntityId id);
|
||||
JSTaggedValue PUBLIC_API FindConstpool(const JSPandaFile *jsPandaFile, panda_file::File::EntityId id);
|
||||
JSTaggedValue FindConstpoolWithAOT(const JSPandaFile *jsPandaFile, int32_t index);
|
||||
std::optional<std::reference_wrapper<CMap<int32_t, JSTaggedValue>>> FindConstpools(
|
||||
const JSPandaFile *jsPandaFile);
|
||||
|
@ -354,9 +354,10 @@ private:
|
||||
// Compares string1 + string2 by bytes, It doesn't check canonical unicode equivalence.
|
||||
bool EqualToSplicedString(const EcmaString *str1, const EcmaString *str2);
|
||||
// Compares strings by bytes, It doesn't check canonical unicode equivalence.
|
||||
static bool StringsAreEqual(const EcmaVM *vm, const JSHandle<EcmaString> &str1, const JSHandle<EcmaString> &str2);
|
||||
static PUBLIC_API bool StringsAreEqual(const EcmaVM *vm, const JSHandle<EcmaString> &str1,
|
||||
const JSHandle<EcmaString> &str2);
|
||||
// Compares strings by bytes, It doesn't check canonical unicode equivalence.
|
||||
static bool StringsAreEqual(EcmaString *str1, EcmaString *str2);
|
||||
static PUBLIC_API bool StringsAreEqual(EcmaString *str1, EcmaString *str2);
|
||||
// Two strings have the same type of utf encoding format.
|
||||
static bool StringsAreEqualDiffUtfEncoding(EcmaString *str1, EcmaString *str2);
|
||||
static bool StringsAreEqualDiffUtfEncoding(const FlatStringInfo &str1, const FlatStringInfo &str2);
|
||||
@ -601,13 +602,13 @@ private:
|
||||
static bool CanBeCompressed(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
static bool CanBeCompressed(const EcmaString *string);
|
||||
|
||||
bool ToElementIndex(uint32_t *index);
|
||||
bool PUBLIC_API ToElementIndex(uint32_t *index);
|
||||
|
||||
bool ToInt(int32_t *index, bool *negative);
|
||||
|
||||
bool ToUInt64FromLoopStart(uint64_t *index, uint32_t loopStart, const uint8_t *data);
|
||||
|
||||
bool ToTypedArrayIndex(uint32_t *index);
|
||||
bool PUBLIC_API ToTypedArrayIndex(uint32_t *index);
|
||||
|
||||
template<bool isLower>
|
||||
static EcmaString *ConvertCase(const EcmaVM *vm, const JSHandle<EcmaString> &src);
|
||||
@ -697,9 +698,9 @@ private:
|
||||
template <typename Char>
|
||||
static void WriteToFlat(EcmaString *src, Char *buf, uint32_t maxLength);
|
||||
|
||||
static const uint8_t *GetUtf8DataFlat(const EcmaString *src, CVector<uint8_t> &buf);
|
||||
static const uint8_t *PUBLIC_API GetUtf8DataFlat(const EcmaString *src, CVector<uint8_t> &buf);
|
||||
|
||||
static const uint16_t *GetUtf16DataFlat(const EcmaString *src, CVector<uint16_t> &buf);
|
||||
static const uint16_t *PUBLIC_API GetUtf16DataFlat(const EcmaString *src, CVector<uint16_t> &buf);
|
||||
|
||||
// string must be not flat
|
||||
static EcmaString *SlowFlatten(const EcmaVM *vm, const JSHandle<EcmaString> &string, MemSpaceType type);
|
||||
@ -1379,7 +1380,7 @@ public:
|
||||
|
||||
// not change string data structure.
|
||||
// if string is not flat, this func has low efficiency.
|
||||
bool ToTypedArrayIndex(uint32_t *index)
|
||||
bool PUBLIC_API ToTypedArrayIndex(uint32_t *index)
|
||||
{
|
||||
return string_->ToTypedArrayIndex(index);
|
||||
}
|
||||
|
@ -134,8 +134,8 @@ public:
|
||||
void InitializePGOProfiler();
|
||||
void ResetPGOProfiler();
|
||||
|
||||
bool IsEnablePGOProfiler() const;
|
||||
bool IsEnableElementsKind() const;
|
||||
bool PUBLIC_API IsEnablePGOProfiler() const;
|
||||
bool PUBLIC_API IsEnableElementsKind() const;
|
||||
|
||||
bool Initialize();
|
||||
|
||||
@ -159,7 +159,7 @@ public:
|
||||
return ecmaParamConfiguration_;
|
||||
}
|
||||
|
||||
JSHandle<GlobalEnv> GetGlobalEnv() const;
|
||||
JSHandle<GlobalEnv> PUBLIC_API GetGlobalEnv() const;
|
||||
|
||||
static EcmaVM *ConstCast(const EcmaVM *vm)
|
||||
{
|
||||
|
@ -25,7 +25,7 @@ namespace ecmascript {
|
||||
// ElementAccessor intends to replace all .GetElements and share the common following methods.
|
||||
class ElementAccessor {
|
||||
public:
|
||||
static JSTaggedValue Get(JSHandle<JSObject> receiver, uint32_t idx);
|
||||
static JSTaggedValue PUBLIC_API Get(JSHandle<JSObject> receiver, uint32_t idx);
|
||||
static JSTaggedValue Get(JSObject *receiver, uint32_t idx);
|
||||
|
||||
template<typename T>
|
||||
@ -43,7 +43,7 @@ public:
|
||||
static uint32_t GetElementsLength(JSObject *receiver);
|
||||
|
||||
static JSTaggedValue GetTaggedValueWithElementsKind(JSTaggedType rawValue, ElementsKind kind);
|
||||
static JSTaggedType ConvertTaggedValueWithElementsKind(JSTaggedValue rawValue, ElementsKind kind);
|
||||
static JSTaggedType PUBLIC_API ConvertTaggedValueWithElementsKind(JSTaggedValue rawValue, ElementsKind kind);
|
||||
private:
|
||||
};
|
||||
} // namespace ecmascript
|
||||
|
@ -38,7 +38,7 @@ enum class ElementsKind : uint8_t {
|
||||
DICTIONARY = HOLE_TAGGED,
|
||||
};
|
||||
|
||||
class Elements {
|
||||
class PUBLIC_API Elements {
|
||||
public:
|
||||
static CMap<ElementsKind, ConstantIndex> InitializeHClassMap();
|
||||
|
||||
|
@ -64,7 +64,7 @@ public:
|
||||
|
||||
static JSTaggedValue GetIteratorObj(JSThread *thread, const JSHandle<JSAPIArrayList> &obj);
|
||||
|
||||
JSTaggedValue Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
JSTaggedValue PUBLIC_API Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
JSTaggedValue Get(JSThread *thread, const uint32_t index);
|
||||
|
||||
bool Has(const JSTaggedValue value) const;
|
||||
|
@ -67,7 +67,7 @@ public:
|
||||
|
||||
JSTaggedValue Get(const uint32_t index);
|
||||
|
||||
JSTaggedValue Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
JSTaggedValue PUBLIC_API Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
|
||||
uint32_t GetSize() const;
|
||||
|
||||
|
@ -35,8 +35,8 @@ public:
|
||||
static void AddFirst(JSThread *thread, const JSHandle<JSAPILinkedList> &list, const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue Insert(JSThread *thread, const JSHandle<JSAPILinkedList> &list,
|
||||
const JSHandle<JSTaggedValue> &value, const int index);
|
||||
static JSTaggedValue Set(JSThread *thread, const JSHandle<JSAPILinkedList> &list,
|
||||
const int index, const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue PUBLIC_API Set(JSThread *thread, const JSHandle<JSAPILinkedList> &list,
|
||||
const int index, const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue ConvertToArray(const JSThread *thread, const JSHandle<JSAPILinkedList> &list);
|
||||
static JSHandle<TaggedArray> OwnKeys(JSThread *thread, const JSHandle<JSAPILinkedList> &list);
|
||||
static bool GetOwnProperty(JSThread *thread, const JSHandle<JSAPILinkedList> &list,
|
||||
|
@ -33,8 +33,8 @@ public:
|
||||
static void Add(JSThread *thread, const JSHandle<JSAPIList> &list, const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue Insert(JSThread *thread, const JSHandle<JSAPIList> &list,
|
||||
const JSHandle<JSTaggedValue> &value, const int index);
|
||||
static JSTaggedValue Set(JSThread *thread, const JSHandle<JSAPIList> &list,
|
||||
const int index, const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue PUBLIC_API Set(JSThread *thread, const JSHandle<JSAPIList> &list,
|
||||
const int index, const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue ReplaceAllElements(JSThread *thread, const JSHandle<JSTaggedValue> &thisHandle,
|
||||
const JSHandle<JSTaggedValue> &callbackFn,
|
||||
const JSHandle<JSTaggedValue> &thisArg);
|
||||
|
@ -44,8 +44,8 @@ public:
|
||||
static bool SetProperty(JSThread *thread, const JSHandle<JSAPIPlainArray> &obj,
|
||||
const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value);
|
||||
static JSTaggedValue Set(JSThread *thread, const JSHandle<JSAPIPlainArray> &obj,
|
||||
const uint32_t index, JSTaggedValue value);
|
||||
static JSTaggedValue PUBLIC_API Set(JSThread *thread, const JSHandle<JSAPIPlainArray> &obj,
|
||||
const uint32_t index, JSTaggedValue value);
|
||||
JSTaggedValue RemoveAt(JSThread *thread, JSTaggedValue index);
|
||||
JSTaggedValue GetIndexOfKey(int32_t key);
|
||||
JSTaggedValue GetIndexOfValue(JSTaggedValue value);
|
||||
|
@ -35,7 +35,7 @@ public:
|
||||
static void ForEach(JSThread *thread, const JSHandle<JSAPIQueue> &queue, const JSHandle<JSTaggedValue> &value);
|
||||
JSTaggedValue Get(JSThread *thread, const uint32_t index);
|
||||
|
||||
JSTaggedValue Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
JSTaggedValue PUBLIC_API Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
bool Has(JSTaggedValue value) const;
|
||||
|
||||
static JSHandle<TaggedArray> OwnKeys(JSThread *thread, const JSHandle<JSAPIQueue> &obj);
|
||||
|
@ -59,7 +59,7 @@ public:
|
||||
|
||||
JSTaggedValue Get(const uint32_t index);
|
||||
|
||||
JSTaggedValue Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
JSTaggedValue PUBLIC_API Set(JSThread *thread, const uint32_t index, JSTaggedValue value);
|
||||
|
||||
static constexpr size_t TOP_OFFSET = JSObject::SIZE;
|
||||
ACCESSORS_PRIMITIVE_FIELD(Top, int, TOP_OFFSET, LAST_OFFSET)
|
||||
|
@ -78,7 +78,7 @@ public:
|
||||
|
||||
static JSTaggedValue Get(JSThread *thread, const JSHandle<JSAPIVector> &vector, int32_t index);
|
||||
|
||||
JSTaggedValue Set(JSThread *thread, int32_t index, const JSTaggedValue &value);
|
||||
JSTaggedValue PUBLIC_API Set(JSThread *thread, int32_t index, const JSTaggedValue &value);
|
||||
|
||||
bool Has(const JSTaggedValue &value) const;
|
||||
|
||||
|
@ -30,8 +30,8 @@ public:
|
||||
|
||||
CAST_CHECK(JSArray, IsJSArray);
|
||||
|
||||
static JSHandle<JSTaggedValue> ArrayCreate(JSThread *thread, JSTaggedNumber length,
|
||||
ArrayMode mode = ArrayMode::UNDEFINED);
|
||||
static PUBLIC_API JSHandle<JSTaggedValue> ArrayCreate(JSThread *thread, JSTaggedNumber length,
|
||||
ArrayMode mode = ArrayMode::UNDEFINED);
|
||||
static JSHandle<JSTaggedValue> ArrayCreate(JSThread *thread, JSTaggedNumber length,
|
||||
const JSHandle<JSTaggedValue> &newTarget,
|
||||
ArrayMode mode = ArrayMode::UNDEFINED);
|
||||
@ -105,7 +105,7 @@ public:
|
||||
static bool IncludeInSortedValue(JSThread *thread, const JSHandle<JSTaggedValue> &obj,
|
||||
const JSHandle<JSTaggedValue> &value);
|
||||
static JSHandle<TaggedArray> ToTaggedArray(JSThread *thread, const JSHandle<JSTaggedValue> &obj);
|
||||
static void CheckAndCopyArray(const JSThread *thread, JSHandle<JSArray> obj);
|
||||
static void PUBLIC_API CheckAndCopyArray(const JSThread *thread, JSHandle<JSArray> obj);
|
||||
static void SetCapacity(JSThread *thread, const JSHandle<JSObject> &array, uint32_t oldLen, uint32_t newLen,
|
||||
bool isNew = false);
|
||||
static void SortElements(JSThread *thread, const JSHandle<TaggedArray> &elements,
|
||||
|
@ -47,7 +47,7 @@ public:
|
||||
static JSHandle<BigInt> CreateBigint(JSThread *thread, uint32_t size);
|
||||
|
||||
static bool Equal(const JSTaggedValue &x, const JSTaggedValue &y);
|
||||
static bool SameValue(const JSTaggedValue &x, const JSTaggedValue &y);
|
||||
static PUBLIC_API bool SameValue(const JSTaggedValue &x, const JSTaggedValue &y);
|
||||
static bool SameValueZero(const JSTaggedValue &x, const JSTaggedValue &y);
|
||||
|
||||
static JSHandle<BigInt> BitwiseOp(JSThread *thread, Operate op, JSHandle<BigInt> x, JSHandle<BigInt> y);
|
||||
|
@ -247,7 +247,7 @@ public:
|
||||
|
||||
static void InitializeJSFunction(JSThread *thread, const JSHandle<JSFunction> &func,
|
||||
FunctionKind kind = FunctionKind::NORMAL_FUNCTION);
|
||||
static JSHClass *GetOrCreateInitialJSHClass(JSThread *thread, const JSHandle<JSFunction> &fun);
|
||||
static JSHClass *PUBLIC_API GetOrCreateInitialJSHClass(JSThread *thread, const JSHandle<JSFunction> &fun);
|
||||
static JSHandle<JSHClass> GetInstanceJSHClass(JSThread *thread, JSHandle<JSFunction> constructor,
|
||||
JSHandle<JSTaggedValue> newTarget);
|
||||
|
||||
|
@ -402,8 +402,8 @@ public:
|
||||
static JSHandle<JSHClass> SetPropertyOfObjHClass(const JSThread *thread, JSHandle<JSHClass> &jshclass,
|
||||
const JSHandle<JSTaggedValue> &key,
|
||||
const PropertyAttributes &attr);
|
||||
static void AddProperty(const JSThread *thread, const JSHandle<JSObject> &obj, const JSHandle<JSTaggedValue> &key,
|
||||
const PropertyAttributes &attr);
|
||||
static void PUBLIC_API AddProperty(const JSThread *thread, const JSHandle<JSObject> &obj,
|
||||
const JSHandle<JSTaggedValue> &key, const PropertyAttributes &attr);
|
||||
|
||||
static void TryRestoreElementsKind(const JSThread *thread, JSHandle<JSHClass> newJsHClass,
|
||||
const JSHandle<JSObject> &obj);
|
||||
@ -421,11 +421,12 @@ public:
|
||||
static void TransitionForElementsKindChange(const JSThread *thread, const JSHandle<JSObject> &receiver,
|
||||
const ElementsKind newKind);
|
||||
static JSHClass* GetInitialArrayHClassWithElementsKind(const JSThread *thread, const ElementsKind kind);
|
||||
static void TransitToElementsKind(const JSThread *thread, const JSHandle<JSArray> &array,
|
||||
ElementsKind newKind = ElementsKind::NONE);
|
||||
static bool TransitToElementsKind(const JSThread *thread, const JSHandle<JSObject> &object,
|
||||
const JSHandle<JSTaggedValue> &value, ElementsKind kind = ElementsKind::NONE);
|
||||
static std::tuple<bool, bool, JSTaggedValue> ConvertOrTransitionWithRep(const JSThread *thread,
|
||||
static void PUBLIC_API TransitToElementsKind(const JSThread *thread, const JSHandle<JSArray> &array,
|
||||
ElementsKind newKind = ElementsKind::NONE);
|
||||
static bool PUBLIC_API TransitToElementsKind(const JSThread *thread, const JSHandle<JSObject> &object,
|
||||
const JSHandle<JSTaggedValue> &value,
|
||||
ElementsKind kind = ElementsKind::NONE);
|
||||
static std::tuple<bool, bool, JSTaggedValue> PUBLIC_API ConvertOrTransitionWithRep(const JSThread *thread,
|
||||
const JSHandle<JSObject> &receiver, const JSHandle<JSTaggedValue> &key, const JSHandle<JSTaggedValue> &value,
|
||||
PropertyAttributes &attr);
|
||||
|
||||
@ -461,7 +462,7 @@ public:
|
||||
|
||||
void InitTSInheritInfo(const JSThread *thread);
|
||||
|
||||
bool HasTSSubtyping() const;
|
||||
bool PUBLIC_API HasTSSubtyping() const;
|
||||
|
||||
bool IsTSIHCWithInheritInfo() const;
|
||||
|
||||
@ -1788,12 +1789,14 @@ public:
|
||||
|
||||
inline static int FindPropertyEntry(const JSThread *thread, JSHClass *hclass, JSTaggedValue key);
|
||||
|
||||
static PropertyLookupResult LookupPropertyInAotHClass(const JSThread *thread, JSHClass *hclass, JSTaggedValue key);
|
||||
static PropertyLookupResult LookupPropertyInPGOHClass(const JSThread *thread, JSHClass *hclass, JSTaggedValue key);
|
||||
static PropertyLookupResult LookupPropertyInBuiltinPrototypeHClass(const JSThread *thread, JSHClass *hclass,
|
||||
JSTaggedValue key);
|
||||
static PropertyLookupResult LookupPropertyInBuiltinHClass(const JSThread *thread, JSHClass *hclass,
|
||||
JSTaggedValue key);
|
||||
static PUBLIC_API PropertyLookupResult LookupPropertyInAotHClass(const JSThread *thread, JSHClass *hclass,
|
||||
JSTaggedValue key);
|
||||
static PUBLIC_API PropertyLookupResult LookupPropertyInPGOHClass(const JSThread *thread, JSHClass *hclass,
|
||||
JSTaggedValue key);
|
||||
static PUBLIC_API PropertyLookupResult LookupPropertyInBuiltinPrototypeHClass(const JSThread *thread,
|
||||
JSHClass *hclass, JSTaggedValue key);
|
||||
static PUBLIC_API PropertyLookupResult LookupPropertyInBuiltinHClass(const JSThread *thread, JSHClass *hclass,
|
||||
JSTaggedValue key);
|
||||
|
||||
static constexpr size_t PROTOTYPE_OFFSET = TaggedObjectSize();
|
||||
ACCESSORS(Proto, PROTOTYPE_OFFSET, LAYOUT_OFFSET);
|
||||
@ -1810,7 +1813,7 @@ public:
|
||||
DEFINE_ALIGN_SIZE(LAST_OFFSET);
|
||||
|
||||
void SetPrototype(const JSThread *thread, JSTaggedValue proto);
|
||||
void SetPrototype(const JSThread *thread, const JSHandle<JSTaggedValue> &proto);
|
||||
void PUBLIC_API SetPrototype(const JSThread *thread, const JSHandle<JSTaggedValue> &proto);
|
||||
void ShouldUpdateProtoClass(const JSThread *thread, const JSHandle<JSTaggedValue> &proto);
|
||||
inline JSTaggedValue GetPrototype() const
|
||||
{
|
||||
|
@ -445,7 +445,7 @@ public:
|
||||
static bool CreateDataPropertyOrThrow(JSThread *thread, const JSHandle<JSObject> &obj, uint32_t index,
|
||||
const JSHandle<JSTaggedValue> &value);
|
||||
|
||||
static JSHandle<TaggedArray> EnumerableOwnNames(JSThread *thread, const JSHandle<JSObject> &obj);
|
||||
static JSHandle<TaggedArray> PUBLIC_API EnumerableOwnNames(JSThread *thread, const JSHandle<JSObject> &obj);
|
||||
|
||||
// 7.3.23 EnumerableOwnPropertyNames ( O, kind )
|
||||
static JSHandle<TaggedArray> EnumerableOwnPropertyNames(JSThread *thread, const JSHandle<JSObject> &obj,
|
||||
@ -511,8 +511,8 @@ public:
|
||||
const PropertyDescriptor ¤t,
|
||||
SCheckMode sCheckMode = SCheckMode::CHECK);
|
||||
|
||||
static OperationResult GetProperty(JSThread *thread, const JSHandle<JSObject> &obj,
|
||||
const JSHandle<JSTaggedValue> &key);
|
||||
static OperationResult PUBLIC_API GetProperty(JSThread *thread, const JSHandle<JSObject> &obj,
|
||||
const JSHandle<JSTaggedValue> &key);
|
||||
|
||||
static OperationResult GetProperty(JSThread *thread, const JSHandle<JSTaggedValue> &obj,
|
||||
const JSHandle<JSTaggedValue> &key, const JSHandle<JSTaggedValue> &receiver);
|
||||
@ -580,8 +580,9 @@ public:
|
||||
|
||||
static JSTaggedValue CallGetter(JSThread *thread, const AccessorData *accessor,
|
||||
const JSHandle<JSTaggedValue> &receiver);
|
||||
static bool CallSetter(JSThread *thread, const AccessorData &accessor, const JSHandle<JSTaggedValue> &receiver,
|
||||
const JSHandle<JSTaggedValue> &value, bool mayThrow = false);
|
||||
static bool PUBLIC_API CallSetter(JSThread *thread, const AccessorData &accessor,
|
||||
const JSHandle<JSTaggedValue> &receiver,
|
||||
const JSHandle<JSTaggedValue> &value, bool mayThrow = false);
|
||||
|
||||
void FillElementsWithHoles(const JSThread *thread, uint32_t start, uint32_t end);
|
||||
|
||||
@ -621,15 +622,16 @@ public:
|
||||
bool IsPropertiesDict() const;
|
||||
bool IsTypedArray() const;
|
||||
|
||||
static void DefinePropertyByLiteral(JSThread *thread, const JSHandle<JSObject> &obj,
|
||||
const JSHandle<JSTaggedValue> &key, const JSHandle<JSTaggedValue> &value,
|
||||
bool useForClass = false);
|
||||
static PUBLIC_API void DefinePropertyByLiteral(JSThread *thread, const JSHandle<JSObject> &obj,
|
||||
const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value,
|
||||
bool useForClass = false);
|
||||
static void DefineSetter(JSThread *thread, const JSHandle<JSTaggedValue> &obj, const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value);
|
||||
static void DefineGetter(JSThread *thread, const JSHandle<JSTaggedValue> &obj, const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value);
|
||||
static JSHandle<JSObject> CreateObjectFromProperties(const JSThread *thread,
|
||||
const JSHandle<TaggedArray> &properties,
|
||||
static PUBLIC_API JSHandle<JSObject> CreateObjectFromProperties(const JSThread *thread,
|
||||
const JSHandle<TaggedArray> &properties,
|
||||
JSTaggedValue ihc = JSTaggedValue::Undefined());
|
||||
static JSHandle<JSObject> CreateObjectFromProperties(const JSThread *thread,
|
||||
const JSHandle<TaggedArray> &properties,
|
||||
@ -687,7 +689,8 @@ public:
|
||||
DECL_DUMP()
|
||||
static const CString ExtractConstructorAndRecordName(JSThread *thread, TaggedObject *obj);
|
||||
|
||||
static JSHandle<NameDictionary> TransitionToDictionary(const JSThread *thread, const JSHandle<JSObject> &receiver);
|
||||
static JSHandle<NameDictionary> PUBLIC_API TransitionToDictionary(const JSThread *thread,
|
||||
const JSHandle<JSObject> &receiver);
|
||||
|
||||
static inline std::pair<bool, JSTaggedValue> ConvertValueWithRep(PropertyAttributes attr, JSTaggedValue value);
|
||||
|
||||
@ -743,7 +746,7 @@ private:
|
||||
friend class RuntimeStubs;
|
||||
|
||||
PropertyBox* GetGlobalPropertyBox(JSTaggedValue key);
|
||||
static bool AddElementInternal(
|
||||
static bool PUBLIC_API AddElementInternal(
|
||||
JSThread *thread, const JSHandle<JSObject> &receiver, uint32_t index, const JSHandle<JSTaggedValue> &value,
|
||||
PropertyAttributes attr = PropertyAttributes(PropertyAttributes::GetDefaultAttributes()));
|
||||
|
||||
|
@ -86,7 +86,7 @@ public:
|
||||
// ES6 9.5.14 [[Construct]] ( argumentsList, newTarget)
|
||||
static JSTaggedValue ConstructInternal(EcmaRuntimeCallInfo *info);
|
||||
|
||||
bool IsArray(JSThread *thread) const;
|
||||
bool PUBLIC_API IsArray(JSThread *thread) const;
|
||||
|
||||
static constexpr size_t TARGET_OFFSET = ECMAObject::SIZE;
|
||||
ACCESSORS(Target, TARGET_OFFSET, HANDLER_OFFSET)
|
||||
|
@ -363,7 +363,7 @@ public:
|
||||
static int8_t ToInt8(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
static uint8_t ToUint8(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
static uint8_t ToUint8Clamp(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
static JSHandle<EcmaString> ToString(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
static JSHandle<EcmaString> PUBLIC_API ToString(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
static JSHandle<EcmaString> ToString(JSThread *thread, JSTaggedValue val);
|
||||
static JSHandle<JSObject> ToObject(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
static JSHandle<JSTaggedValue> ToPropertyKey(JSThread *thread, const JSHandle<JSTaggedValue> &tagged);
|
||||
@ -415,8 +415,9 @@ public:
|
||||
static bool SetProperty(JSThread *thread, const JSHandle<JSTaggedValue> &obj, uint32_t key,
|
||||
const JSHandle<JSTaggedValue> &value, bool mayThrow = false);
|
||||
|
||||
static bool SetProperty(JSThread *thread, const JSHandle<JSTaggedValue> &obj, const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value, bool mayThrow = false);
|
||||
static bool PUBLIC_API SetProperty(JSThread *thread, const JSHandle<JSTaggedValue> &obj,
|
||||
const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value, bool mayThrow = false);
|
||||
|
||||
static bool SetProperty(JSThread *thread, const JSHandle<JSTaggedValue> &obj, const JSHandle<JSTaggedValue> &key,
|
||||
const JSHandle<JSTaggedValue> &value, const JSHandle<JSTaggedValue> &receiver,
|
||||
@ -484,7 +485,7 @@ public:
|
||||
bool IsCOWArray() const;
|
||||
bool IsMutantTaggedArray() const;
|
||||
bool IsJSArray() const;
|
||||
bool IsJSCOWArray() const;
|
||||
bool PUBLIC_API IsJSCOWArray() const;
|
||||
bool IsStableJSArray(JSThread *thread) const;
|
||||
bool IsStableJSArguments(JSThread *thread) const;
|
||||
bool HasStableElements(JSThread *thread) const;
|
||||
|
@ -193,7 +193,7 @@ public:
|
||||
return &weakNodeNativeFinalizeCallbacks_;
|
||||
}
|
||||
|
||||
void SetException(JSTaggedValue exception);
|
||||
void PUBLIC_API SetException(JSTaggedValue exception);
|
||||
|
||||
JSTaggedValue GetException() const
|
||||
{
|
||||
@ -245,7 +245,7 @@ public:
|
||||
|
||||
JSHClass *GetBuiltinHClass(BuiltinTypeId type) const;
|
||||
|
||||
JSHClass *GetBuiltinPrototypeHClass(BuiltinTypeId type) const;
|
||||
PUBLIC_API JSHClass *GetBuiltinPrototypeHClass(BuiltinTypeId type) const;
|
||||
|
||||
static size_t GetBuiltinHClassOffset(BuiltinTypeId, bool isArch32);
|
||||
|
||||
@ -331,7 +331,7 @@ public:
|
||||
|
||||
void IterateWeakEcmaGlobalStorage(const WeakRootVisitor &visitor);
|
||||
|
||||
PropertiesCache *GetPropertiesCache() const;
|
||||
PUBLIC_API PropertiesCache *GetPropertiesCache() const;
|
||||
|
||||
MarkStatus GetMarkStatus() const
|
||||
{
|
||||
|
@ -93,8 +93,8 @@ public:
|
||||
static bool IsValidIntegerIndex(const JSHandle<JSTaggedValue> &typedArray, JSTaggedValue index);
|
||||
static JSTaggedValue FastGetPropertyByIndex(JSThread *thread, const JSTaggedValue typedarray, uint32_t index,
|
||||
JSType jsType);
|
||||
static JSTaggedValue FastSetPropertyByIndex(JSThread *thread, const JSTaggedValue typedarray, uint32_t index,
|
||||
JSTaggedValue value, JSType jsType);
|
||||
static JSTaggedValue PUBLIC_API FastSetPropertyByIndex(JSThread *thread, const JSTaggedValue typedarray,
|
||||
uint32_t index, JSTaggedValue value, JSType jsType);
|
||||
// only use in TypeArray fast set property
|
||||
static JSTaggedNumber NonEcmaObjectToNumber(JSThread *thread, const JSTaggedValue tagged);
|
||||
static JSTaggedValue GetOffHeapBuffer(JSThread *thread, JSHandle<JSTypedArray> &typedArray);
|
||||
|
@ -113,7 +113,7 @@ public:
|
||||
const JSHandle<JSTaggedValue> &ihclass,
|
||||
const JSHandle<JSHClass> &constructorHClass);
|
||||
|
||||
static bool MatchTrackType(TrackType trackType, JSTaggedValue value);
|
||||
static bool PUBLIC_API MatchTrackType(TrackType trackType, JSTaggedValue value);
|
||||
private:
|
||||
static JSHandle<NameDictionary> BuildDictionaryProperties(JSThread *thread, const JSHandle<JSObject> &object,
|
||||
JSHandle<TaggedArray> &keys,
|
||||
|
@ -92,7 +92,7 @@ public:
|
||||
return desc_;
|
||||
}
|
||||
|
||||
CString GetNormalizedFileDesc() const;
|
||||
CString PUBLIC_API GetNormalizedFileDesc() const;
|
||||
|
||||
void SetHapPath(const CString &hapPath)
|
||||
{
|
||||
|
@ -35,16 +35,17 @@ public:
|
||||
static void ExtractObjectDatas(JSThread *thread, const JSPandaFile *jsPandaFile, size_t index,
|
||||
JSMutableHandle<TaggedArray> elements, JSMutableHandle<TaggedArray> properties,
|
||||
JSHandle<ConstantPool> constpool, const CString &entryPoint = "");
|
||||
static void ExtractObjectDatas(JSThread *thread, const JSPandaFile *jsPandaFile, EntityId id,
|
||||
JSMutableHandle<TaggedArray> elements, JSMutableHandle<TaggedArray> properties,
|
||||
JSHandle<ConstantPool> constpool, const CString &entryPoint = "",
|
||||
bool isLoadedAOT = false,
|
||||
JSHandle<AOTLiteralInfo> entryIndexes = JSHandle<AOTLiteralInfo>());
|
||||
static PUBLIC_API void ExtractObjectDatas(JSThread *thread, const JSPandaFile *jsPandaFile, EntityId id,
|
||||
JSMutableHandle<TaggedArray> elements,
|
||||
JSMutableHandle<TaggedArray> properties,
|
||||
JSHandle<ConstantPool> constpool, const CString &entryPoint = "",
|
||||
bool isLoadedAOT = false,
|
||||
JSHandle<AOTLiteralInfo> entryIndexes = JSHandle<AOTLiteralInfo>());
|
||||
|
||||
static JSHandle<TaggedArray> GetDatasIgnoreType(JSThread *thread, const JSPandaFile *jsPandaFile, size_t index,
|
||||
JSHandle<ConstantPool> constpool, const CString &entryPoint = "");
|
||||
static JSHandle<TaggedArray> GetDatasIgnoreType(JSThread *thread, const JSPandaFile *jsPandaFile, EntityId id,
|
||||
JSHandle<ConstantPool> constpool, const CString &entryPoint = "",
|
||||
static PUBLIC_API JSHandle<TaggedArray> GetDatasIgnoreType(JSThread *thread, const JSPandaFile *jsPandaFile,
|
||||
EntityId id, JSHandle<ConstantPool> constpool, const CString &entryPoint = "",
|
||||
bool isLoadedAOT = false, JSHandle<AOTLiteralInfo> entryIndexes = JSHandle<AOTLiteralInfo>(),
|
||||
ElementsKind *newKind = nullptr, ClassKind classKind = ClassKind::NON_SENDABLE);
|
||||
static JSHandle<TaggedArray> GetDatasIgnoreTypeForClass(JSThread *thread, const JSPandaFile *jsPandaFile,
|
||||
|
@ -38,7 +38,7 @@ public:
|
||||
static constexpr uint8_t INVALID_IC_SLOT = 0xFFU;
|
||||
static constexpr uint16_t MAX_SLOT_SIZE = 0xFFFFU;
|
||||
|
||||
explicit MethodLiteral(EntityId methodId);
|
||||
PUBLIC_API explicit MethodLiteral(EntityId methodId);
|
||||
MethodLiteral() = delete;
|
||||
~MethodLiteral() = default;
|
||||
|
||||
@ -72,7 +72,7 @@ public:
|
||||
callField_ = IsAotCodeBit::Update(callField_, isCompiled);
|
||||
}
|
||||
|
||||
void Initialize(const JSPandaFile *jsPandaFile);
|
||||
void PUBLIC_API Initialize(const JSPandaFile *jsPandaFile);
|
||||
|
||||
bool HaveThisWithCallField() const
|
||||
{
|
||||
@ -320,8 +320,8 @@ public:
|
||||
static std::string PUBLIC_API ParseFunctionName(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
static CString PUBLIC_API ParseFunctionNameToCString(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
|
||||
static uint32_t GetCodeSize(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
static CString GetRecordName(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
static uint32_t PUBLIC_API GetCodeSize(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
static CString PUBLIC_API GetRecordName(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
static const char PUBLIC_API *GetRecordNameWithSymbol(const JSPandaFile *jsPandaFile, EntityId methodId);
|
||||
|
||||
const uint8_t *GetBytecodeArray() const
|
||||
|
@ -23,7 +23,7 @@ class TypeLiteralExtractor {
|
||||
using TypeLiteralValue = std::variant<uint32_t, CString>;
|
||||
|
||||
public:
|
||||
explicit TypeLiteralExtractor(const JSPandaFile *jsPandaFile, const uint32_t typeOffset);
|
||||
explicit PUBLIC_API TypeLiteralExtractor(const JSPandaFile *jsPandaFile, const uint32_t typeOffset);
|
||||
~TypeLiteralExtractor() = default;
|
||||
NO_COPY_SEMANTIC(TypeLiteralExtractor);
|
||||
NO_MOVE_SEMANTIC(TypeLiteralExtractor);
|
||||
@ -166,7 +166,7 @@ class TypeAnnotationExtractor {
|
||||
using LiteralTag = panda_file::LiteralTag;
|
||||
|
||||
public:
|
||||
explicit TypeAnnotationExtractor(const JSPandaFile *jsPandaFile, const uint32_t methodOffset);
|
||||
explicit PUBLIC_API TypeAnnotationExtractor(const JSPandaFile *jsPandaFile, const uint32_t methodOffset);
|
||||
~TypeAnnotationExtractor() = default;
|
||||
NO_COPY_SEMANTIC(TypeAnnotationExtractor);
|
||||
NO_MOVE_SEMANTIC(TypeAnnotationExtractor);
|
||||
@ -191,7 +191,7 @@ public:
|
||||
return isNamespace_;
|
||||
}
|
||||
|
||||
void Print() const;
|
||||
void PUBLIC_API Print() const;
|
||||
|
||||
private:
|
||||
static constexpr const char *TYPE_ANNO_ELEMENT_NAME = "_TypeOfInstruction";
|
||||
|
@ -53,10 +53,11 @@ float CStringToF(const CString &str);
|
||||
double CStringToD(const CString &str);
|
||||
|
||||
CString ConvertToString(const std::string &str);
|
||||
std::string ConvertToStdString(const CString &str);
|
||||
std::string PUBLIC_API ConvertToStdString(const CString &str);
|
||||
|
||||
// '\u0000' is skip according to holdZero
|
||||
CString ConvertToString(const ecmascript::EcmaString *s, StringConvertedUsage usage = StringConvertedUsage::PRINT);
|
||||
CString PUBLIC_API ConvertToString(const ecmascript::EcmaString *s,
|
||||
StringConvertedUsage usage = StringConvertedUsage::PRINT);
|
||||
CString ConvertToString(ecmascript::JSTaggedValue key);
|
||||
|
||||
template<class T>
|
||||
|
@ -42,11 +42,11 @@ public:
|
||||
|
||||
int Insert(uint32_t position, size_t len);
|
||||
|
||||
int Emit(const uint8_t *data, size_t len);
|
||||
int PUBLIC_API Emit(const uint8_t *data, size_t len);
|
||||
|
||||
int EmitSelf(size_t offset, size_t len);
|
||||
|
||||
int EmitChar(uint8_t c);
|
||||
int PUBLIC_API EmitChar(uint8_t c);
|
||||
|
||||
int EmitStr(const char *str);
|
||||
|
||||
|
@ -93,7 +93,7 @@ public:
|
||||
BUILTINS_STUB_START = Message_StringCharCodeAt,
|
||||
BUILTINS_STUB_LAST = Message_ArrayConstructor,
|
||||
};
|
||||
static const std::string& GetMessageString(int id);
|
||||
static const std::string& PUBLIC_API GetMessageString(int id);
|
||||
|
||||
static bool IsBuiltinsStubMessageString(int id)
|
||||
{
|
||||
|
@ -410,7 +410,7 @@ public:
|
||||
|
||||
const JSPandaFile *PUBLIC_API GetJSPandaFile() const;
|
||||
uint32_t GetCodeSize() const;
|
||||
MethodLiteral *GetMethodLiteral() const;
|
||||
MethodLiteral *PUBLIC_API GetMethodLiteral() const;
|
||||
|
||||
const char *PUBLIC_API GetMethodName() const;
|
||||
const char *PUBLIC_API GetMethodName(const JSPandaFile *file) const;
|
||||
|
@ -52,7 +52,7 @@ public:
|
||||
JSTaggedValue GetModuleNamespaceInternal(JSTaggedValue localName, JSTaggedValue currentModule);
|
||||
// deprecated end
|
||||
|
||||
JSHandle<SourceTextModule> HostGetImportedModule(const CString &referencingModule);
|
||||
JSHandle<SourceTextModule> PUBLIC_API HostGetImportedModule(const CString &referencingModule);
|
||||
JSHandle<SourceTextModule> HostGetImportedModule(JSTaggedValue referencing);
|
||||
JSTaggedValue HostGetImportedModule(void *src);
|
||||
bool IsImportedModuleLoaded(JSTaggedValue referencing);
|
||||
@ -89,7 +89,7 @@ public:
|
||||
isExecuteBuffer_ = mode;
|
||||
}
|
||||
|
||||
static CString GetRecordName(JSTaggedValue module);
|
||||
static CString PUBLIC_API GetRecordName(JSTaggedValue module);
|
||||
static int GetExportObjectIndex(EcmaVM *vm, JSHandle<SourceTextModule> ecmaModule, const std::string &key);
|
||||
|
||||
uint32_t NextModuleAsyncEvaluatingOrdinal()
|
||||
|
@ -198,7 +198,7 @@ public:
|
||||
const void *buffer = nullptr, size_t size = 0, bool excuteFromJob = false);
|
||||
|
||||
// 15.2.1.16.4 Instantiate()
|
||||
static int Instantiate(JSThread *thread, const JSHandle<JSTaggedValue> &moduleHdl,
|
||||
static int PUBLIC_API Instantiate(JSThread *thread, const JSHandle<JSTaggedValue> &moduleHdl,
|
||||
bool excuteFromJob = false);
|
||||
static void InstantiateCJS(JSThread *thread, const JSHandle<SourceTextModule> ¤tModule,
|
||||
const JSHandle<SourceTextModule> &requiredModule);
|
||||
|
@ -97,8 +97,8 @@ public:
|
||||
static constexpr size_t APP_PREFIX_SIZE = 5;
|
||||
static constexpr size_t BUNDLE_INSTALL_PATH_LEN = 25;
|
||||
|
||||
static CString ConcatFileNameWithMerge(JSThread *thread, const JSPandaFile *jsPandaFile,
|
||||
CString &baseFileName, CString recordName, CString requestName);
|
||||
static CString PUBLIC_API ConcatFileNameWithMerge(JSThread *thread, const JSPandaFile *jsPandaFile,
|
||||
CString &baseFileName, CString recordName, CString requestName);
|
||||
static void ParseOhmUrl(EcmaVM *vm, const CString &inputFileName,
|
||||
CString &outBaseFileName, CString &outEntryPoint);
|
||||
static CString ParseUrl(EcmaVM *vm, const CString &recordName);
|
||||
|
@ -205,7 +205,8 @@ public:
|
||||
JSHandle<ConstantPool> NewConstantPool(uint32_t capacity);
|
||||
JSHandle<Program> NewProgram();
|
||||
|
||||
JSHandle<JSObject> GetJSError(const ErrorType &errorType, const char *data = nullptr, bool needCheckStack = true);
|
||||
JSHandle<JSObject> PUBLIC_API GetJSError(const ErrorType &errorType, const char *data = nullptr,
|
||||
bool needCheckStack = true);
|
||||
|
||||
JSHandle<JSObject> NewJSError(const ErrorType &errorType, const JSHandle<EcmaString> &message,
|
||||
bool needCheckStack = true);
|
||||
@ -322,9 +323,9 @@ public:
|
||||
JSHandle<job::PendingJob> NewPendingJob(const JSHandle<JSFunction> &func, const JSHandle<TaggedArray> &argv);
|
||||
|
||||
JSHandle<JSArray> NewJSArray();
|
||||
JSHandle<JSArray> NewJSArray(size_t length, JSHandle<JSHClass> &hclass);
|
||||
JSHandle<TaggedArray> NewJsonFixedArray(size_t start, size_t length,
|
||||
const std::vector<JSHandle<JSTaggedValue>> &vec);
|
||||
JSHandle<JSArray> PUBLIC_API NewJSArray(size_t length, JSHandle<JSHClass> &hclass);
|
||||
JSHandle<TaggedArray> PUBLIC_API NewJsonFixedArray(size_t start, size_t length,
|
||||
const std::vector<JSHandle<JSTaggedValue>> &vec);
|
||||
|
||||
JSHandle<JSProxy> NewJSProxy(const JSHandle<JSTaggedValue> &target, const JSHandle<JSTaggedValue> &handler);
|
||||
JSHandle<JSRealm> NewJSRealm();
|
||||
@ -360,14 +361,14 @@ public:
|
||||
JSHandle<MutantTaggedArray> NewAndCopyMutantTaggedArrayByObject(JSHandle<JSObject> thisObjHandle,
|
||||
uint32_t newLength, uint32_t oldLength,
|
||||
uint32_t k = 0);
|
||||
JSHandle<TaggedArray> NewTaggedArray(uint32_t length, JSTaggedValue initVal = JSTaggedValue::Hole());
|
||||
JSHandle<TaggedArray> PUBLIC_API NewTaggedArray(uint32_t length, JSTaggedValue initVal = JSTaggedValue::Hole());
|
||||
JSHandle<TaggedArray> NewTaggedArray(uint32_t length, JSTaggedValue initVal, bool nonMovable);
|
||||
JSHandle<TaggedArray> NewTaggedArray(uint32_t length, JSTaggedValue initVal, MemSpaceType spaceType);
|
||||
// Copy on write array is allocated in nonmovable space by default.
|
||||
JSHandle<COWTaggedArray> NewCOWTaggedArray(uint32_t length, JSTaggedValue initVal = JSTaggedValue::Hole());
|
||||
JSHandle<COWMutantTaggedArray> NewCOWMutantTaggedArray(uint32_t length, JSTaggedType initVal = base::SPECIAL_HOLE);
|
||||
JSHandle<MutantTaggedArray> NewMutantTaggedArray(uint32_t length, JSTaggedType initVal = base::SPECIAL_HOLE);
|
||||
JSHandle<TaggedArray> NewDictionaryArray(uint32_t length);
|
||||
JSHandle<TaggedArray> PUBLIC_API NewDictionaryArray(uint32_t length);
|
||||
JSHandle<JSForInIterator> NewJSForinIterator(const JSHandle<JSTaggedValue> &obj,
|
||||
const JSHandle<JSTaggedValue> keys,
|
||||
const JSHandle<JSTaggedValue> cachedHclass);
|
||||
@ -389,17 +390,17 @@ public:
|
||||
MemSpaceType type = MemSpaceType::SEMI_SPACE,
|
||||
ElementsKind kind = ElementsKind::GENERIC);
|
||||
JSHandle<TaggedArray> CopyPartArray(const JSHandle<TaggedArray> &old, uint32_t start, uint32_t end);
|
||||
JSHandle<TaggedArray> CopyArray(const JSHandle<TaggedArray> &old, uint32_t oldLength, uint32_t newLength,
|
||||
JSTaggedValue initVal = JSTaggedValue::Hole(),
|
||||
MemSpaceType type = MemSpaceType::SEMI_SPACE,
|
||||
ElementsKind kind = ElementsKind::GENERIC);
|
||||
JSHandle<TaggedArray> PUBLIC_API CopyArray(const JSHandle<TaggedArray> &old, uint32_t oldLength, uint32_t newLength,
|
||||
JSTaggedValue initVal = JSTaggedValue::Hole(),
|
||||
MemSpaceType type = MemSpaceType::SEMI_SPACE,
|
||||
ElementsKind kind = ElementsKind::GENERIC);
|
||||
JSHandle<TaggedArray> CopyFromEnumCache(const JSHandle<TaggedArray> &old);
|
||||
JSHandle<TaggedArray> CloneProperties(const JSHandle<TaggedArray> &old);
|
||||
JSHandle<TaggedArray> CloneProperties(const JSHandle<TaggedArray> &old, const JSHandle<JSTaggedValue> &env,
|
||||
const JSHandle<JSObject> &obj);
|
||||
|
||||
JSHandle<LayoutInfo> CreateLayoutInfo(int properties, MemSpaceType type = MemSpaceType::SEMI_SPACE,
|
||||
GrowMode mode = GrowMode::GROW);
|
||||
JSHandle<LayoutInfo> PUBLIC_API CreateLayoutInfo(int properties, MemSpaceType type = MemSpaceType::SEMI_SPACE,
|
||||
GrowMode mode = GrowMode::GROW);
|
||||
|
||||
JSHandle<LayoutInfo> ExtendLayoutInfo(const JSHandle<LayoutInfo> &old, int properties);
|
||||
|
||||
@ -499,7 +500,7 @@ public:
|
||||
template<typename T, typename S>
|
||||
inline void NewJSIntlIcuData(const JSHandle<T> &obj, const S &icu, const DeleteEntryPoint &callback);
|
||||
|
||||
EcmaString *InternString(const JSHandle<JSTaggedValue> &key);
|
||||
EcmaString *PUBLIC_API InternString(const JSHandle<JSTaggedValue> &key);
|
||||
|
||||
inline JSHandle<JSNativePointer> NewJSNativePointer(void *externalPointer,
|
||||
const DeleteEntryPoint &callBack = nullptr,
|
||||
@ -553,25 +554,25 @@ public:
|
||||
JSHandle<TSNamespaceType> NewTSNamespaceType();
|
||||
|
||||
// ----------------------------------- new string ----------------------------------------
|
||||
JSHandle<EcmaString> NewFromASCII(std::string_view data);
|
||||
JSHandle<EcmaString> NewFromUtf8(std::string_view data);
|
||||
JSHandle<EcmaString> PUBLIC_API NewFromASCII(std::string_view data);
|
||||
JSHandle<EcmaString> PUBLIC_API NewFromUtf8(std::string_view data);
|
||||
JSHandle<EcmaString> NewFromUtf16(std::u16string_view data);
|
||||
|
||||
JSHandle<EcmaString> NewFromStdString(const std::string &data);
|
||||
|
||||
JSHandle<EcmaString> NewFromUtf8(const uint8_t *utf8Data, uint32_t utf8Len);
|
||||
|
||||
JSHandle<EcmaString> NewFromUtf16(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
JSHandle<EcmaString> PUBLIC_API NewFromUtf16(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
JSHandle<EcmaString> NewFromUtf16Compress(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
JSHandle<EcmaString> NewFromUtf16NotCompress(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
|
||||
JSHandle<EcmaString> NewFromUtf8Literal(const uint8_t *utf8Data, uint32_t utf8Len);
|
||||
JSHandle<EcmaString> NewFromUtf8LiteralCompress(const uint8_t *utf8Data, uint32_t utf8Len);
|
||||
JSHandle<EcmaString> NewCompressedUtf8(const uint8_t *utf8Data, uint32_t utf8Len);
|
||||
JSHandle<EcmaString> PUBLIC_API NewFromUtf8LiteralCompress(const uint8_t *utf8Data, uint32_t utf8Len);
|
||||
JSHandle<EcmaString> PUBLIC_API NewCompressedUtf8(const uint8_t *utf8Data, uint32_t utf8Len);
|
||||
|
||||
JSHandle<EcmaString> NewFromUtf16Literal(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
JSHandle<EcmaString> NewFromUtf16LiteralCompress(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
JSHandle<EcmaString> NewFromUtf16LiteralNotCompress(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
JSHandle<EcmaString> PUBLIC_API NewFromUtf16LiteralNotCompress(const uint16_t *utf16Data, uint32_t utf16Len);
|
||||
|
||||
inline EcmaString *AllocLineStringObject(size_t size);
|
||||
inline EcmaString *AllocOldSpaceLineStringObject(size_t size);
|
||||
@ -584,7 +585,7 @@ public:
|
||||
const JSHandle<EcmaString> &secondString);
|
||||
|
||||
// used for creating Function
|
||||
JSHandle<JSObject> NewJSObject(const JSHandle<JSHClass> &jshclass);
|
||||
JSHandle<JSObject> PUBLIC_API NewJSObject(const JSHandle<JSHClass> &jshclass);
|
||||
|
||||
// used for creating jshclass in Builtins, Function, Class_Linker
|
||||
JSHandle<JSHClass> NewEcmaHClass(uint32_t size, JSType type, const JSHandle<JSTaggedValue> &prototype);
|
||||
@ -592,8 +593,8 @@ public:
|
||||
const JSHandle<JSTaggedValue> &prototype);
|
||||
|
||||
// used for creating jshclass in Builtins, Function, Class_Linker
|
||||
JSHandle<JSHClass> NewEcmaHClass(uint32_t size, JSType type,
|
||||
uint32_t inlinedProps = JSHClass::DEFAULT_CAPACITY_OF_IN_OBJECTS);
|
||||
JSHandle<JSHClass> PUBLIC_API NewEcmaHClass(uint32_t size, JSType type,
|
||||
uint32_t inlinedProps = JSHClass::DEFAULT_CAPACITY_OF_IN_OBJECTS);
|
||||
|
||||
// It is used to provide iterators for non ECMA standard jsapi containers.
|
||||
JSHandle<JSAPIPlainArray> NewJSAPIPlainArray(uint32_t capacity);
|
||||
|
@ -61,7 +61,7 @@ public:
|
||||
const JSHandle<JSTaggedValue> &value, const PropertyAttributes &attr);
|
||||
|
||||
void UpdateDetector();
|
||||
static void UpdateDetector(const JSThread *thread, JSTaggedValue receiver, JSTaggedValue key);
|
||||
static void PUBLIC_API UpdateDetector(const JSThread *thread, JSTaggedValue receiver, JSTaggedValue key);
|
||||
static void UpdateDetectorOnSetPrototype(const JSThread *thread, JSTaggedValue receiver);
|
||||
static bool IsDetectorName(JSHandle<GlobalEnv> env, JSTaggedValue key);
|
||||
|
||||
|
@ -14,6 +14,7 @@
|
||||
*/
|
||||
#ifndef ECMASCRIPT_COMPILER_APP_CRYPTO_H
|
||||
#define ECMASCRIPT_COMPILER_APP_CRYPTO_H
|
||||
#include "ecmascript/common.h"
|
||||
|
||||
namespace panda::ecmascript::ohos {
|
||||
// After referencing the kernel header file, need to remove it
|
||||
@ -35,9 +36,9 @@ struct code_decrypto_arg {
|
||||
void *arg2;
|
||||
};
|
||||
#if defined(CODE_ENCRYPTION_ENABLE)
|
||||
int DecryptSetKey(int fd, int srcAppId);
|
||||
int DecrypRemoveKey(int fd, int srcAppId);
|
||||
int DecryptAssociateKey(int fd, int dstAppId, int srcAppId);
|
||||
int PUBLIC_API DecryptSetKey(int fd, int srcAppId);
|
||||
int PUBLIC_API DecrypRemoveKey(int fd, int srcAppId);
|
||||
int PUBLIC_API DecryptAssociateKey(int fd, int dstAppId, int srcAppId);
|
||||
int DecrypRemoveAssociateKey(int fd, int dstAppId, int srcAppId);
|
||||
#endif
|
||||
} // namespace panda::ecmascript::kungfu
|
||||
|
@ -56,7 +56,7 @@ public:
|
||||
virtual ~PGOProfiler();
|
||||
|
||||
static ProfileType CreateRecordProfileType(ApEntityId abcId, ApEntityId classId);
|
||||
void ProfileCreateObject(JSTaggedType object, ApEntityId abcId, int32_t traceId);
|
||||
void PUBLIC_API ProfileCreateObject(JSTaggedType object, ApEntityId abcId, int32_t traceId);
|
||||
void ProfileDefineClass(JSTaggedType ctor);
|
||||
void ProfileDefineGetterSetter(
|
||||
JSHClass *receverHClass, JSHClass *holderHClass, const JSHandle<JSTaggedValue> &func, int32_t pcOffset);
|
||||
|
@ -124,15 +124,15 @@ public:
|
||||
recordSimpleInfos_->MatchAndMarkMethod(GetNormalizedFileDesc(jsPandaFile), recordName, methodName, methodId);
|
||||
}
|
||||
|
||||
void GetMismatchResult(const JSPandaFile *jsPandaFile, uint32_t &totalMethodCount, uint32_t &mismatchMethodCount,
|
||||
std::set<std::pair<std::string, CString>> &mismatchMethodSet) const;
|
||||
void PUBLIC_API GetMismatchResult(const JSPandaFile *jsPandaFile, uint32_t &totalMethodCount,
|
||||
uint32_t &mismatchMethodCount, std::set<std::pair<std::string, CString>> &mismatchMethodSet) const;
|
||||
|
||||
bool IsMethodMatchEnabled() const
|
||||
{
|
||||
return header_->SupportMethodChecksum();
|
||||
}
|
||||
|
||||
bool GetHClassTreeDesc(PGOSampleType profileType, PGOHClassTreeDesc **desc) const;
|
||||
bool PUBLIC_API GetHClassTreeDesc(PGOSampleType profileType, PGOHClassTreeDesc **desc) const;
|
||||
|
||||
template <typename Callback>
|
||||
bool IterateHClassTreeDesc(Callback callback) const
|
||||
@ -200,7 +200,7 @@ private:
|
||||
|
||||
bool LoadAPBinaryFile(int prot = PAGE_PROT_READ);
|
||||
void UnLoadAPBinaryFile();
|
||||
CString GetNormalizedFileDesc(const JSPandaFile *jsPandaFile) const;
|
||||
CString PUBLIC_API GetNormalizedFileDesc(const JSPandaFile *jsPandaFile) const;
|
||||
void LoadAbcIdPool(const std::shared_ptr<PGOAbcFilePool> &externalAbcFilePool, PGOContext &context,
|
||||
void *addr);
|
||||
|
||||
|
@ -65,7 +65,7 @@ public:
|
||||
}
|
||||
|
||||
void SamplePandaFileInfo(uint32_t checksum, const CString &abcName);
|
||||
bool GetPandaFileId(const CString &abcName, ApEntityId &entryId);
|
||||
bool PUBLIC_API GetPandaFileId(const CString &abcName, ApEntityId &entryId);
|
||||
bool GetPandaFileDesc(ApEntityId abcId, CString &desc);
|
||||
void Merge(const PGORecordDetailInfos &recordInfos);
|
||||
void Merge(const PGOPandaFileInfos &pandaFileInfos);
|
||||
|
@ -129,7 +129,7 @@ public:
|
||||
*(&methodName_ + len) = '\0';
|
||||
}
|
||||
|
||||
static uint32_t CalcChecksum(const char *name, const uint8_t *byteCodeArray, uint32_t byteCodeLength);
|
||||
static uint32_t PUBLIC_API CalcChecksum(const char *name, const uint8_t *byteCodeArray, uint32_t byteCodeLength);
|
||||
|
||||
static uint32_t CalcOpCodeChecksum(const uint8_t *byteCodeArray, uint32_t byteCodeLength);
|
||||
|
||||
|
@ -29,7 +29,7 @@ namespace panda::ecmascript::pgo {
|
||||
class PGOProfilerManager {
|
||||
public:
|
||||
using ApGenMode = PGOProfilerEncoder::ApGenMode;
|
||||
static PGOProfilerManager *GetInstance();
|
||||
static PGOProfilerManager *PUBLIC_API GetInstance();
|
||||
|
||||
static void SavingSignalHandler(int signo);
|
||||
|
||||
@ -232,9 +232,9 @@ public:
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool MergeApFiles(const std::string &inFiles, const std::string &outPath, uint32_t hotnessThreshold,
|
||||
ApGenMode mode);
|
||||
static bool MergeApFiles(uint32_t checksum, PGOProfilerDecoder &merger);
|
||||
static bool PUBLIC_API MergeApFiles(const std::string &inFiles, const std::string &outPath,
|
||||
uint32_t hotnessThreshold, ApGenMode mode);
|
||||
static bool PUBLIC_API MergeApFiles(uint32_t checksum, PGOProfilerDecoder &merger);
|
||||
|
||||
private:
|
||||
bool InitializeData()
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include "mem/mem.h"
|
||||
#include "libpandafile/file.h"
|
||||
#include "ecmascript/common.h"
|
||||
|
||||
namespace panda::ecmascript::pgo {
|
||||
static constexpr Alignment ALIGN_SIZE = Alignment::LOG_ALIGN_4;
|
||||
@ -48,9 +49,9 @@ public:
|
||||
static const std::string RUNTIME_AP_PREFIX;
|
||||
static const std::string MERGED_AP_PREFIX;
|
||||
static const std::string DEFAULT_AP_NAME;
|
||||
static std::string GetRuntimeApName(const std::string &ohosModuleName);
|
||||
static std::string GetMergedApName(const std::string &ohosModuleName);
|
||||
static std::string GetOhosPkgApName(const std::string &ohosModuleName);
|
||||
static std::string PUBLIC_API GetRuntimeApName(const std::string &ohosModuleName);
|
||||
static std::string PUBLIC_API GetMergedApName(const std::string &ohosModuleName);
|
||||
static std::string PUBLIC_API GetOhosPkgApName(const std::string &ohosModuleName);
|
||||
|
||||
private:
|
||||
static std::string GetBriefApName(const std::string &ohosModuleName);
|
||||
|
@ -17,10 +17,11 @@
|
||||
#define ECMASCRIPT_PLATFORM_DIRECTORY_H
|
||||
|
||||
#include <string>
|
||||
#include "ecmascript/common.h"
|
||||
|
||||
namespace panda::ecmascript {
|
||||
bool ForceCreateDirectory(const std::string &path);
|
||||
bool SetDirModeAsDefault(const std::string &path);
|
||||
bool SetFileModeAsDefault(const std::string &filename);
|
||||
bool PUBLIC_API ForceCreateDirectory(const std::string &path);
|
||||
bool PUBLIC_API SetDirModeAsDefault(const std::string &path);
|
||||
bool PUBLIC_API SetFileModeAsDefault(const std::string &filename);
|
||||
} // namespace panda::ecmascript
|
||||
#endif // ECMASCRIPT_PLATFORM_DIRECTORY_H
|
||||
|
@ -63,20 +63,20 @@ using fd_t = int;
|
||||
#define FILE_SUCCESS 1
|
||||
#define FILE_FAILED 0
|
||||
|
||||
std::string GetFileDelimiter();
|
||||
std::string GetPathSeparator();
|
||||
bool RealPath(const std::string &path, std::string &realPath, bool readOnly = true);
|
||||
std::string PUBLIC_API GetFileDelimiter();
|
||||
std::string PUBLIC_API GetPathSeparator();
|
||||
bool PUBLIC_API RealPath(const std::string &path, std::string &realPath, bool readOnly = true);
|
||||
void DPrintf(fd_t fd, const std::string &buffer);
|
||||
void Close(fd_t fd);
|
||||
void FSync(fd_t fd);
|
||||
MemMap FileMap(const char *fileName, int flag, int prot, int64_t offset = 0);
|
||||
MemMap FileMapForAlignAddress(const char *fileName, int flag, int prot,
|
||||
int64_t offset, uint32_t offStart);
|
||||
int FileUnMap(MemMap addr);
|
||||
MemMap PUBLIC_API FileMapForAlignAddress(const char *fileName, int flag, int prot,
|
||||
int64_t offset, uint32_t offStart);
|
||||
int PUBLIC_API FileUnMap(MemMap addr);
|
||||
JSHandle<EcmaString> ResolveFilenameFromNative(JSThread *thread, JSTaggedValue dirname,
|
||||
JSTaggedValue request);
|
||||
bool FileExist(const char *filename);
|
||||
int Unlink(const char *filename);
|
||||
bool PUBLIC_API FileExist(const char *filename);
|
||||
int PUBLIC_API Unlink(const char *filename);
|
||||
bool TryToRemoveSO(JSThread *thread, JSHandle<SourceTextModule> module);
|
||||
void *LoadLib(const std::string &libname);
|
||||
void *FindSymbol(void *handle, const char *symbol);
|
||||
|
@ -67,12 +67,12 @@ public:
|
||||
~ArkStackMapBuilder() = default;
|
||||
std::pair<std::shared_ptr<uint8_t>, uint32_t> PUBLIC_API Run(std::unique_ptr<uint8_t []> stackMapAddr,
|
||||
uintptr_t hostCodeSectionAddr, Triple triple);
|
||||
std::pair<std::shared_ptr<uint8_t>, uint32_t> GenerateArkStackMap(
|
||||
std::pair<std::shared_ptr<uint8_t>, uint32_t> PUBLIC_API GenerateArkStackMap(
|
||||
CGStackMapInfo &stackMapInfo, Triple triple);
|
||||
void Collect(std::unique_ptr<uint8_t []> stackMapAddr,
|
||||
uintptr_t hostCodeSectionAddr,
|
||||
uintptr_t hostCodeSectionOffset,
|
||||
CGStackMapInfo &stackMapInfo);
|
||||
void PUBLIC_API Collect(std::unique_ptr<uint8_t []> stackMapAddr,
|
||||
uintptr_t hostCodeSectionAddr,
|
||||
uintptr_t hostCodeSectionOffset,
|
||||
CGStackMapInfo &stackMapInfo);
|
||||
void SetTraceStackMap(bool flag)
|
||||
{
|
||||
traceStackMap_ = flag;
|
||||
|
@ -23,14 +23,14 @@ class SubtypingOperator {
|
||||
public:
|
||||
static constexpr uint32_t DEFAULT_SUPERS_CAPACITY = 4;
|
||||
|
||||
static bool CheckBaseClass(const JSThread *thread, const JSHandle<TSClassType> &classType);
|
||||
PUBLIC_API static bool CheckBaseClass(const JSThread *thread, const JSHandle<TSClassType> &classType);
|
||||
|
||||
static bool CheckSubtyping(const JSThread *thread, const JSHandle<TSClassType> &classType);
|
||||
PUBLIC_API static bool CheckSubtyping(const JSThread *thread, const JSHandle<TSClassType> &classType);
|
||||
|
||||
static void MergeClassField(const JSThread *thread, const JSHandle<TSClassType> &classType);
|
||||
PUBLIC_API static void MergeClassField(const JSThread *thread, const JSHandle<TSClassType> &classType);
|
||||
|
||||
static void FillTSInheritInfo(JSThread *thread, const JSHandle<TSClassType> &classType,
|
||||
const JSHandle<JSHClass> &ihcHandle);
|
||||
PUBLIC_API static void FillTSInheritInfo(JSThread *thread, const JSHandle<TSClassType> &classType,
|
||||
const JSHandle<JSHClass> &ihcHandle);
|
||||
|
||||
static void GenVTable(const JSThread *thread, const JSHandle<JSHClass> &ihcHandle,
|
||||
const JSHandle<JSHClass> &phcHandle, const JSHandle<JSHClass> &eIhcHandle);
|
||||
|
@ -40,22 +40,22 @@ public:
|
||||
{
|
||||
return ENTRY_SIZE;
|
||||
}
|
||||
static int Hash(const JSTaggedValue &key);
|
||||
static int PUBLIC_API Hash(const JSTaggedValue &key);
|
||||
static int Hash(const uint8_t* str, int strSize);
|
||||
|
||||
static bool IsMatch(const JSTaggedValue &key, const JSTaggedValue &other);
|
||||
static bool PUBLIC_API IsMatch(const JSTaggedValue &key, const JSTaggedValue &other);
|
||||
static bool IsMatch(const uint8_t* str, int size, const JSTaggedValue &other);
|
||||
|
||||
static JSHandle<NameDictionary> Create(const JSThread *thread,
|
||||
int numberOfElements = OrderHashTableT::DEFAULT_ELEMENTS_NUMBER);
|
||||
// Returns the property metaData for the property at entry.
|
||||
PropertyAttributes GetAttributes(int entry) const;
|
||||
void SetAttributes(const JSThread *thread, int entry, const PropertyAttributes &metaData);
|
||||
void SetEntry(const JSThread *thread, int entry, const JSTaggedValue &key, const JSTaggedValue &value,
|
||||
const PropertyAttributes &metaData);
|
||||
PropertyAttributes PUBLIC_API GetAttributes(int entry) const;
|
||||
void PUBLIC_API SetAttributes(const JSThread *thread, int entry, const PropertyAttributes &metaData);
|
||||
void PUBLIC_API SetEntry(const JSThread *thread, int entry, const JSTaggedValue &key, const JSTaggedValue &value,
|
||||
const PropertyAttributes &metaData);
|
||||
void UpdateValueAndAttributes(const JSThread *thread, int entry, const JSTaggedValue &value,
|
||||
const PropertyAttributes &metaData);
|
||||
void UpdateValue(const JSThread *thread, int entry, const JSTaggedValue &value);
|
||||
void PUBLIC_API UpdateValue(const JSThread *thread, int entry, const JSTaggedValue &value);
|
||||
void UpdateAttributes(int entry, const PropertyAttributes &metaData);
|
||||
void ClearEntry(const JSThread *thread, int entry);
|
||||
void GetAllKeys(const JSThread *thread, int offset, TaggedArray *keyArray) const;
|
||||
@ -107,18 +107,18 @@ public:
|
||||
{
|
||||
return ENTRY_SIZE;
|
||||
}
|
||||
static int Hash(const JSTaggedValue &key);
|
||||
static bool IsMatch(const JSTaggedValue &key, const JSTaggedValue &other);
|
||||
static int PUBLIC_API Hash(const JSTaggedValue &key);
|
||||
static bool PUBLIC_API IsMatch(const JSTaggedValue &key, const JSTaggedValue &other);
|
||||
static JSHandle<NumberDictionary> Create(const JSThread *thread,
|
||||
int numberOfElements = OrderHashTableT::DEFAULT_ELEMENTS_NUMBER);
|
||||
// Returns the property metaData for the property at entry.
|
||||
PropertyAttributes GetAttributes(int entry) const;
|
||||
PropertyAttributes PUBLIC_API GetAttributes(int entry) const;
|
||||
void SetAttributes(const JSThread *thread, int entry, const PropertyAttributes &metaData);
|
||||
void SetEntry([[maybe_unused]] const JSThread *thread, int entry, const JSTaggedValue &key,
|
||||
const JSTaggedValue &value, const PropertyAttributes &metaData);
|
||||
void UpdateValueAndAttributes(const JSThread *thread, int entry, const JSTaggedValue &value,
|
||||
const PropertyAttributes &metaData);
|
||||
void UpdateValue(const JSThread *thread, int entry, const JSTaggedValue &value);
|
||||
void PUBLIC_API UpdateValue(const JSThread *thread, int entry, const JSTaggedValue &value);
|
||||
void UpdateAttributes(int entry, const PropertyAttributes &metaData);
|
||||
void ClearEntry(const JSThread *thread, int entry);
|
||||
|
||||
|
@ -113,7 +113,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class TSManager {
|
||||
class PUBLIC_API TSManager {
|
||||
public:
|
||||
explicit TSManager(EcmaVM *vm);
|
||||
~TSManager() = default;
|
||||
|
@ -102,7 +102,7 @@ public:
|
||||
|
||||
bool Find(JSTaggedValue key) const;
|
||||
|
||||
int GetElementIndexByKey(JSTaggedValue key) const;
|
||||
int PUBLIC_API GetElementIndexByKey(JSTaggedValue key) const;
|
||||
void GetAccessorIndexByKey(JSTaggedValue key, std::vector<int> &vec);
|
||||
|
||||
JSTaggedValue TryGetTypeByIndexSign(const uint32_t typeId);
|
||||
|
@ -45,7 +45,7 @@ public:
|
||||
bool enableOptTrackField;
|
||||
};
|
||||
|
||||
explicit TSTypeParser(TSManager *tsManager);
|
||||
explicit PUBLIC_API TSTypeParser(TSManager *tsManager);
|
||||
~TSTypeParser() = default;
|
||||
|
||||
GlobalTSTypeRef PUBLIC_API CreateGT(const JSPandaFile *jsPandaFile, const CString &recordName, uint32_t typeId);
|
||||
|
@ -3,9 +3,17 @@
|
||||
extern "C++" {
|
||||
vtable?for?Initializer;
|
||||
vtable?for?panda::LocalScope;
|
||||
vtable?for?panda::ecmascript::AOTFileInfo;
|
||||
vtable?for?panda::ecmascript::AnFileInfo;
|
||||
vtable?for?panda::ecmascript::kungfu::ArrayLiteralSnapshotInfo;
|
||||
vtable?for?panda::ecmascript::kungfu::ClassLiteralSnapshotInfo;
|
||||
vtable?for?panda::ecmascript::kungfu::MethodSnapshotInfo;
|
||||
vtable?for?panda::ecmascript::kungfu::ObjectLiteralSnapshotInfo;
|
||||
vtable?for?panda::ecmascript::kungfu::StringSnapshotInfo;
|
||||
|
||||
panda::ecmascript::COMMON_HELP_HEAD_MSG;
|
||||
panda::ecmascript::HELP_OPTION_MSG;
|
||||
panda::ecmascript::COMMON_HELP_HEAD_MSG*;
|
||||
panda::ecmascript::HELP_OPTION_MSG*;
|
||||
panda::ecmascript::COMPILER_HELP_HEAD_MSG*;
|
||||
|
||||
panda::ArrayBufferRef::*;
|
||||
panda::BufferRef::*;
|
||||
@ -73,8 +81,8 @@
|
||||
panda::ecmascript::JSThread::*;
|
||||
panda::ecmascript::Chunk::*;
|
||||
panda::ecmascript::WorkSpaceChunk::*;
|
||||
panda::ecmascript::PGOProfilerDecoder::*;
|
||||
panda::ecmascript::PGOProfilerEncoder::*;
|
||||
panda::ecmascript::pgo::PGOProfilerDecoder::*;
|
||||
panda::ecmascript::pgo::PGOProfilerEncoder::*;
|
||||
panda::ecmascript::NativeAreaAllocator::*;
|
||||
|
||||
panda::os::thread::*;
|
||||
@ -89,6 +97,249 @@
|
||||
panda::ecmascript::LockHolder::*;
|
||||
panda::ecmascript::ReadLockHolder::*;
|
||||
panda::ecmascript::WriteLockHolder::*;
|
||||
|
||||
panda::Logger::Message::~Message*;
|
||||
panda::Logger::logger*;
|
||||
panda::ecmascript::AnFileInfo::GenerateMethodToEntryIndexMap*;
|
||||
panda::ecmascript::AnFileInfo::Save*;
|
||||
panda::ecmascript::Barriers::Update*;
|
||||
panda::ecmascript::BigInt::SameValue*;
|
||||
panda::ecmascript::ClassHelper::MatchTrackType*;
|
||||
panda::ecmascript::ConvertToStdString*;
|
||||
panda::ecmascript::ConvertToString*;
|
||||
panda::ecmascript::Deoptimizier::ComputeShift*;
|
||||
panda::ecmascript::Deoptimizier::DisplayItems*;
|
||||
panda::ecmascript::Deoptimizier::EncodeDeoptVregIndex*;
|
||||
panda::ecmascript::DynChunk::Emit*;
|
||||
panda::ecmascript::DynChunk::EmitChar*;
|
||||
panda::ecmascript::EcmaContext::FindConstpool*;
|
||||
panda::ecmascript::EcmaContext::FindOrCreateConstPool*;
|
||||
panda::ecmascript::EcmaContext::SetTSManager*;
|
||||
panda::ecmascript::EcmaString::ComputeHashcode*;
|
||||
panda::ecmascript::EcmaString::GetUtf16DataFlat*;
|
||||
panda::ecmascript::EcmaString::GetUtf8DataFlat*;
|
||||
panda::ecmascript::EcmaString::StringsAreEqual*;
|
||||
panda::ecmascript::EcmaString::ToElementIndex*;
|
||||
panda::ecmascript::EcmaString::ToTypedArrayIndex*;
|
||||
panda::ecmascript::EcmaStringAccessor::EcmaStringAccessor*;
|
||||
panda::ecmascript::EcmaStringAccessor::ToStdString*;
|
||||
panda::ecmascript::EcmaVM::GetGlobalEnv*;
|
||||
panda::ecmascript::EcmaVM::IsEnableElementsKind*;
|
||||
panda::ecmascript::EcmaVM::IsEnablePGOProfiler*;
|
||||
panda::ecmascript::ElementAccessor::ConvertTaggedValueWithElementsKind*;
|
||||
panda::ecmascript::ElementAccessor::Get*;
|
||||
panda::ecmascript::Elements::FixElementsKind*;
|
||||
panda::ecmascript::Elements::IsHole*;
|
||||
panda::ecmascript::Elements::IsInt*;
|
||||
panda::ecmascript::Elements::IsNumber*;
|
||||
panda::ecmascript::Elements::IsObject*;
|
||||
panda::ecmascript::Elements::IsTagged*;
|
||||
panda::ecmascript::Elements::MergeElementsKind*;
|
||||
panda::ecmascript::Elements::MigrateArrayWithKind*;
|
||||
panda::ecmascript::FileExist*;
|
||||
panda::ecmascript::FileMapForAlignAddress*;
|
||||
panda::ecmascript::FileUnMap*;
|
||||
panda::ecmascript::ForceCreateDirectory*;
|
||||
panda::ecmascript::GetFileDelimiter*;
|
||||
panda::ecmascript::GetPathSeparator*;
|
||||
panda::ecmascript::JSAPIArrayList::Set*;
|
||||
panda::ecmascript::JSAPIDeque::Set*;
|
||||
panda::ecmascript::JSAPILinkedList::Set*;
|
||||
panda::ecmascript::JSAPIList::Set*;
|
||||
panda::ecmascript::JSAPIPlainArray::Set*;
|
||||
panda::ecmascript::JSAPIQueue::Set*;
|
||||
panda::ecmascript::JSAPIStack::Set*;
|
||||
panda::ecmascript::JSAPIVector::Set*;
|
||||
panda::ecmascript::JSArray::ArrayCreate*;
|
||||
panda::ecmascript::JSArray::CheckAndCopyArray*;
|
||||
panda::ecmascript::JSFunction::GetOrCreateInitialJSHClass*;
|
||||
panda::ecmascript::JSObject::AddElementInternal*;
|
||||
panda::ecmascript::JSObject::CallSetter*;
|
||||
panda::ecmascript::JSObject::CreateObjectFromProperties*;
|
||||
panda::ecmascript::JSObject::DefinePropertyByLiteral*;
|
||||
panda::ecmascript::JSObject::EnumerableOwnNames*;
|
||||
panda::ecmascript::JSObject::GetProperty*;
|
||||
panda::ecmascript::JSObject::TransitionToDictionary*;
|
||||
panda::ecmascript::JSPandaFile::FindMethodLiteral*;
|
||||
panda::ecmascript::JSPandaFile::GetFunctionKind*;
|
||||
panda::ecmascript::JSPandaFile::GetNormalizedFileDesc*;
|
||||
panda::ecmascript::JSProxy::IsArray*;
|
||||
panda::ecmascript::JSTaggedValue::IsJSCOWArray*;
|
||||
panda::ecmascript::JSTaggedValue::SetProperty*;
|
||||
panda::ecmascript::JSTaggedValue::ToString*;
|
||||
panda::ecmascript::JSTypedArray::FastSetPropertyByIndex*;
|
||||
panda::ecmascript::LiteralDataExtractor::ExtractObjectDatas*;
|
||||
panda::ecmascript::LiteralDataExtractor::GetDatasIgnoreType*;
|
||||
panda::ecmascript::LiteralDataExtractor::GetMethodOffsets*;
|
||||
panda::ecmascript::MessageString::GetMessageString*;
|
||||
panda::ecmascript::MethodLiteral::GetCodeSize*;
|
||||
panda::ecmascript::MethodLiteral::GetMethodName*;
|
||||
panda::ecmascript::MethodLiteral::GetRecordName*;
|
||||
panda::ecmascript::MethodLiteral::Initialize*;
|
||||
panda::ecmascript::MethodLiteral::MethodLiteral*;
|
||||
panda::ecmascript::MethodLiteral::ParseFunctionName*;
|
||||
panda::ecmascript::ModuleManager::GetRecordName*;
|
||||
panda::ecmascript::ModuleManager::HostGetImportedModule*;
|
||||
panda::ecmascript::ModuleManager::HostResolveImportedModuleWithMerge*;
|
||||
panda::ecmascript::ModulePathHelper::ConcatFileNameWithMerge*;
|
||||
panda::ecmascript::NativeAreaAllocator::AllocateBuffer*;
|
||||
panda::ecmascript::NativeAreaAllocator::FreeeBuffer*;
|
||||
panda::ecmascript::NativeAreaAllocator::FreeeArea*;
|
||||
panda::ecmascript::NameDictionary::GetAttributes*;
|
||||
panda::ecmascript::NameDictionary::Hash*;
|
||||
panda::ecmascript::NameDictionary::IsMatch*;
|
||||
panda::ecmascript::NameDictionary::SetAttributes*;
|
||||
panda::ecmascript::NameDictionary::SetEntry*;
|
||||
panda::ecmascript::NameDictionary::UpdateValue*;
|
||||
panda::ecmascript::NumberDictionary::GetAttributes*;
|
||||
panda::ecmascript::NumberDictionary::Hash*;
|
||||
panda::ecmascript::NumberDictionary::IsMatch*;
|
||||
panda::ecmascript::NumberDictionary::UpdateValue*;
|
||||
panda::ecmascript::ObjectFactory::CopyArray*;
|
||||
panda::ecmascript::ObjectFactory::CreateLayoutInfo*;
|
||||
panda::ecmascript::ObjectFactory::GetJSError*;
|
||||
panda::ecmascript::ObjectFactory::InternString*;
|
||||
panda::ecmascript::ObjectFactory::NewCompressedUtf8*;
|
||||
panda::ecmascript::ObjectFactory::NewDictionaryArray*;
|
||||
panda::ecmascript::ObjectFactory::NewEcmaHClass*;
|
||||
panda::ecmascript::ObjectFactory::NewFromASCII*;
|
||||
panda::ecmascript::ObjectFactory::NewFromUtf16*;
|
||||
panda::ecmascript::ObjectFactory::NewFromUtf8*;
|
||||
panda::ecmascript::ObjectFactory::NewFromUtf8LiteralCompress*;
|
||||
panda::ecmascript::ObjectFactory::NewJSArray*;
|
||||
panda::ecmascript::ObjectFactory::NewJSObject*;
|
||||
panda::ecmascript::ObjectFactory::NewJsonFixedArray*;
|
||||
panda::ecmascript::ObjectFactory::NewTaggedArray*;
|
||||
panda::ecmascript::ObjectOperator::UpdateDetector*;
|
||||
panda::ecmascript::PageMap*;
|
||||
panda::ecmascript::PageUnmap*;
|
||||
panda::ecmascript::RealPath*;
|
||||
panda::ecmascript::SetDirModeAsDefault*;
|
||||
panda::ecmascript::SetFileModeAsDefault*;
|
||||
panda::ecmascript::Snapshot::Serialize*;
|
||||
panda::ecmascript::SourceTextModule::Instantiate*;
|
||||
panda::ecmascript::StubFileInfo::Save*;
|
||||
panda::ecmascript::SubtypingOperator::CheckBaseClass*;
|
||||
panda::ecmascript::SubtypingOperator::CheckSubtyping*;
|
||||
panda::ecmascript::SubtypingOperator::FillTSInheritInfo*;
|
||||
panda::ecmascript::SubtypingOperator::MergeClassField*;
|
||||
panda::ecmascript::TSManager::AddConstructorTSHClass*;
|
||||
panda::ecmascript::TSManager::AddInstanceTSHClass*;
|
||||
panda::ecmascript::TSManager::AddNamespacePropType*;
|
||||
panda::ecmascript::TSManager::CanFastCall*;
|
||||
panda::ecmascript::TSManager::CreateArrayType*;
|
||||
panda::ecmascript::TSManager::CreateClassInstanceType*;
|
||||
panda::ecmascript::TSManager::CreateNamespaceType*;
|
||||
panda::ecmascript::TSManager::FastCallFlagIsVaild*;
|
||||
panda::ecmascript::TSManager::GetAOTHClassInfoByIndex*;
|
||||
panda::ecmascript::TSManager::GetArrayParameterTypeGT*;
|
||||
panda::ecmascript::TSManager::GetBuiltinsGateTypeByPt*;
|
||||
panda::ecmascript::TSManager::GetClassType*;
|
||||
panda::ecmascript::TSManager::GetConstantPool*;
|
||||
panda::ecmascript::TSManager::GetConstantPoolIDByMethodOffset*;
|
||||
panda::ecmascript::TSManager::GetConstantPoolId*;
|
||||
panda::ecmascript::TSManager::GetConstructorHClassIndexByClassGateType*;
|
||||
panda::ecmascript::TSManager::GetExportTableFromLiteral*;
|
||||
panda::ecmascript::TSManager::GetExtendedClassType*;
|
||||
panda::ecmascript::TSManager::GetFuncMethodOffset*;
|
||||
panda::ecmascript::TSManager::GetFuncName*;
|
||||
panda::ecmascript::TSManager::GetFuncParameterTypeGT*;
|
||||
panda::ecmascript::TSManager::GetFuncReturnValueTypeGT*;
|
||||
panda::ecmascript::TSManager::GetFuncThisGT*;
|
||||
panda::ecmascript::TSManager::GetFunctionTypeLength*;
|
||||
panda::ecmascript::TSManager::GetHClassIndex*;
|
||||
panda::ecmascript::TSManager::GetHClassIndexByInstanceGateType*;
|
||||
panda::ecmascript::TSManager::GetHClassIndexByObjectType*;
|
||||
panda::ecmascript::TSManager::GetIndexSignType*;
|
||||
panda::ecmascript::TSManager::GetIteratorInstanceElementGt*;
|
||||
panda::ecmascript::TSManager::GetMethodIndex*;
|
||||
panda::ecmascript::TSManager::GetOrCreateTSIteratorInstanceType*;
|
||||
panda::ecmascript::TSManager::GetOrCreateUnionType*;
|
||||
panda::ecmascript::TSManager::GetPropType*;
|
||||
panda::ecmascript::TSManager::GetStringFromConstantPool*;
|
||||
panda::ecmascript::TSManager::GetSuperGateType*;
|
||||
panda::ecmascript::TSManager::GetSuperPropType*;
|
||||
panda::ecmascript::TSManager::GetTSHClass*;
|
||||
panda::ecmascript::TSManager::GetTSType*;
|
||||
panda::ecmascript::TSManager::GetTypeKind*;
|
||||
panda::ecmascript::TSManager::GetTypeStr*;
|
||||
panda::ecmascript::TSManager::GetTypedArrayBuiltinId*;
|
||||
panda::ecmascript::TSManager::HasTSHClass*;
|
||||
panda::ecmascript::TSManager::Initialize*;
|
||||
panda::ecmascript::TSManager::IsAbstractMethod*;
|
||||
panda::ecmascript::TSManager::IsBuiltinClassType*;
|
||||
panda::ecmascript::TSManager::IsBuiltinConstructor*;
|
||||
panda::ecmascript::TSManager::IsBuiltinInstanceType*;
|
||||
panda::ecmascript::TSManager::IsBuiltinObjectMethod*;
|
||||
panda::ecmascript::TSManager::IsDoubleTypedArrayType*;
|
||||
panda::ecmascript::TSManager::IsGetterSetterFunc*;
|
||||
panda::ecmascript::TSManager::IsHotnessFunc*;
|
||||
panda::ecmascript::TSManager::IsIntTypedArrayType*;
|
||||
panda::ecmascript::TSManager::IsMethodSignature*;
|
||||
panda::ecmascript::TSManager::IsNoGC*;
|
||||
panda::ecmascript::TSManager::IsStaticFunc*;
|
||||
panda::ecmascript::TSManager::IsTypedArrayType*;
|
||||
panda::ecmascript::TSManager::IsValidTypedArrayType*;
|
||||
panda::ecmascript::TSManager::MethodOffsetIsVaild*;
|
||||
panda::ecmascript::TSManager::PrintTypeInfo*;
|
||||
panda::ecmascript::TSManager::SetCurConstantPool*;
|
||||
panda::ecmascript::TSManager::SetHotnessFunc*;
|
||||
panda::ecmascript::TSManager::TSManager*;
|
||||
panda::ecmascript::TSManager::TryNarrowUnionType*;
|
||||
panda::ecmascript::TSObjLayoutInfo::GetElementIndexByKey*;
|
||||
panda::ecmascript::TSTypeAccessor::GetAccessorGT*;
|
||||
panda::ecmascript::TSTypeAccessor::GetClassTypeName*;
|
||||
panda::ecmascript::TSTypeAccessor::GetFunctionName*;
|
||||
panda::ecmascript::TSTypeAccessor::GetInitializedProperties*;
|
||||
panda::ecmascript::TSTypeAccessor::MarkPropertyInitialized*;
|
||||
panda::ecmascript::TSTypeAccessor::UpdateForEachCBPara*;
|
||||
panda::ecmascript::TSTypeAccessor::UpdateNonStaticProp*;
|
||||
panda::ecmascript::TSTypeAccessor::UpdateStaticProp*;
|
||||
panda::ecmascript::TSTypeParser::CreateGT*;
|
||||
panda::ecmascript::TSTypeParser::CreatePGOGT*;
|
||||
panda::ecmascript::TSTypeParser::TSTypeParser*;
|
||||
panda::ecmascript::TypeAnnotationExtractor::Print*;
|
||||
panda::ecmascript::TypeAnnotationExtractor::TypeAnnotationExtractor*;
|
||||
panda::ecmascript::TypeLiteralExtractor::TypeLiteralExtractor*;
|
||||
panda::ecmascript::Unlink*;
|
||||
panda::ecmascript::base::utf_helper::ConvertRegionUtf16ToUtf8*;
|
||||
panda::ecmascript::kungfu::AOTSnapshot::StoreConstantPoolInfo*;
|
||||
panda::ecmascript::kungfu::ArkStackMapBuilder::Collect*;
|
||||
panda::ecmascript::kungfu::ArkStackMapBuilder::GenerateArkStackMap*;
|
||||
panda::ecmascript::kungfu::ArkStackMapBuilder::Run*;
|
||||
panda::ecmascript::kungfu::PGOBCInfo::Record*;
|
||||
panda::ecmascript::kungfu::PGOTypeManager::GetElementsIndexByEntityId*;
|
||||
panda::ecmascript::kungfu::PGOTypeManager::GetHClassIndexByProfileType*;
|
||||
panda::ecmascript::kungfu::PGOTypeManager::InitAOTSnapshot*;
|
||||
panda::ecmascript::kungfu::PGOTypeManager::QueryHClass*;
|
||||
panda::ecmascript::kungfu::PGOTypeManager::RecordElements*;
|
||||
panda::ecmascript::kungfu::PGOTypeManager::SetCurConstantPool*;
|
||||
panda::ecmascript::kungfu::PGOTypeParser::CreatePGOType*;
|
||||
panda::ecmascript::kungfu::PGOTypeParser::PGOTypeParser*;
|
||||
panda::ecmascript::kungfu::PGOTypeRecorder::GetElementsKindForCreater*;
|
||||
panda::ecmascript::kungfu::PGOTypeRecorder::GetElementsKindsForUser*;
|
||||
panda::ecmascript::kungfu::PGOTypeRecorder::GetElementsLength*;
|
||||
panda::ecmascript::kungfu::PGOTypeRecorder::GetPGOType*;
|
||||
panda::ecmascript::kungfu::PGOTypeRecorder::PGOTypeRecorder*;
|
||||
panda::ecmascript::kungfu::ReviseData::Resolve*;
|
||||
panda::ecmascript::kungfu::SnapshotConstantPoolData::Record*;
|
||||
panda::ecmascript::ohos::DecrypRemoveKey*;
|
||||
panda::ecmascript::ohos::DecryptAssociateKey*;
|
||||
panda::ecmascript::ohos::DecryptSetKey*;
|
||||
panda::ecmascript::pgo::ApNameUtils::GetMergedApName*;
|
||||
panda::ecmascript::pgo::ApNameUtils::GetOhosPkgApName*;
|
||||
panda::ecmascript::pgo::ApNameUtils::GetRuntimeApName*;
|
||||
panda::ecmascript::pgo::PGOMethodInfo::CalcChecksum*;
|
||||
panda::ecmascript::pgo::PGOProfiler::ProfileCreateObject*;
|
||||
panda::ecmascript::pgo::PGOProfilerManager::GetInstance*;
|
||||
panda::ecmascript::pgo::PGOProfilerManager::MergeApFiles*;
|
||||
panda::panda_file::ClassDataAccessor::ClassDataAccessor*;
|
||||
panda::panda_file::CodeDataAccessor::CatchBlock::CatchBlock*;
|
||||
panda::panda_file::CodeDataAccessor::CodeDataAccessor*;
|
||||
panda::panda_file::CodeDataAccessor::TryBlock::TryBlock*;
|
||||
panda::panda_file::FieldDataAccessor::FieldDataAccessor*;
|
||||
panda::panda_file::FieldDataAccessor::GetValueInternal*;
|
||||
panda::panda_file::MethodDataAccessor::MethodDataAccessor*;
|
||||
};
|
||||
extern "C" {
|
||||
get_ark_js_heap_crash_info;
|
||||
|
Loading…
Reference in New Issue
Block a user