14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci
164514f5e3Sopenharmony_ci#include <codecvt>
174514f5e3Sopenharmony_ci#include <iomanip>
184514f5e3Sopenharmony_ci#include <iostream>
194514f5e3Sopenharmony_ci#include <string>
204514f5e3Sopenharmony_ci
214514f5e3Sopenharmony_ci#include "ecmascript/dfx/hprof/heap_snapshot.h"
224514f5e3Sopenharmony_ci#include "ecmascript/global_dictionary-inl.h"
234514f5e3Sopenharmony_ci#include "ecmascript/vtable.h"
244514f5e3Sopenharmony_ci#include "ecmascript/linked_hash_table.h"
254514f5e3Sopenharmony_ci#include "ecmascript/tagged_tree.h"
264514f5e3Sopenharmony_ci#include "ecmascript/mem/object_xray.h"
274514f5e3Sopenharmony_ci#ifdef ARK_SUPPORT_INTL
284514f5e3Sopenharmony_ci#include "ecmascript/js_bigint.h"
294514f5e3Sopenharmony_ci#include "ecmascript/js_collator.h"
304514f5e3Sopenharmony_ci#include "ecmascript/js_date_time_format.h"
314514f5e3Sopenharmony_ci#include "ecmascript/js_intl.h"
324514f5e3Sopenharmony_ci#include "ecmascript/js_locale.h"
334514f5e3Sopenharmony_ci#include "ecmascript/js_relative_time_format.h"
344514f5e3Sopenharmony_ci#include "ecmascript/js_segmenter.h"
354514f5e3Sopenharmony_ci#include "ecmascript/js_segments.h"
364514f5e3Sopenharmony_ci#include "ecmascript/js_segment_iterator.h"
374514f5e3Sopenharmony_ci#endif
384514f5e3Sopenharmony_ci
394514f5e3Sopenharmony_cinamespace panda::ecmascript {
404514f5e3Sopenharmony_ciusing MicroJobQueue = panda::ecmascript::job::MicroJobQueue;
414514f5e3Sopenharmony_ciusing PendingJob = panda::ecmascript::job::PendingJob;
424514f5e3Sopenharmony_ciusing ExtraProfileTypeInfo = panda::ecmascript::pgo::ExtraProfileTypeInfo;
434514f5e3Sopenharmony_ci
444514f5e3Sopenharmony_cistatic constexpr uint32_t DUMP_TYPE_OFFSET = 12;
454514f5e3Sopenharmony_cistatic constexpr uint32_t DUMP_PROPERTY_OFFSET = 20;
464514f5e3Sopenharmony_cistatic constexpr uint32_t DUMP_ELEMENT_OFFSET = 2;
474514f5e3Sopenharmony_ci
484514f5e3Sopenharmony_cistatic bool HasEdge(std::vector<Reference> &vec, JSTaggedValue toValue)
494514f5e3Sopenharmony_ci{
504514f5e3Sopenharmony_ci    for (auto &ref : vec) {
514514f5e3Sopenharmony_ci        if (ref.value_ == toValue) {
524514f5e3Sopenharmony_ci            return true;
534514f5e3Sopenharmony_ci        }
544514f5e3Sopenharmony_ci    }
554514f5e3Sopenharmony_ci    return false;
564514f5e3Sopenharmony_ci}
574514f5e3Sopenharmony_ci
584514f5e3Sopenharmony_cistatic void AddAnonymousEdge(TaggedObject *obj, std::vector<Reference> &vec)
594514f5e3Sopenharmony_ci{
604514f5e3Sopenharmony_ci    auto hclass = obj->GetClass();
614514f5e3Sopenharmony_ci    if (hclass == nullptr) {
624514f5e3Sopenharmony_ci        return;
634514f5e3Sopenharmony_ci    }
644514f5e3Sopenharmony_ci    ObjectXRay::VisitObjectBody<VisitType::SNAPSHOT_VISIT>(obj, hclass,
654514f5e3Sopenharmony_ci        [&vec]([[maybe_unused]]TaggedObject *root, ObjectSlot start, ObjectSlot end, VisitObjectArea area) {
664514f5e3Sopenharmony_ci            if (area != VisitObjectArea::NORMAL) {
674514f5e3Sopenharmony_ci                return;
684514f5e3Sopenharmony_ci            }
694514f5e3Sopenharmony_ci            uint32_t cnt = 0;
704514f5e3Sopenharmony_ci            for (auto slot = start; slot != end; slot++) {
714514f5e3Sopenharmony_ci                JSTaggedValue toValue = JSTaggedValue(slot.GetTaggedType());
724514f5e3Sopenharmony_ci                if (!toValue.IsHeapObject()) {
734514f5e3Sopenharmony_ci                    continue;
744514f5e3Sopenharmony_ci                }
754514f5e3Sopenharmony_ci                if (HasEdge(vec, toValue)) {
764514f5e3Sopenharmony_ci                    continue;
774514f5e3Sopenharmony_ci                }
784514f5e3Sopenharmony_ci                std::string name = "anonymous-slot" + std::to_string(cnt);
794514f5e3Sopenharmony_ci                cnt += 1;
804514f5e3Sopenharmony_ci                vec.emplace_back(ConvertToString(name), toValue);
814514f5e3Sopenharmony_ci            }
824514f5e3Sopenharmony_ci        }
834514f5e3Sopenharmony_ci    );
844514f5e3Sopenharmony_ci}
854514f5e3Sopenharmony_ci
864514f5e3Sopenharmony_ciCString JSHClass::DumpJSType(JSType type)
874514f5e3Sopenharmony_ci{
884514f5e3Sopenharmony_ci    switch (type) {
894514f5e3Sopenharmony_ci        case JSType::HCLASS:
904514f5e3Sopenharmony_ci            return "JSHClass";
914514f5e3Sopenharmony_ci        case JSType::TAGGED_ARRAY:
924514f5e3Sopenharmony_ci            return "TaggedArray";
934514f5e3Sopenharmony_ci        case JSType::LEXICAL_ENV:
944514f5e3Sopenharmony_ci            return "LexicalEnv";
954514f5e3Sopenharmony_ci        case JSType::SENDABLE_ENV:
964514f5e3Sopenharmony_ci            return "SendableEnv";
974514f5e3Sopenharmony_ci        case JSType::TAGGED_DICTIONARY:
984514f5e3Sopenharmony_ci            return "TaggedDictionary";
994514f5e3Sopenharmony_ci        case JSType::CONSTANT_POOL:
1004514f5e3Sopenharmony_ci            return "ConstantPool";
1014514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO:
1024514f5e3Sopenharmony_ci            return "ProfileTypeInfo";
1034514f5e3Sopenharmony_ci        case JSType::COW_TAGGED_ARRAY:
1044514f5e3Sopenharmony_ci            return "COWArray";
1054514f5e3Sopenharmony_ci        case JSType::MUTANT_TAGGED_ARRAY:
1064514f5e3Sopenharmony_ci            return "MutantTaggedArray";
1074514f5e3Sopenharmony_ci        case JSType::COW_MUTANT_TAGGED_ARRAY:
1084514f5e3Sopenharmony_ci            return "COWMutantTaggedArray";
1094514f5e3Sopenharmony_ci        case JSType::LINE_STRING:
1104514f5e3Sopenharmony_ci        case JSType::CONSTANT_STRING:
1114514f5e3Sopenharmony_ci        case JSType::TREE_STRING:
1124514f5e3Sopenharmony_ci        case JSType::SLICED_STRING:
1134514f5e3Sopenharmony_ci            return "BaseString";
1144514f5e3Sopenharmony_ci        case JSType::JS_NATIVE_POINTER:
1154514f5e3Sopenharmony_ci            return "NativePointer";
1164514f5e3Sopenharmony_ci        case JSType::JS_OBJECT:
1174514f5e3Sopenharmony_ci            return "Object";
1184514f5e3Sopenharmony_ci        case JSType::JS_SHARED_OBJECT:
1194514f5e3Sopenharmony_ci            return  "SharedObject";
1204514f5e3Sopenharmony_ci        case JSType::JS_FUNCTION_BASE:
1214514f5e3Sopenharmony_ci            return "Function Base";
1224514f5e3Sopenharmony_ci        case JSType::JS_FUNCTION:
1234514f5e3Sopenharmony_ci            return "Function";
1244514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FUNCTION:
1254514f5e3Sopenharmony_ci            return "Shared Function";
1264514f5e3Sopenharmony_ci        case JSType::JS_ERROR:
1274514f5e3Sopenharmony_ci            return "Error";
1284514f5e3Sopenharmony_ci        case JSType::NATIVE_MODULE_FAILURE_INFO:
1294514f5e3Sopenharmony_ci            return "NativeModuleFailureInfo";
1304514f5e3Sopenharmony_ci        case JSType::JS_EVAL_ERROR:
1314514f5e3Sopenharmony_ci            return "Eval Error";
1324514f5e3Sopenharmony_ci        case JSType::JS_RANGE_ERROR:
1334514f5e3Sopenharmony_ci            return "Range Error";
1344514f5e3Sopenharmony_ci        case JSType::JS_TYPE_ERROR:
1354514f5e3Sopenharmony_ci            return "Type Error";
1364514f5e3Sopenharmony_ci        case JSType::JS_AGGREGATE_ERROR:
1374514f5e3Sopenharmony_ci            return "Aggregate Error";
1384514f5e3Sopenharmony_ci        case JSType::JS_REFERENCE_ERROR:
1394514f5e3Sopenharmony_ci            return "Reference Error";
1404514f5e3Sopenharmony_ci        case JSType::JS_URI_ERROR:
1414514f5e3Sopenharmony_ci            return "Uri Error";
1424514f5e3Sopenharmony_ci        case JSType::JS_SYNTAX_ERROR:
1434514f5e3Sopenharmony_ci            return "Syntax Error";
1444514f5e3Sopenharmony_ci        case JSType::JS_OOM_ERROR:
1454514f5e3Sopenharmony_ci            return "OutOfMemory Error";
1464514f5e3Sopenharmony_ci        case JSType::JS_TERMINATION_ERROR:
1474514f5e3Sopenharmony_ci            return "Termination Error";
1484514f5e3Sopenharmony_ci        case JSType::JS_REG_EXP:
1494514f5e3Sopenharmony_ci            return "Regexp";
1504514f5e3Sopenharmony_ci        case JSType::JS_SET:
1514514f5e3Sopenharmony_ci            return "Set";
1524514f5e3Sopenharmony_ci        case JSType::JS_SHARED_SET:
1534514f5e3Sopenharmony_ci            return "SharedSet";
1544514f5e3Sopenharmony_ci        case JSType::JS_MAP:
1554514f5e3Sopenharmony_ci            return "Map";
1564514f5e3Sopenharmony_ci        case JSType::JS_SHARED_MAP:
1574514f5e3Sopenharmony_ci            return "SharedMap";
1584514f5e3Sopenharmony_ci        case JSType::JS_WEAK_SET:
1594514f5e3Sopenharmony_ci            return "WeakSet";
1604514f5e3Sopenharmony_ci        case JSType::JS_WEAK_MAP:
1614514f5e3Sopenharmony_ci            return "WeakMap";
1624514f5e3Sopenharmony_ci        case JSType::JS_WEAK_REF:
1634514f5e3Sopenharmony_ci            return "WeakRef";
1644514f5e3Sopenharmony_ci        case JSType::JS_FINALIZATION_REGISTRY:
1654514f5e3Sopenharmony_ci            return "JSFinalizationRegistry";
1664514f5e3Sopenharmony_ci        case JSType::CELL_RECORD:
1674514f5e3Sopenharmony_ci            return "CellRecord";
1684514f5e3Sopenharmony_ci        case JSType::JS_DATE:
1694514f5e3Sopenharmony_ci            return "Date";
1704514f5e3Sopenharmony_ci        case JSType::JS_BOUND_FUNCTION:
1714514f5e3Sopenharmony_ci            return "Bound Function";
1724514f5e3Sopenharmony_ci        case JSType::JS_ARRAY:
1734514f5e3Sopenharmony_ci            return "Array";
1744514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY:
1754514f5e3Sopenharmony_ci            return "SharedArray";
1764514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY_ITERATOR:
1774514f5e3Sopenharmony_ci            return "SharedArrayIterator";
1784514f5e3Sopenharmony_ci        case JSType::JS_TYPED_ARRAY:
1794514f5e3Sopenharmony_ci            return "Typed Array";
1804514f5e3Sopenharmony_ci        case JSType::JS_INT8_ARRAY:
1814514f5e3Sopenharmony_ci            return "Int8 Array";
1824514f5e3Sopenharmony_ci        case JSType::JS_UINT8_ARRAY:
1834514f5e3Sopenharmony_ci            return "Uint8 Array";
1844514f5e3Sopenharmony_ci        case JSType::JS_UINT8_CLAMPED_ARRAY:
1854514f5e3Sopenharmony_ci            return "Uint8 Clamped Array";
1864514f5e3Sopenharmony_ci        case JSType::JS_INT16_ARRAY:
1874514f5e3Sopenharmony_ci            return "Int16 Array";
1884514f5e3Sopenharmony_ci        case JSType::JS_UINT16_ARRAY:
1894514f5e3Sopenharmony_ci            return "Uint16 Array";
1904514f5e3Sopenharmony_ci        case JSType::JS_INT32_ARRAY:
1914514f5e3Sopenharmony_ci            return "Int32 Array";
1924514f5e3Sopenharmony_ci        case JSType::JS_UINT32_ARRAY:
1934514f5e3Sopenharmony_ci            return "Uint32 Array";
1944514f5e3Sopenharmony_ci        case JSType::BIGINT:
1954514f5e3Sopenharmony_ci            return "BigInt";
1964514f5e3Sopenharmony_ci        case JSType::JS_FLOAT32_ARRAY:
1974514f5e3Sopenharmony_ci            return "Float32 Array";
1984514f5e3Sopenharmony_ci        case JSType::JS_FLOAT64_ARRAY:
1994514f5e3Sopenharmony_ci            return "Float64 Array";
2004514f5e3Sopenharmony_ci        case JSType::JS_BIGINT64_ARRAY:
2014514f5e3Sopenharmony_ci            return "BigInt64 Array";
2024514f5e3Sopenharmony_ci        case JSType::JS_BIGUINT64_ARRAY:
2034514f5e3Sopenharmony_ci            return "BigUint64 Array";
2044514f5e3Sopenharmony_ci        case JSType::JS_SHARED_TYPED_ARRAY:
2054514f5e3Sopenharmony_ci            return "Shared Typed Array";
2064514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT8_ARRAY:
2074514f5e3Sopenharmony_ci            return "Shared Int8 Array";
2084514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT8_ARRAY:
2094514f5e3Sopenharmony_ci            return "Shared Uint8 Array";
2104514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT8_CLAMPED_ARRAY:
2114514f5e3Sopenharmony_ci            return "Shared Uint8 Clamped Array";
2124514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT16_ARRAY:
2134514f5e3Sopenharmony_ci            return "Shared Int16 Array";
2144514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT16_ARRAY:
2154514f5e3Sopenharmony_ci            return "Shared Uint16 Array";
2164514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT32_ARRAY:
2174514f5e3Sopenharmony_ci            return "Shared Int32 Array";
2184514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT32_ARRAY:
2194514f5e3Sopenharmony_ci            return "Shared Uint32 Array";
2204514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FLOAT32_ARRAY:
2214514f5e3Sopenharmony_ci            return "Shared Float32 Array";
2224514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FLOAT64_ARRAY:
2234514f5e3Sopenharmony_ci            return "Shared Float64 Array";
2244514f5e3Sopenharmony_ci        case JSType::JS_SHARED_BIGINT64_ARRAY:
2254514f5e3Sopenharmony_ci            return "Shared BigInt64 Array";
2264514f5e3Sopenharmony_ci        case JSType::JS_SHARED_BIGUINT64_ARRAY:
2274514f5e3Sopenharmony_ci            return "Shared BigUint64 Array";
2284514f5e3Sopenharmony_ci        case JSType::BYTE_ARRAY:
2294514f5e3Sopenharmony_ci            return "ByteArray";
2304514f5e3Sopenharmony_ci        case JSType::JS_ARGUMENTS:
2314514f5e3Sopenharmony_ci            return "Arguments";
2324514f5e3Sopenharmony_ci        case JSType::JS_PROXY:
2334514f5e3Sopenharmony_ci            return "Proxy";
2344514f5e3Sopenharmony_ci        case JSType::JS_PRIMITIVE_REF:
2354514f5e3Sopenharmony_ci            return "Primitive";
2364514f5e3Sopenharmony_ci        case JSType::JS_DATA_VIEW:
2374514f5e3Sopenharmony_ci            return "DataView";
2384514f5e3Sopenharmony_ci        case JSType::JS_ITERATOR:
2394514f5e3Sopenharmony_ci            return "Iterator";
2404514f5e3Sopenharmony_ci        case JSType::JS_ASYNCITERATOR:
2414514f5e3Sopenharmony_ci            return "AsyncIterator";
2424514f5e3Sopenharmony_ci        case JSType::JS_FORIN_ITERATOR:
2434514f5e3Sopenharmony_ci            return "ForinInterator";
2444514f5e3Sopenharmony_ci        case JSType::JS_MAP_ITERATOR:
2454514f5e3Sopenharmony_ci            return "MapIterator";
2464514f5e3Sopenharmony_ci        case JSType::JS_SHARED_MAP_ITERATOR:
2474514f5e3Sopenharmony_ci            return "SharedMapIterator";
2484514f5e3Sopenharmony_ci        case JSType::JS_SET_ITERATOR:
2494514f5e3Sopenharmony_ci            return "SetIterator";
2504514f5e3Sopenharmony_ci        case JSType::JS_SHARED_SET_ITERATOR:
2514514f5e3Sopenharmony_ci            return "SharedSetIterator";
2524514f5e3Sopenharmony_ci        case JSType::JS_ARRAY_ITERATOR:
2534514f5e3Sopenharmony_ci            return "ArrayIterator";
2544514f5e3Sopenharmony_ci        case JSType::JS_STRING_ITERATOR:
2554514f5e3Sopenharmony_ci            return "StringIterator";
2564514f5e3Sopenharmony_ci        case JSType::JS_REG_EXP_ITERATOR:
2574514f5e3Sopenharmony_ci            return "RegExpIterator";
2584514f5e3Sopenharmony_ci        case JSType::JS_ARRAY_BUFFER:
2594514f5e3Sopenharmony_ci            return "ArrayBuffer";
2604514f5e3Sopenharmony_ci        case JSType::JS_SENDABLE_ARRAY_BUFFER:
2614514f5e3Sopenharmony_ci            return "SendableArrayBuffer";
2624514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY_BUFFER:
2634514f5e3Sopenharmony_ci            return "SharedArrayBuffer";
2644514f5e3Sopenharmony_ci        case JSType::JS_PROXY_REVOC_FUNCTION:
2654514f5e3Sopenharmony_ci            return "ProxyRevocFunction";
2664514f5e3Sopenharmony_ci        case JSType::PROMISE_REACTIONS:
2674514f5e3Sopenharmony_ci            return "PromiseReaction";
2684514f5e3Sopenharmony_ci        case JSType::PROMISE_CAPABILITY:
2694514f5e3Sopenharmony_ci            return "PromiseCapability";
2704514f5e3Sopenharmony_ci        case JSType::PROMISE_ITERATOR_RECORD:
2714514f5e3Sopenharmony_ci            return "PromiseIteratorRecord";
2724514f5e3Sopenharmony_ci        case JSType::PROMISE_RECORD:
2734514f5e3Sopenharmony_ci            return "PromiseRecord";
2744514f5e3Sopenharmony_ci        case JSType::RESOLVING_FUNCTIONS_RECORD:
2754514f5e3Sopenharmony_ci            return "ResolvingFunctionsRecord";
2764514f5e3Sopenharmony_ci        case JSType::ASYNC_GENERATOR_REQUEST:
2774514f5e3Sopenharmony_ci            return "AsyncGeneratorRequest";
2784514f5e3Sopenharmony_ci        case JSType::ASYNC_ITERATOR_RECORD:
2794514f5e3Sopenharmony_ci            return "AsyncIteratorRecord";
2804514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FROM_SYNC_ITERATOR:
2814514f5e3Sopenharmony_ci            return "AsyncFromSyncIterator";
2824514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FROM_SYNC_ITER_UNWARP_FUNCTION:
2834514f5e3Sopenharmony_ci            return "AsyncFromSyncIterUnwarpFunction";
2844514f5e3Sopenharmony_ci        case JSType::JS_PROMISE:
2854514f5e3Sopenharmony_ci            return "Promise";
2864514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_REACTIONS_FUNCTION:
2874514f5e3Sopenharmony_ci            return "PromiseReactionsFunction";
2884514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_EXECUTOR_FUNCTION:
2894514f5e3Sopenharmony_ci            return "PromiseExecutorFunction";
2904514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_MODULE_FULFILLED_FUNCTION:
2914514f5e3Sopenharmony_ci            return "AsyncModuleFulfilledFunction";
2924514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_MODULE_REJECTED_FUNCTION:
2934514f5e3Sopenharmony_ci            return "AsyncModuleRejectedFunction";
2944514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ALL_RESOLVE_ELEMENT_FUNCTION:
2954514f5e3Sopenharmony_ci            return "PromiseAllResolveElementFunction";
2964514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ANY_REJECT_ELEMENT_FUNCTION:
2974514f5e3Sopenharmony_ci            return "PromiseAnyRejectElementFunction";
2984514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ALL_SETTLED_ELEMENT_FUNCTION:
2994514f5e3Sopenharmony_ci            return "PromiseAllSettledElementFunction";
3004514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_FINALLY_FUNCTION:
3014514f5e3Sopenharmony_ci            return "PromiseFinallyFunction";
3024514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_VALUE_THUNK_OR_THROWER_FUNCTION:
3034514f5e3Sopenharmony_ci            return "PromiseValueThunkOrThrowerFunction";
3044514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_RESUME_NEXT_RETURN_PROCESSOR_RST_FTN:
3054514f5e3Sopenharmony_ci            return "AsyncGeneratorResumeNextReturnProcessorRstFtn";
3064514f5e3Sopenharmony_ci        case JSType::MICRO_JOB_QUEUE:
3074514f5e3Sopenharmony_ci            return "MicroJobQueue";
3084514f5e3Sopenharmony_ci        case JSType::PENDING_JOB:
3094514f5e3Sopenharmony_ci            return "PendingJob";
3104514f5e3Sopenharmony_ci        case JSType::COMPLETION_RECORD:
3114514f5e3Sopenharmony_ci            return "CompletionRecord";
3124514f5e3Sopenharmony_ci        case JSType::GLOBAL_ENV:
3134514f5e3Sopenharmony_ci            return "GlobalEnv";
3144514f5e3Sopenharmony_ci        case JSType::ACCESSOR_DATA:
3154514f5e3Sopenharmony_ci            return "AccessorData";
3164514f5e3Sopenharmony_ci        case JSType::INTERNAL_ACCESSOR:
3174514f5e3Sopenharmony_ci            return "InternalAccessor";
3184514f5e3Sopenharmony_ci        case JSType::SYMBOL:
3194514f5e3Sopenharmony_ci            return "Symbol";
3204514f5e3Sopenharmony_ci        case JSType::PROPERTY_BOX:
3214514f5e3Sopenharmony_ci            return "PropertyBox";
3224514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FUNCTION:
3234514f5e3Sopenharmony_ci            return "AsyncFunction";
3244514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ASYNC_FUNCTION:
3254514f5e3Sopenharmony_ci            return "SharedAsyncFunction";
3264514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_AWAIT_STATUS_FUNCTION:
3274514f5e3Sopenharmony_ci            return "AsyncAwaitStatusFunction";
3284514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FUNC_OBJECT:
3294514f5e3Sopenharmony_ci            return "AsyncFunctionObject";
3304514f5e3Sopenharmony_ci        case JSType::JS_REALM:
3314514f5e3Sopenharmony_ci            return "Realm";
3324514f5e3Sopenharmony_ci        case JSType::JS_GLOBAL_OBJECT:
3334514f5e3Sopenharmony_ci            return "GlobalObject";
3344514f5e3Sopenharmony_ci        case JSType::JS_INTL:
3354514f5e3Sopenharmony_ci            return "JSIntl";
3364514f5e3Sopenharmony_ci        case JSType::JS_LOCALE:
3374514f5e3Sopenharmony_ci            return "JSLocale";
3384514f5e3Sopenharmony_ci        case JSType::JS_DATE_TIME_FORMAT:
3394514f5e3Sopenharmony_ci            return "JSDateTimeFormat";
3404514f5e3Sopenharmony_ci        case JSType::JS_RELATIVE_TIME_FORMAT:
3414514f5e3Sopenharmony_ci            return "JSRelativeTimeFormat";
3424514f5e3Sopenharmony_ci        case JSType::JS_NUMBER_FORMAT:
3434514f5e3Sopenharmony_ci            return "JSNumberFormat";
3444514f5e3Sopenharmony_ci        case JSType::JS_COLLATOR:
3454514f5e3Sopenharmony_ci            return "JSCollator";
3464514f5e3Sopenharmony_ci        case JSType::JS_PLURAL_RULES:
3474514f5e3Sopenharmony_ci            return "JSPluralRules";
3484514f5e3Sopenharmony_ci        case JSType::JS_DISPLAYNAMES:
3494514f5e3Sopenharmony_ci            return "JSDisplayNames";
3504514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTER:
3514514f5e3Sopenharmony_ci            return "JSSegmenter";
3524514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTS:
3534514f5e3Sopenharmony_ci            return "JSSegments";
3544514f5e3Sopenharmony_ci        case JSType::JS_SEGMENT_ITERATOR:
3554514f5e3Sopenharmony_ci            return "JSSegmentIterator";
3564514f5e3Sopenharmony_ci        case JSType::JS_LIST_FORMAT:
3574514f5e3Sopenharmony_ci            return "JSListFormat";
3584514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_OBJECT:
3594514f5e3Sopenharmony_ci            return "JSGeneratorObject";
3604514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_OBJECT:
3614514f5e3Sopenharmony_ci            return "JSAsyncGeneratorObject";
3624514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_CONTEXT:
3634514f5e3Sopenharmony_ci            return "JSGeneratorContext";
3644514f5e3Sopenharmony_ci        case JSType::PROTO_CHANGE_MARKER:
3654514f5e3Sopenharmony_ci            return "ProtoChangeMarker";
3664514f5e3Sopenharmony_ci        case JSType::MARKER_CELL:
3674514f5e3Sopenharmony_ci            return "MarkerCell";
3684514f5e3Sopenharmony_ci        case JSType::PROTOTYPE_INFO:
3694514f5e3Sopenharmony_ci            return "PrototypeInfo";
3704514f5e3Sopenharmony_ci        case JSType::PROGRAM:
3714514f5e3Sopenharmony_ci            return "program";
3724514f5e3Sopenharmony_ci        case JSType::MACHINE_CODE_OBJECT:
3734514f5e3Sopenharmony_ci            return "MachineCode";
3744514f5e3Sopenharmony_ci        case JSType::CLASS_INFO_EXTRACTOR:
3754514f5e3Sopenharmony_ci            return "ClassInfoExtractor";
3764514f5e3Sopenharmony_ci        case JSType::JS_API_ARRAY_LIST:
3774514f5e3Sopenharmony_ci            return "ArrayList";
3784514f5e3Sopenharmony_ci        case JSType::JS_API_ARRAYLIST_ITERATOR:
3794514f5e3Sopenharmony_ci            return "JSArraylistIterator";
3804514f5e3Sopenharmony_ci        case JSType::LINKED_NODE:
3814514f5e3Sopenharmony_ci            return "LinkedNode";
3824514f5e3Sopenharmony_ci        case JSType::RB_TREENODE:
3834514f5e3Sopenharmony_ci             return "RBTreeNode";
3844514f5e3Sopenharmony_ci        case JSType::JS_API_HASH_MAP:
3854514f5e3Sopenharmony_ci            return "HashMap";
3864514f5e3Sopenharmony_ci        case JSType::JS_API_HASH_SET:
3874514f5e3Sopenharmony_ci             return "HashSet";
3884514f5e3Sopenharmony_ci        case JSType::JS_API_HASHMAP_ITERATOR:
3894514f5e3Sopenharmony_ci             return "HashMapIterator";
3904514f5e3Sopenharmony_ci        case JSType::JS_API_HASHSET_ITERATOR:
3914514f5e3Sopenharmony_ci             return "HashSetIterator";
3924514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_MAP:
3934514f5e3Sopenharmony_ci            return "LightWeightMap";
3944514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_MAP_ITERATOR:
3954514f5e3Sopenharmony_ci            return "LightWeightMapIterator";
3964514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_SET:
3974514f5e3Sopenharmony_ci            return "LightWeightSet";
3984514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_SET_ITERATOR:
3994514f5e3Sopenharmony_ci            return "LightWeightSetIterator";
4004514f5e3Sopenharmony_ci        case JSType::JS_API_TREE_MAP:
4014514f5e3Sopenharmony_ci            return "TreeMap";
4024514f5e3Sopenharmony_ci        case JSType::JS_API_TREE_SET:
4034514f5e3Sopenharmony_ci            return "TreeSet";
4044514f5e3Sopenharmony_ci        case JSType::JS_API_TREEMAP_ITERATOR:
4054514f5e3Sopenharmony_ci            return "TreeMapIterator";
4064514f5e3Sopenharmony_ci        case JSType::JS_API_TREESET_ITERATOR:
4074514f5e3Sopenharmony_ci            return "TreeSetIterator";
4084514f5e3Sopenharmony_ci        case JSType::JS_API_VECTOR:
4094514f5e3Sopenharmony_ci            return "Vector";
4104514f5e3Sopenharmony_ci        case JSType::JS_API_VECTOR_ITERATOR:
4114514f5e3Sopenharmony_ci            return "VectorIterator";
4124514f5e3Sopenharmony_ci        case JSType::JS_API_BITVECTOR:
4134514f5e3Sopenharmony_ci            return "BitVector";
4144514f5e3Sopenharmony_ci        case JSType::JS_API_BITVECTOR_ITERATOR:
4154514f5e3Sopenharmony_ci            return "BitVectorIterator";
4164514f5e3Sopenharmony_ci        case JSType::JS_API_QUEUE:
4174514f5e3Sopenharmony_ci            return "Queue";
4184514f5e3Sopenharmony_ci        case JSType::JS_API_QUEUE_ITERATOR:
4194514f5e3Sopenharmony_ci            return "QueueIterator";
4204514f5e3Sopenharmony_ci        case JSType::JS_API_PLAIN_ARRAY:
4214514f5e3Sopenharmony_ci            return "PlainArray";
4224514f5e3Sopenharmony_ci        case JSType::JS_API_PLAIN_ARRAY_ITERATOR:
4234514f5e3Sopenharmony_ci            return "PlainArrayIterator";
4244514f5e3Sopenharmony_ci        case JSType::JS_API_DEQUE:
4254514f5e3Sopenharmony_ci            return "Deque";
4264514f5e3Sopenharmony_ci        case JSType::JS_API_DEQUE_ITERATOR:
4274514f5e3Sopenharmony_ci            return "DequeIterator";
4284514f5e3Sopenharmony_ci        case JSType::JS_API_STACK:
4294514f5e3Sopenharmony_ci            return "Stack";
4304514f5e3Sopenharmony_ci        case JSType::JS_API_STACK_ITERATOR:
4314514f5e3Sopenharmony_ci            return "StackIterator";
4324514f5e3Sopenharmony_ci        case JSType::JS_API_LIST:
4334514f5e3Sopenharmony_ci            return "List";
4344514f5e3Sopenharmony_ci        case JSType::JS_API_LIST_ITERATOR:
4354514f5e3Sopenharmony_ci            return "ListIterator";
4364514f5e3Sopenharmony_ci        case JSType::JS_API_LINKED_LIST:
4374514f5e3Sopenharmony_ci            return "LinkedList";
4384514f5e3Sopenharmony_ci        case JSType::JS_API_LINKED_LIST_ITERATOR:
4394514f5e3Sopenharmony_ci            return "LinkedListIterator";
4404514f5e3Sopenharmony_ci        case JSType::JS_CJS_EXPORTS:
4414514f5e3Sopenharmony_ci            return "CommonJSExports";
4424514f5e3Sopenharmony_ci        case JSType::JS_CJS_MODULE:
4434514f5e3Sopenharmony_ci            return "CommonJSModule";
4444514f5e3Sopenharmony_ci        case JSType::JS_CJS_REQUIRE:
4454514f5e3Sopenharmony_ci            return "CommonJSRequire";
4464514f5e3Sopenharmony_ci        case JSType::METHOD:
4474514f5e3Sopenharmony_ci            return "Method";
4484514f5e3Sopenharmony_ci        case JSType::AOT_LITERAL_INFO:
4494514f5e3Sopenharmony_ci            return "AOTLiteralInfo";
4504514f5e3Sopenharmony_ci        case JSType::CLASS_LITERAL:
4514514f5e3Sopenharmony_ci            return "ClassLiteral";
4524514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_0:
4534514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_1:
4544514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_N:
4554514f5e3Sopenharmony_ci            return "ProfileTypeInfoCell";
4564514f5e3Sopenharmony_ci        case JSType::FUNCTION_TEMPLATE:
4574514f5e3Sopenharmony_ci            return "FunctionTemplate";
4584514f5e3Sopenharmony_ci        case JSType::VTABLE:
4594514f5e3Sopenharmony_ci            return "VTable";
4604514f5e3Sopenharmony_ci        case JSType::EXTRA_PROFILE_TYPE_INFO:
4614514f5e3Sopenharmony_ci            return "ExtraProfileTypeInfo";
4624514f5e3Sopenharmony_ci        case JSType::SOURCE_TEXT_MODULE_RECORD:
4634514f5e3Sopenharmony_ci            return "SourceTextModuleRecord";
4644514f5e3Sopenharmony_ci        case JSType::RESOLVEDBINDING_RECORD:
4654514f5e3Sopenharmony_ci            return "ResolvedBindingRecord";
4664514f5e3Sopenharmony_ci        case JSType::RESOLVEDINDEXBINDING_RECORD:
4674514f5e3Sopenharmony_ci            return "ResolvedIndexBindingRecord";
4684514f5e3Sopenharmony_ci        case JSType::RESOLVEDRECORDINDEXBINDING_RECORD:
4694514f5e3Sopenharmony_ci            return "ResolvedRecordIndexBindingRecord";
4704514f5e3Sopenharmony_ci        case JSType::RESOLVEDRECORDBINDING_RECORD:
4714514f5e3Sopenharmony_ci            return "ResolvedRecordBindingRecord";
4724514f5e3Sopenharmony_ci        case JSType::IMPORTENTRY_RECORD:
4734514f5e3Sopenharmony_ci            return "ImportEntry";
4744514f5e3Sopenharmony_ci        case JSType::LOCAL_EXPORTENTRY_RECORD:
4754514f5e3Sopenharmony_ci            return "LocalExportEntry";
4764514f5e3Sopenharmony_ci        case JSType::STAR_EXPORTENTRY_RECORD:
4774514f5e3Sopenharmony_ci            return "StarExportEntry";
4784514f5e3Sopenharmony_ci        default: {
4794514f5e3Sopenharmony_ci            CString ret = "unknown type ";
4804514f5e3Sopenharmony_ci            return ret.append(std::to_string(static_cast<char>(type)));
4814514f5e3Sopenharmony_ci        }
4824514f5e3Sopenharmony_ci    }
4834514f5e3Sopenharmony_ci}
4844514f5e3Sopenharmony_ci
4854514f5e3Sopenharmony_cistatic void DumpArrayClass(const TaggedArray *arr, std::ostream &os)
4864514f5e3Sopenharmony_ci{
4874514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
4884514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
4894514f5e3Sopenharmony_ci    os << " <TaggedArray[" << std::dec << len << "]>\n";
4904514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
4914514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
4924514f5e3Sopenharmony_ci        if (!val.IsHole()) {
4934514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET) << i << ": ";
4944514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
4954514f5e3Sopenharmony_ci            os << "\n";
4964514f5e3Sopenharmony_ci        }
4974514f5e3Sopenharmony_ci    }
4984514f5e3Sopenharmony_ci}
4994514f5e3Sopenharmony_ci
5004514f5e3Sopenharmony_cistatic void DumpMutantTaggedArray(const MutantTaggedArray *arr, std::ostream &os)
5014514f5e3Sopenharmony_ci{
5024514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
5034514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
5044514f5e3Sopenharmony_ci    os << " <MutantTaggedArray[" << std::dec << len << "]>\n";
5054514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
5064514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
5074514f5e3Sopenharmony_ci        os << std::right << std::setw(DUMP_PROPERTY_OFFSET) << i << ": ";
5084514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET) << "[JSTaggedType] : " << val.GetRawData();
5094514f5e3Sopenharmony_ci        os << "\n";
5104514f5e3Sopenharmony_ci    }
5114514f5e3Sopenharmony_ci}
5124514f5e3Sopenharmony_ci
5134514f5e3Sopenharmony_cistatic void DumpCOWMutantTaggedArray(const COWMutantTaggedArray *arr, std::ostream &os)
5144514f5e3Sopenharmony_ci{
5154514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
5164514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
5174514f5e3Sopenharmony_ci    os << " <COWMutantTaggedArray[" << std::dec << len << "]>\n";
5184514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
5194514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
5204514f5e3Sopenharmony_ci        os << std::right << std::setw(DUMP_PROPERTY_OFFSET) << i << ": ";
5214514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET) << "[JSTaggedType] : " << val.GetRawData();
5224514f5e3Sopenharmony_ci        os << "\n";
5234514f5e3Sopenharmony_ci    }
5244514f5e3Sopenharmony_ci}
5254514f5e3Sopenharmony_ci
5264514f5e3Sopenharmony_cistatic void DumpConstantPoolClass(const ConstantPool *pool, std::ostream &os)
5274514f5e3Sopenharmony_ci{
5284514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
5294514f5e3Sopenharmony_ci    uint32_t len = pool->GetCacheLength();
5304514f5e3Sopenharmony_ci    os << " <ConstantPool[" << std::dec << len << "]>\n";
5314514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
5324514f5e3Sopenharmony_ci        JSTaggedValue val(pool->GetObjectFromCache(i));
5334514f5e3Sopenharmony_ci        if (!val.IsHole()) {
5344514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET) << i << ": ";
5354514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
5364514f5e3Sopenharmony_ci            os << "\n";
5374514f5e3Sopenharmony_ci        }
5384514f5e3Sopenharmony_ci    }
5394514f5e3Sopenharmony_ci}
5404514f5e3Sopenharmony_ci
5414514f5e3Sopenharmony_cistatic void DumpStringClass(const EcmaString *str, std::ostream &os)
5424514f5e3Sopenharmony_ci{
5434514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
5444514f5e3Sopenharmony_ci    CString string = ConvertToString(str);
5454514f5e3Sopenharmony_ci    os << string;
5464514f5e3Sopenharmony_ci}
5474514f5e3Sopenharmony_ci
5484514f5e3Sopenharmony_cistatic void DumpPropertyKey(JSTaggedValue key, std::ostream &os)
5494514f5e3Sopenharmony_ci{
5504514f5e3Sopenharmony_ci    if (key.IsString()) {
5514514f5e3Sopenharmony_ci        DumpStringClass(EcmaString::Cast(key.GetTaggedObject()), os);
5524514f5e3Sopenharmony_ci    } else if (key.IsSymbol()) {
5534514f5e3Sopenharmony_ci        JSSymbol *sym = JSSymbol::Cast(key.GetTaggedObject());
5544514f5e3Sopenharmony_ci        if (sym->GetDescription().IsString()) {
5554514f5e3Sopenharmony_ci            os << "Symbol(\"";
5564514f5e3Sopenharmony_ci            DumpStringClass(EcmaString::Cast(sym->GetDescription().GetTaggedObject()), os);
5574514f5e3Sopenharmony_ci            os << "\")";
5584514f5e3Sopenharmony_ci        } else {
5594514f5e3Sopenharmony_ci            os << "Symbol(" << sym << ")";
5604514f5e3Sopenharmony_ci        }
5614514f5e3Sopenharmony_ci    } else {
5624514f5e3Sopenharmony_ci        LOG_ECMA(FATAL) << "this branch is unreachable";
5634514f5e3Sopenharmony_ci        UNREACHABLE();
5644514f5e3Sopenharmony_ci    }
5654514f5e3Sopenharmony_ci}
5664514f5e3Sopenharmony_ci
5674514f5e3Sopenharmony_cistatic void DumpAttr(const PropertyAttributes &attr, bool fastMode, std::ostream &os)
5684514f5e3Sopenharmony_ci{
5694514f5e3Sopenharmony_ci    if (attr.IsAccessor()) {
5704514f5e3Sopenharmony_ci        os << "(Accessor) ";
5714514f5e3Sopenharmony_ci    }
5724514f5e3Sopenharmony_ci
5734514f5e3Sopenharmony_ci    os << "Attr(";
5744514f5e3Sopenharmony_ci    os << "[Raw: " << std::hex << attr.GetValue() << "]  ";
5754514f5e3Sopenharmony_ci    if (attr.IsNoneAttributes()) {
5764514f5e3Sopenharmony_ci        os << "NONE";
5774514f5e3Sopenharmony_ci    }
5784514f5e3Sopenharmony_ci    if (attr.IsWritable()) {
5794514f5e3Sopenharmony_ci        os << "W";
5804514f5e3Sopenharmony_ci    }
5814514f5e3Sopenharmony_ci    if (attr.IsEnumerable()) {
5824514f5e3Sopenharmony_ci        os << "E";
5834514f5e3Sopenharmony_ci    }
5844514f5e3Sopenharmony_ci    if (attr.IsConfigurable()) {
5854514f5e3Sopenharmony_ci        os << "C";
5864514f5e3Sopenharmony_ci    }
5874514f5e3Sopenharmony_ci
5884514f5e3Sopenharmony_ci    os << ")";
5894514f5e3Sopenharmony_ci
5904514f5e3Sopenharmony_ci    os << " Rep: " << static_cast<int>(attr.GetRepresentation());
5914514f5e3Sopenharmony_ci
5924514f5e3Sopenharmony_ci    os << " InlinedProps: " << attr.IsInlinedProps();
5934514f5e3Sopenharmony_ci
5944514f5e3Sopenharmony_ci    if (fastMode) {
5954514f5e3Sopenharmony_ci        os << " Order: " << std::dec << attr.GetOffset();
5964514f5e3Sopenharmony_ci        os << " SortedIndex: " << std::dec << attr.GetSortedIndex();
5974514f5e3Sopenharmony_ci    } else {
5984514f5e3Sopenharmony_ci        os << " Order: " << std::dec << attr.GetDictionaryOrder();
5994514f5e3Sopenharmony_ci    }
6004514f5e3Sopenharmony_ci}
6014514f5e3Sopenharmony_ci
6024514f5e3Sopenharmony_cistatic void DumpHClass(const JSHClass *jshclass, std::ostream &os, bool withDetail)
6034514f5e3Sopenharmony_ci{
6044514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
6054514f5e3Sopenharmony_ci    os << "JSHClass :" << std::setw(DUMP_TYPE_OFFSET);
6064514f5e3Sopenharmony_ci    os << "Type :" << JSHClass::DumpJSType(jshclass->GetObjectType()) << "\n";
6074514f5e3Sopenharmony_ci
6084514f5e3Sopenharmony_ci    os << " - Prototype :" << std::setw(DUMP_TYPE_OFFSET);
6094514f5e3Sopenharmony_ci    jshclass->GetPrototype().DumpTaggedValue(os);
6104514f5e3Sopenharmony_ci    os << "\n";
6114514f5e3Sopenharmony_ci    os << " - PropertyDescriptors :" << std::setw(DUMP_TYPE_OFFSET);
6124514f5e3Sopenharmony_ci    JSTaggedValue attrs = jshclass->GetLayout();
6134514f5e3Sopenharmony_ci    attrs.DumpTaggedValue(os);
6144514f5e3Sopenharmony_ci    os << "\n";
6154514f5e3Sopenharmony_ci    if (withDetail && !attrs.IsNull()) {
6164514f5e3Sopenharmony_ci        LayoutInfo *layout = LayoutInfo::Cast(jshclass->GetLayout().GetTaggedObject());
6174514f5e3Sopenharmony_ci        int element = static_cast<int>(jshclass->NumberOfProps());
6184514f5e3Sopenharmony_ci        for (int i = 0; i < element; i++) {
6194514f5e3Sopenharmony_ci            JSTaggedValue key = layout->GetKey(i);
6204514f5e3Sopenharmony_ci            PropertyAttributes attr = layout->GetAttr(i);
6214514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
6224514f5e3Sopenharmony_ci            os << "[" << i << "]: ";
6234514f5e3Sopenharmony_ci            DumpPropertyKey(key, os);
6244514f5e3Sopenharmony_ci            os << " : ";
6254514f5e3Sopenharmony_ci            DumpAttr(attr, true, os);
6264514f5e3Sopenharmony_ci            os << "\n";
6274514f5e3Sopenharmony_ci        }
6284514f5e3Sopenharmony_ci    }
6294514f5e3Sopenharmony_ci
6304514f5e3Sopenharmony_ci    os << " - Transitions :" << std::setw(DUMP_TYPE_OFFSET);
6314514f5e3Sopenharmony_ci    JSTaggedValue transtions = jshclass->GetTransitions();
6324514f5e3Sopenharmony_ci    transtions.DumpTaggedValue(os);
6334514f5e3Sopenharmony_ci    os << "\n";
6344514f5e3Sopenharmony_ci    if (withDetail && !transtions.IsWeakForHeapObject() && transtions.IsDictionary()) {
6354514f5e3Sopenharmony_ci        transtions.Dump(os);
6364514f5e3Sopenharmony_ci    }
6374514f5e3Sopenharmony_ci
6384514f5e3Sopenharmony_ci    os << " - ProtoChangeMarker :" << std::setw(DUMP_TYPE_OFFSET);
6394514f5e3Sopenharmony_ci    JSTaggedValue marker = jshclass->GetProtoChangeMarker();
6404514f5e3Sopenharmony_ci    marker.DumpTaggedValue(os);
6414514f5e3Sopenharmony_ci    if (marker.IsHeapObject()) {
6424514f5e3Sopenharmony_ci        ProtoChangeMarker::Cast(marker.GetTaggedObject())->Dump(os);
6434514f5e3Sopenharmony_ci    } else {
6444514f5e3Sopenharmony_ci        os << "\n";
6454514f5e3Sopenharmony_ci    }
6464514f5e3Sopenharmony_ci
6474514f5e3Sopenharmony_ci    os << " - ProtoChangeDetails :" << std::setw(DUMP_TYPE_OFFSET);
6484514f5e3Sopenharmony_ci    JSTaggedValue details = jshclass->GetProtoChangeDetails();
6494514f5e3Sopenharmony_ci    details.DumpTaggedValue(os);
6504514f5e3Sopenharmony_ci    if (details.IsHeapObject()) {
6514514f5e3Sopenharmony_ci        ProtoChangeDetails::Cast(details.GetTaggedObject())->Dump(os);
6524514f5e3Sopenharmony_ci    } else {
6534514f5e3Sopenharmony_ci        os << "\n";
6544514f5e3Sopenharmony_ci    }
6554514f5e3Sopenharmony_ci
6564514f5e3Sopenharmony_ci    os << " - ProfileType : " << std::hex << jshclass->GetProfileType() << "\n";
6574514f5e3Sopenharmony_ci
6584514f5e3Sopenharmony_ci    os << " - Flags : " << std::setw(DUMP_TYPE_OFFSET);
6594514f5e3Sopenharmony_ci    os << "IsCtor :" << std::boolalpha << jshclass->IsConstructor();
6604514f5e3Sopenharmony_ci    os << "| IsCallable :" << std::boolalpha << jshclass->IsCallable();
6614514f5e3Sopenharmony_ci    os << "| IsExtensible :" << std::boolalpha << jshclass->IsExtensible();
6624514f5e3Sopenharmony_ci    os << "| ElementsKind :" << Elements::GetString(jshclass->GetElementsKind());
6634514f5e3Sopenharmony_ci    os << "| NumberOfProps :" << std::dec << jshclass->NumberOfProps();
6644514f5e3Sopenharmony_ci    os << "| InlinedProperties :" << std::dec << jshclass->GetInlinedProperties();
6654514f5e3Sopenharmony_ci    os << "| IsTS :" << std::boolalpha << jshclass->IsTS();
6664514f5e3Sopenharmony_ci    os << "| Level :" << std::dec << static_cast<int>(jshclass->GetLevel());
6674514f5e3Sopenharmony_ci    os << "\n";
6684514f5e3Sopenharmony_ci}
6694514f5e3Sopenharmony_ci
6704514f5e3Sopenharmony_cistatic void DumpClass(TaggedObject *obj, std::ostream &os)
6714514f5e3Sopenharmony_ci{
6724514f5e3Sopenharmony_ci    ASSERT(obj->GetClass()->GetObjectType() == JSType::HCLASS);
6734514f5e3Sopenharmony_ci    DumpHClass(JSHClass::Cast(obj), os, true);
6744514f5e3Sopenharmony_ci}
6754514f5e3Sopenharmony_ci
6764514f5e3Sopenharmony_cistatic void DumpObject(TaggedObject *obj, std::ostream &os)
6774514f5e3Sopenharmony_ci{
6784514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
6794514f5e3Sopenharmony_ci    auto jsHclass = obj->GetClass();
6804514f5e3Sopenharmony_ci    JSType type = jsHclass->GetObjectType();
6814514f5e3Sopenharmony_ci
6824514f5e3Sopenharmony_ci    bool needDumpHClass = false;
6834514f5e3Sopenharmony_ci    switch (type) {
6844514f5e3Sopenharmony_ci        case JSType::HCLASS:
6854514f5e3Sopenharmony_ci            return DumpClass(obj, os);
6864514f5e3Sopenharmony_ci        case JSType::TAGGED_ARRAY:
6874514f5e3Sopenharmony_ci        case JSType::TAGGED_DICTIONARY:
6884514f5e3Sopenharmony_ci        case JSType::TEMPLATE_MAP:
6894514f5e3Sopenharmony_ci        case JSType::LEXICAL_ENV:
6904514f5e3Sopenharmony_ci        case JSType::SENDABLE_ENV:
6914514f5e3Sopenharmony_ci        case JSType::COW_TAGGED_ARRAY:
6924514f5e3Sopenharmony_ci        case JSType::AOT_LITERAL_INFO:
6934514f5e3Sopenharmony_ci            DumpArrayClass(TaggedArray::Cast(obj), os);
6944514f5e3Sopenharmony_ci            break;
6954514f5e3Sopenharmony_ci        case JSType::MUTANT_TAGGED_ARRAY:
6964514f5e3Sopenharmony_ci            DumpMutantTaggedArray(MutantTaggedArray::Cast(obj), os);
6974514f5e3Sopenharmony_ci            break;
6984514f5e3Sopenharmony_ci        case JSType::COW_MUTANT_TAGGED_ARRAY:
6994514f5e3Sopenharmony_ci            DumpCOWMutantTaggedArray(COWMutantTaggedArray::Cast(obj), os);
7004514f5e3Sopenharmony_ci            break;
7014514f5e3Sopenharmony_ci        case JSType::CONSTANT_POOL:
7024514f5e3Sopenharmony_ci            DumpConstantPoolClass(ConstantPool::Cast(obj), os);
7034514f5e3Sopenharmony_ci            break;
7044514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO:
7054514f5e3Sopenharmony_ci            ProfileTypeInfo::Cast(obj)->Dump(os);
7064514f5e3Sopenharmony_ci            break;
7074514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_0:
7084514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_1:
7094514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_N:
7104514f5e3Sopenharmony_ci            ProfileTypeInfoCell::Cast(obj)->Dump(os);
7114514f5e3Sopenharmony_ci            break;
7124514f5e3Sopenharmony_ci        case JSType::FUNCTION_TEMPLATE:
7134514f5e3Sopenharmony_ci            FunctionTemplate::Cast(obj)->Dump(os);
7144514f5e3Sopenharmony_ci            break;
7154514f5e3Sopenharmony_ci        case JSType::VTABLE:
7164514f5e3Sopenharmony_ci            VTable::Cast(obj)->Dump(os);
7174514f5e3Sopenharmony_ci            break;
7184514f5e3Sopenharmony_ci        case JSType::EXTRA_PROFILE_TYPE_INFO:
7194514f5e3Sopenharmony_ci            ExtraProfileTypeInfo::Cast(obj)->Dump(os);
7204514f5e3Sopenharmony_ci            break;
7214514f5e3Sopenharmony_ci        case JSType::LINE_STRING:
7224514f5e3Sopenharmony_ci        case JSType::CONSTANT_STRING:
7234514f5e3Sopenharmony_ci        case JSType::TREE_STRING:
7244514f5e3Sopenharmony_ci        case JSType::SLICED_STRING:
7254514f5e3Sopenharmony_ci            DumpStringClass(EcmaString::Cast(obj), os);
7264514f5e3Sopenharmony_ci            os << "\n";
7274514f5e3Sopenharmony_ci            break;
7284514f5e3Sopenharmony_ci        case JSType::JS_NATIVE_POINTER:
7294514f5e3Sopenharmony_ci            break;
7304514f5e3Sopenharmony_ci        case JSType::JS_OBJECT:
7314514f5e3Sopenharmony_ci        case JSType::JS_SHARED_OBJECT:
7324514f5e3Sopenharmony_ci        case JSType::JS_GLOBAL_OBJECT:
7334514f5e3Sopenharmony_ci        case JSType::JS_ERROR:
7344514f5e3Sopenharmony_ci        case JSType::JS_EVAL_ERROR:
7354514f5e3Sopenharmony_ci        case JSType::JS_RANGE_ERROR:
7364514f5e3Sopenharmony_ci        case JSType::JS_TYPE_ERROR:
7374514f5e3Sopenharmony_ci        case JSType::JS_AGGREGATE_ERROR:
7384514f5e3Sopenharmony_ci        case JSType::JS_REFERENCE_ERROR:
7394514f5e3Sopenharmony_ci        case JSType::JS_URI_ERROR:
7404514f5e3Sopenharmony_ci        case JSType::JS_SYNTAX_ERROR:
7414514f5e3Sopenharmony_ci        case JSType::JS_OOM_ERROR:
7424514f5e3Sopenharmony_ci        case JSType::JS_TERMINATION_ERROR:
7434514f5e3Sopenharmony_ci        case JSType::JS_ARGUMENTS:
7444514f5e3Sopenharmony_ci            needDumpHClass = true;
7454514f5e3Sopenharmony_ci            JSObject::Cast(obj)->Dump(os);
7464514f5e3Sopenharmony_ci            break;
7474514f5e3Sopenharmony_ci        case JSType::JS_FUNCTION_BASE:
7484514f5e3Sopenharmony_ci            needDumpHClass = true;
7494514f5e3Sopenharmony_ci            JSFunctionBase::Cast(obj)->Dump(os);
7504514f5e3Sopenharmony_ci            break;
7514514f5e3Sopenharmony_ci        case JSType::GLOBAL_ENV:
7524514f5e3Sopenharmony_ci            GlobalEnv::Cast(obj)->Dump(os);
7534514f5e3Sopenharmony_ci            break;
7544514f5e3Sopenharmony_ci        case JSType::ACCESSOR_DATA:
7554514f5e3Sopenharmony_ci            break;
7564514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FUNCTION:
7574514f5e3Sopenharmony_ci        case JSType::JS_FUNCTION:
7584514f5e3Sopenharmony_ci            needDumpHClass = true;
7594514f5e3Sopenharmony_ci            JSFunction::Cast(obj)->Dump(os);
7604514f5e3Sopenharmony_ci            break;
7614514f5e3Sopenharmony_ci        case JSType::JS_BOUND_FUNCTION:
7624514f5e3Sopenharmony_ci            needDumpHClass = true;
7634514f5e3Sopenharmony_ci            JSBoundFunction::Cast(obj)->Dump(os);
7644514f5e3Sopenharmony_ci            break;
7654514f5e3Sopenharmony_ci        case JSType::JS_SET:
7664514f5e3Sopenharmony_ci            needDumpHClass = true;
7674514f5e3Sopenharmony_ci            JSSet::Cast(obj)->Dump(os);
7684514f5e3Sopenharmony_ci            break;
7694514f5e3Sopenharmony_ci        case JSType::JS_SHARED_SET:
7704514f5e3Sopenharmony_ci            needDumpHClass = true;
7714514f5e3Sopenharmony_ci            JSSharedSet::Cast(obj)->Dump(os);
7724514f5e3Sopenharmony_ci            break;
7734514f5e3Sopenharmony_ci        case JSType::JS_MAP:
7744514f5e3Sopenharmony_ci            needDumpHClass = true;
7754514f5e3Sopenharmony_ci            JSMap::Cast(obj)->Dump(os);
7764514f5e3Sopenharmony_ci            break;
7774514f5e3Sopenharmony_ci        case JSType::JS_SHARED_MAP:
7784514f5e3Sopenharmony_ci            needDumpHClass = true;
7794514f5e3Sopenharmony_ci            JSSharedMap::Cast(obj)->Dump(os);
7804514f5e3Sopenharmony_ci            break;
7814514f5e3Sopenharmony_ci        case JSType::JS_WEAK_SET:
7824514f5e3Sopenharmony_ci            needDumpHClass = true;
7834514f5e3Sopenharmony_ci            JSWeakSet::Cast(obj)->Dump(os);
7844514f5e3Sopenharmony_ci            break;
7854514f5e3Sopenharmony_ci        case JSType::JS_WEAK_MAP:
7864514f5e3Sopenharmony_ci            needDumpHClass = true;
7874514f5e3Sopenharmony_ci            JSWeakMap::Cast(obj)->Dump(os);
7884514f5e3Sopenharmony_ci            break;
7894514f5e3Sopenharmony_ci        case JSType::JS_WEAK_REF:
7904514f5e3Sopenharmony_ci            needDumpHClass = true;
7914514f5e3Sopenharmony_ci            JSWeakRef::Cast(obj)->Dump(os);
7924514f5e3Sopenharmony_ci            break;
7934514f5e3Sopenharmony_ci        case JSType::JS_FINALIZATION_REGISTRY:
7944514f5e3Sopenharmony_ci            JSFinalizationRegistry::Cast(obj)->Dump(os);
7954514f5e3Sopenharmony_ci            break;
7964514f5e3Sopenharmony_ci        case JSType::CELL_RECORD:
7974514f5e3Sopenharmony_ci            CellRecord::Cast(obj)->Dump(os);
7984514f5e3Sopenharmony_ci            break;
7994514f5e3Sopenharmony_ci        case JSType::JS_REG_EXP:
8004514f5e3Sopenharmony_ci            needDumpHClass = true;
8014514f5e3Sopenharmony_ci            JSRegExp::Cast(obj)->Dump(os);
8024514f5e3Sopenharmony_ci            break;
8034514f5e3Sopenharmony_ci        case JSType::JS_DATE:
8044514f5e3Sopenharmony_ci            needDumpHClass = true;
8054514f5e3Sopenharmony_ci            JSDate::Cast(obj)->Dump(os);
8064514f5e3Sopenharmony_ci            break;
8074514f5e3Sopenharmony_ci        case JSType::JS_ARRAY:
8084514f5e3Sopenharmony_ci            needDumpHClass = true;
8094514f5e3Sopenharmony_ci            JSArray::Cast(obj)->Dump(os);
8104514f5e3Sopenharmony_ci            break;
8114514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY:
8124514f5e3Sopenharmony_ci            needDumpHClass = true;
8134514f5e3Sopenharmony_ci            JSSharedArray::Cast(obj)->Dump(os);
8144514f5e3Sopenharmony_ci            break;
8154514f5e3Sopenharmony_ci        case JSType::JS_TYPED_ARRAY:
8164514f5e3Sopenharmony_ci        case JSType::JS_INT8_ARRAY:
8174514f5e3Sopenharmony_ci        case JSType::JS_UINT8_ARRAY:
8184514f5e3Sopenharmony_ci        case JSType::JS_UINT8_CLAMPED_ARRAY:
8194514f5e3Sopenharmony_ci        case JSType::JS_INT16_ARRAY:
8204514f5e3Sopenharmony_ci        case JSType::JS_UINT16_ARRAY:
8214514f5e3Sopenharmony_ci        case JSType::JS_INT32_ARRAY:
8224514f5e3Sopenharmony_ci        case JSType::JS_UINT32_ARRAY:
8234514f5e3Sopenharmony_ci        case JSType::JS_FLOAT32_ARRAY:
8244514f5e3Sopenharmony_ci        case JSType::JS_FLOAT64_ARRAY:
8254514f5e3Sopenharmony_ci        case JSType::JS_BIGINT64_ARRAY:
8264514f5e3Sopenharmony_ci        case JSType::JS_BIGUINT64_ARRAY:
8274514f5e3Sopenharmony_ci            needDumpHClass = true;
8284514f5e3Sopenharmony_ci            JSTypedArray::Cast(obj)->Dump(os);
8294514f5e3Sopenharmony_ci            break;
8304514f5e3Sopenharmony_ci        case JSType::JS_SHARED_TYPED_ARRAY:
8314514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT8_ARRAY:
8324514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT8_ARRAY:
8334514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT8_CLAMPED_ARRAY:
8344514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT16_ARRAY:
8354514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT16_ARRAY:
8364514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT32_ARRAY:
8374514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT32_ARRAY:
8384514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FLOAT32_ARRAY:
8394514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FLOAT64_ARRAY:
8404514f5e3Sopenharmony_ci        case JSType::JS_SHARED_BIGINT64_ARRAY:
8414514f5e3Sopenharmony_ci        case JSType::JS_SHARED_BIGUINT64_ARRAY:
8424514f5e3Sopenharmony_ci            needDumpHClass = true;
8434514f5e3Sopenharmony_ci            JSSharedTypedArray::Cast(obj)->Dump(os);
8444514f5e3Sopenharmony_ci            break;
8454514f5e3Sopenharmony_ci        case JSType::BIGINT:
8464514f5e3Sopenharmony_ci            BigInt::Cast(obj)->Dump(os);
8474514f5e3Sopenharmony_ci            break;
8484514f5e3Sopenharmony_ci        case JSType::BYTE_ARRAY:
8494514f5e3Sopenharmony_ci            ByteArray::Cast(obj)->Dump(os);
8504514f5e3Sopenharmony_ci            break;
8514514f5e3Sopenharmony_ci        case JSType::JS_PROXY:
8524514f5e3Sopenharmony_ci            needDumpHClass = true;
8534514f5e3Sopenharmony_ci            JSProxy::Cast(obj)->Dump(os);
8544514f5e3Sopenharmony_ci            break;
8554514f5e3Sopenharmony_ci        case JSType::JS_PRIMITIVE_REF:
8564514f5e3Sopenharmony_ci            JSPrimitiveRef::Cast(obj)->Dump(os);
8574514f5e3Sopenharmony_ci            break;
8584514f5e3Sopenharmony_ci        case JSType::SYMBOL:
8594514f5e3Sopenharmony_ci            JSSymbol::Cast(obj)->Dump(os);
8604514f5e3Sopenharmony_ci            break;
8614514f5e3Sopenharmony_ci        case JSType::JS_DATA_VIEW:
8624514f5e3Sopenharmony_ci            JSDataView::Cast(obj)->Dump(os);
8634514f5e3Sopenharmony_ci            break;
8644514f5e3Sopenharmony_ci        case JSType::JS_ARRAY_BUFFER:
8654514f5e3Sopenharmony_ci            JSArrayBuffer::Cast(obj)->Dump(os);
8664514f5e3Sopenharmony_ci            break;
8674514f5e3Sopenharmony_ci        case JSType::JS_SENDABLE_ARRAY_BUFFER:
8684514f5e3Sopenharmony_ci            JSSendableArrayBuffer::Cast(obj)->Dump(os);
8694514f5e3Sopenharmony_ci            break;
8704514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY_BUFFER:
8714514f5e3Sopenharmony_ci            JSArrayBuffer::Cast(obj)->Dump(os);
8724514f5e3Sopenharmony_ci            break;
8734514f5e3Sopenharmony_ci        case JSType::PROMISE_REACTIONS:
8744514f5e3Sopenharmony_ci            PromiseReaction::Cast(obj)->Dump(os);
8754514f5e3Sopenharmony_ci            break;
8764514f5e3Sopenharmony_ci        case JSType::PROMISE_CAPABILITY:
8774514f5e3Sopenharmony_ci            PromiseCapability::Cast(obj)->Dump(os);
8784514f5e3Sopenharmony_ci            break;
8794514f5e3Sopenharmony_ci        case JSType::PROMISE_ITERATOR_RECORD:
8804514f5e3Sopenharmony_ci            PromiseIteratorRecord::Cast(obj)->Dump(os);
8814514f5e3Sopenharmony_ci            break;
8824514f5e3Sopenharmony_ci        case JSType::PROMISE_RECORD:
8834514f5e3Sopenharmony_ci            PromiseRecord::Cast(obj)->Dump(os);
8844514f5e3Sopenharmony_ci            break;
8854514f5e3Sopenharmony_ci        case JSType::RESOLVING_FUNCTIONS_RECORD:
8864514f5e3Sopenharmony_ci            ResolvingFunctionsRecord::Cast(obj)->Dump(os);
8874514f5e3Sopenharmony_ci            break;
8884514f5e3Sopenharmony_ci        case JSType::JS_PROMISE:
8894514f5e3Sopenharmony_ci            needDumpHClass = true;
8904514f5e3Sopenharmony_ci            JSPromise::Cast(obj)->Dump(os);
8914514f5e3Sopenharmony_ci            break;
8924514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_REACTIONS_FUNCTION:
8934514f5e3Sopenharmony_ci            JSPromiseReactionsFunction::Cast(obj)->Dump(os);
8944514f5e3Sopenharmony_ci            break;
8954514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_EXECUTOR_FUNCTION:
8964514f5e3Sopenharmony_ci            JSPromiseExecutorFunction::Cast(obj)->Dump(os);
8974514f5e3Sopenharmony_ci            break;
8984514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_MODULE_FULFILLED_FUNCTION:
8994514f5e3Sopenharmony_ci            JSAsyncModuleFulfilledFunction::Cast(obj)->Dump(os);
9004514f5e3Sopenharmony_ci            break;
9014514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_MODULE_REJECTED_FUNCTION:
9024514f5e3Sopenharmony_ci            JSAsyncModuleRejectedFunction::Cast(obj)->Dump(os);
9034514f5e3Sopenharmony_ci            break;
9044514f5e3Sopenharmony_ci        case JSType::ASYNC_GENERATOR_REQUEST:
9054514f5e3Sopenharmony_ci            AsyncGeneratorRequest::Cast(obj)->Dump(os);
9064514f5e3Sopenharmony_ci            break;
9074514f5e3Sopenharmony_ci        case JSType::ASYNC_ITERATOR_RECORD:
9084514f5e3Sopenharmony_ci            AsyncIteratorRecord::Cast(obj)->Dump(os);
9094514f5e3Sopenharmony_ci            break;
9104514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FROM_SYNC_ITERATOR:
9114514f5e3Sopenharmony_ci            JSAsyncFromSyncIterator::Cast(obj)->Dump(os);
9124514f5e3Sopenharmony_ci            break;
9134514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FROM_SYNC_ITER_UNWARP_FUNCTION:
9144514f5e3Sopenharmony_ci            JSAsyncFromSyncIterUnwarpFunction::Cast(obj)->Dump(os);
9154514f5e3Sopenharmony_ci            break;
9164514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ALL_RESOLVE_ELEMENT_FUNCTION:
9174514f5e3Sopenharmony_ci            JSPromiseAllResolveElementFunction::Cast(obj)->Dump(os);
9184514f5e3Sopenharmony_ci            break;
9194514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ANY_REJECT_ELEMENT_FUNCTION:
9204514f5e3Sopenharmony_ci            JSPromiseAnyRejectElementFunction::Cast(obj)->Dump(os);
9214514f5e3Sopenharmony_ci            break;
9224514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ALL_SETTLED_ELEMENT_FUNCTION:
9234514f5e3Sopenharmony_ci            JSPromiseAllSettledElementFunction::Cast(obj)->Dump(os);
9244514f5e3Sopenharmony_ci            break;
9254514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_FINALLY_FUNCTION:
9264514f5e3Sopenharmony_ci            JSPromiseFinallyFunction::Cast(obj)->Dump(os);
9274514f5e3Sopenharmony_ci            break;
9284514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_VALUE_THUNK_OR_THROWER_FUNCTION:
9294514f5e3Sopenharmony_ci            JSPromiseValueThunkOrThrowerFunction::Cast(obj)->Dump(os);
9304514f5e3Sopenharmony_ci            break;
9314514f5e3Sopenharmony_ci        case JSType::MICRO_JOB_QUEUE:
9324514f5e3Sopenharmony_ci            MicroJobQueue::Cast(obj)->Dump(os);
9334514f5e3Sopenharmony_ci            break;
9344514f5e3Sopenharmony_ci        case JSType::PENDING_JOB:
9354514f5e3Sopenharmony_ci            PendingJob::Cast(obj)->Dump(os);
9364514f5e3Sopenharmony_ci            break;
9374514f5e3Sopenharmony_ci        case JSType::COMPLETION_RECORD:
9384514f5e3Sopenharmony_ci            CompletionRecord::Cast(obj)->Dump(os);
9394514f5e3Sopenharmony_ci            break;
9404514f5e3Sopenharmony_ci        case JSType::JS_PROXY_REVOC_FUNCTION:
9414514f5e3Sopenharmony_ci            JSProxyRevocFunction::Cast(obj)->Dump(os);
9424514f5e3Sopenharmony_ci            break;
9434514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FUNCTION:
9444514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ASYNC_FUNCTION:
9454514f5e3Sopenharmony_ci            needDumpHClass = true;
9464514f5e3Sopenharmony_ci            JSAsyncFunction::Cast(obj)->Dump(os);
9474514f5e3Sopenharmony_ci            break;
9484514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_AWAIT_STATUS_FUNCTION:
9494514f5e3Sopenharmony_ci            JSAsyncAwaitStatusFunction::Cast(obj)->Dump(os);
9504514f5e3Sopenharmony_ci            break;
9514514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_FUNCTION:
9524514f5e3Sopenharmony_ci            JSGeneratorFunction::Cast(obj)->Dump(os);
9534514f5e3Sopenharmony_ci            break;
9544514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_FUNCTION:
9554514f5e3Sopenharmony_ci            needDumpHClass = true;
9564514f5e3Sopenharmony_ci            JSAsyncGeneratorFunction::Cast(obj)->Dump(os);
9574514f5e3Sopenharmony_ci            break;
9584514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_RESUME_NEXT_RETURN_PROCESSOR_RST_FTN:
9594514f5e3Sopenharmony_ci            JSAsyncGeneratorResNextRetProRstFtn::Cast(obj)->Dump(os);
9604514f5e3Sopenharmony_ci            break;
9614514f5e3Sopenharmony_ci        case JSType::JS_INTL_BOUND_FUNCTION:
9624514f5e3Sopenharmony_ci            JSIntlBoundFunction::Cast(obj)->Dump(os);
9634514f5e3Sopenharmony_ci            break;
9644514f5e3Sopenharmony_ci        case JSType::JS_ITERATOR:
9654514f5e3Sopenharmony_ci            break;
9664514f5e3Sopenharmony_ci        case JSType::JS_ASYNCITERATOR:
9674514f5e3Sopenharmony_ci            break;
9684514f5e3Sopenharmony_ci        case JSType::JS_FORIN_ITERATOR:
9694514f5e3Sopenharmony_ci            JSForInIterator::Cast(obj)->Dump(os);
9704514f5e3Sopenharmony_ci            break;
9714514f5e3Sopenharmony_ci        case JSType::JS_MAP_ITERATOR:
9724514f5e3Sopenharmony_ci            JSMapIterator::Cast(obj)->Dump(os);
9734514f5e3Sopenharmony_ci            break;
9744514f5e3Sopenharmony_ci        case JSType::JS_SHARED_MAP_ITERATOR:
9754514f5e3Sopenharmony_ci            JSSharedMapIterator::Cast(obj)->Dump(os);
9764514f5e3Sopenharmony_ci            break;
9774514f5e3Sopenharmony_ci        case JSType::JS_SET_ITERATOR:
9784514f5e3Sopenharmony_ci            JSSetIterator::Cast(obj)->Dump(os);
9794514f5e3Sopenharmony_ci            break;
9804514f5e3Sopenharmony_ci        case JSType::JS_SHARED_SET_ITERATOR:
9814514f5e3Sopenharmony_ci            JSSharedSetIterator::Cast(obj)->Dump(os);
9824514f5e3Sopenharmony_ci            break;
9834514f5e3Sopenharmony_ci        case JSType::JS_REG_EXP_ITERATOR:
9844514f5e3Sopenharmony_ci            JSRegExpIterator::Cast(obj)->Dump(os);
9854514f5e3Sopenharmony_ci            break;
9864514f5e3Sopenharmony_ci        case JSType::JS_ARRAY_ITERATOR:
9874514f5e3Sopenharmony_ci            JSArrayIterator::Cast(obj)->Dump(os);
9884514f5e3Sopenharmony_ci            break;
9894514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY_ITERATOR:
9904514f5e3Sopenharmony_ci            JSSharedArrayIterator::Cast(obj)->Dump(os);
9914514f5e3Sopenharmony_ci            break;
9924514f5e3Sopenharmony_ci        case JSType::JS_STRING_ITERATOR:
9934514f5e3Sopenharmony_ci            JSStringIterator::Cast(obj)->Dump(os);
9944514f5e3Sopenharmony_ci            break;
9954514f5e3Sopenharmony_ci        case JSType::PROTOTYPE_HANDLER:
9964514f5e3Sopenharmony_ci            PrototypeHandler::Cast(obj)->Dump(os);
9974514f5e3Sopenharmony_ci            break;
9984514f5e3Sopenharmony_ci        case JSType::TRANSITION_HANDLER:
9994514f5e3Sopenharmony_ci            TransitionHandler::Cast(obj)->Dump(os);
10004514f5e3Sopenharmony_ci            break;
10014514f5e3Sopenharmony_ci        case JSType::TRANS_WITH_PROTO_HANDLER:
10024514f5e3Sopenharmony_ci            TransWithProtoHandler::Cast(obj)->Dump(os);
10034514f5e3Sopenharmony_ci            break;
10044514f5e3Sopenharmony_ci        case JSType::STORE_TS_HANDLER:
10054514f5e3Sopenharmony_ci            StoreTSHandler::Cast(obj)->Dump(os);
10064514f5e3Sopenharmony_ci            break;
10074514f5e3Sopenharmony_ci        case JSType::PROPERTY_BOX:
10084514f5e3Sopenharmony_ci            PropertyBox::Cast(obj)->Dump(os);
10094514f5e3Sopenharmony_ci            break;
10104514f5e3Sopenharmony_ci        case JSType::JS_REALM:
10114514f5e3Sopenharmony_ci            needDumpHClass = true;
10124514f5e3Sopenharmony_ci            JSRealm::Cast(obj)->Dump(os);
10134514f5e3Sopenharmony_ci            break;
10144514f5e3Sopenharmony_ci#ifdef ARK_SUPPORT_INTL
10154514f5e3Sopenharmony_ci        case JSType::JS_INTL:
10164514f5e3Sopenharmony_ci            needDumpHClass = true;
10174514f5e3Sopenharmony_ci            JSIntl::Cast(obj)->Dump(os);
10184514f5e3Sopenharmony_ci            break;
10194514f5e3Sopenharmony_ci        case JSType::JS_LOCALE:
10204514f5e3Sopenharmony_ci            needDumpHClass = true;
10214514f5e3Sopenharmony_ci            JSLocale::Cast(obj)->Dump(os);
10224514f5e3Sopenharmony_ci            break;
10234514f5e3Sopenharmony_ci        case JSType::JS_DATE_TIME_FORMAT:
10244514f5e3Sopenharmony_ci            JSDateTimeFormat::Cast(obj)->Dump(os);
10254514f5e3Sopenharmony_ci            break;
10264514f5e3Sopenharmony_ci        case JSType::JS_RELATIVE_TIME_FORMAT:
10274514f5e3Sopenharmony_ci            JSRelativeTimeFormat::Cast(obj)->Dump(os);
10284514f5e3Sopenharmony_ci            break;
10294514f5e3Sopenharmony_ci        case JSType::JS_NUMBER_FORMAT:
10304514f5e3Sopenharmony_ci            JSNumberFormat::Cast(obj)->Dump(os);
10314514f5e3Sopenharmony_ci            break;
10324514f5e3Sopenharmony_ci        case JSType::JS_COLLATOR:
10334514f5e3Sopenharmony_ci            needDumpHClass = true;
10344514f5e3Sopenharmony_ci            JSCollator::Cast(obj)->Dump(os);
10354514f5e3Sopenharmony_ci            break;
10364514f5e3Sopenharmony_ci        case JSType::JS_PLURAL_RULES:
10374514f5e3Sopenharmony_ci            JSPluralRules::Cast(obj)->Dump(os);
10384514f5e3Sopenharmony_ci            break;
10394514f5e3Sopenharmony_ci        case JSType::JS_DISPLAYNAMES:
10404514f5e3Sopenharmony_ci            JSDisplayNames::Cast(obj)->Dump(os);
10414514f5e3Sopenharmony_ci            break;
10424514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTER:
10434514f5e3Sopenharmony_ci            JSSegmenter::Cast(obj)->Dump(os);
10444514f5e3Sopenharmony_ci            break;
10454514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTS:
10464514f5e3Sopenharmony_ci            JSSegments::Cast(obj)->Dump(os);
10474514f5e3Sopenharmony_ci            break;
10484514f5e3Sopenharmony_ci        case JSType::JS_SEGMENT_ITERATOR:
10494514f5e3Sopenharmony_ci            JSSegmentIterator::Cast(obj)->Dump(os);
10504514f5e3Sopenharmony_ci            break;
10514514f5e3Sopenharmony_ci        case JSType::JS_LIST_FORMAT:
10524514f5e3Sopenharmony_ci            JSListFormat::Cast(obj)->Dump(os);
10534514f5e3Sopenharmony_ci            break;
10544514f5e3Sopenharmony_ci#else
10554514f5e3Sopenharmony_ci        case JSType::JS_INTL:
10564514f5e3Sopenharmony_ci        case JSType::JS_LOCALE:
10574514f5e3Sopenharmony_ci        case JSType::JS_DATE_TIME_FORMAT:
10584514f5e3Sopenharmony_ci        case JSType::JS_RELATIVE_TIME_FORMAT:
10594514f5e3Sopenharmony_ci        case JSType::JS_NUMBER_FORMAT:
10604514f5e3Sopenharmony_ci        case JSType::JS_COLLATOR:
10614514f5e3Sopenharmony_ci        case JSType::JS_PLURAL_RULES:
10624514f5e3Sopenharmony_ci        case JSType::JS_DISPLAYNAMES:
10634514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTER:
10644514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTS:
10654514f5e3Sopenharmony_ci        case JSType::JS_SEGMENT_ITERATOR:
10664514f5e3Sopenharmony_ci        case JSType::JS_LIST_FORMAT:
10674514f5e3Sopenharmony_ci            break;
10684514f5e3Sopenharmony_ci#endif
10694514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_OBJECT:
10704514f5e3Sopenharmony_ci            needDumpHClass = true;
10714514f5e3Sopenharmony_ci            JSGeneratorObject::Cast(obj)->Dump(os);
10724514f5e3Sopenharmony_ci            break;
10734514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_OBJECT:
10744514f5e3Sopenharmony_ci            needDumpHClass = true;
10754514f5e3Sopenharmony_ci            JSAsyncGeneratorObject::Cast(obj)->Dump(os);
10764514f5e3Sopenharmony_ci            break;
10774514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FUNC_OBJECT:
10784514f5e3Sopenharmony_ci            needDumpHClass = true;
10794514f5e3Sopenharmony_ci            JSAsyncFuncObject::Cast(obj)->Dump(os);
10804514f5e3Sopenharmony_ci            break;
10814514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_CONTEXT:
10824514f5e3Sopenharmony_ci            GeneratorContext::Cast(obj)->Dump(os);
10834514f5e3Sopenharmony_ci            break;
10844514f5e3Sopenharmony_ci        case JSType::PROTOTYPE_INFO:
10854514f5e3Sopenharmony_ci            ProtoChangeDetails::Cast(obj)->Dump(os);
10864514f5e3Sopenharmony_ci            break;
10874514f5e3Sopenharmony_ci        case JSType::TRACK_INFO:
10884514f5e3Sopenharmony_ci            TrackInfo::Cast(obj)->Dump(os);
10894514f5e3Sopenharmony_ci            break;
10904514f5e3Sopenharmony_ci        case JSType::PROTO_CHANGE_MARKER:
10914514f5e3Sopenharmony_ci            ProtoChangeMarker::Cast(obj)->Dump(os);
10924514f5e3Sopenharmony_ci            break;
10934514f5e3Sopenharmony_ci        case JSType::MARKER_CELL:
10944514f5e3Sopenharmony_ci            MarkerCell::Cast(obj)->Dump(os);
10954514f5e3Sopenharmony_ci            break;
10964514f5e3Sopenharmony_ci        case JSType::PROGRAM:
10974514f5e3Sopenharmony_ci            Program::Cast(obj)->Dump(os);
10984514f5e3Sopenharmony_ci            break;
10994514f5e3Sopenharmony_ci        case JSType::MACHINE_CODE_OBJECT:
11004514f5e3Sopenharmony_ci            MachineCode::Cast(obj)->Dump(os);
11014514f5e3Sopenharmony_ci            break;
11024514f5e3Sopenharmony_ci        case JSType::CLASS_INFO_EXTRACTOR:
11034514f5e3Sopenharmony_ci            ClassInfoExtractor::Cast(obj)->Dump(os);
11044514f5e3Sopenharmony_ci            break;
11054514f5e3Sopenharmony_ci        case JSType::JS_API_ARRAY_LIST:
11064514f5e3Sopenharmony_ci            JSAPIArrayList::Cast(obj)->Dump(os);
11074514f5e3Sopenharmony_ci            break;
11084514f5e3Sopenharmony_ci        case JSType::JS_API_ARRAYLIST_ITERATOR:
11094514f5e3Sopenharmony_ci            JSAPIArrayListIterator::Cast(obj)->Dump(os);
11104514f5e3Sopenharmony_ci            break;
11114514f5e3Sopenharmony_ci        case JSType::JS_API_BITVECTOR:
11124514f5e3Sopenharmony_ci            JSAPIBitVector::Cast(obj)->Dump(os);
11134514f5e3Sopenharmony_ci            break;
11144514f5e3Sopenharmony_ci        case JSType::JS_API_BITVECTOR_ITERATOR:
11154514f5e3Sopenharmony_ci            JSAPIBitVectorIterator::Cast(obj)->Dump(os);
11164514f5e3Sopenharmony_ci            break;
11174514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_MAP:
11184514f5e3Sopenharmony_ci            JSAPILightWeightMap::Cast(obj)->Dump(os);
11194514f5e3Sopenharmony_ci            break;
11204514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_MAP_ITERATOR:
11214514f5e3Sopenharmony_ci            JSAPILightWeightMapIterator::Cast(obj)->Dump(os);
11224514f5e3Sopenharmony_ci            break;
11234514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_SET:
11244514f5e3Sopenharmony_ci            JSAPILightWeightSet::Cast(obj)->Dump(os);
11254514f5e3Sopenharmony_ci            break;
11264514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_SET_ITERATOR:
11274514f5e3Sopenharmony_ci            JSAPILightWeightSetIterator::Cast(obj)->Dump(os);
11284514f5e3Sopenharmony_ci            break;
11294514f5e3Sopenharmony_ci        case JSType::LINKED_NODE:
11304514f5e3Sopenharmony_ci            LinkedNode::Cast(obj)->Dump(os);
11314514f5e3Sopenharmony_ci            break;
11324514f5e3Sopenharmony_ci        case JSType::RB_TREENODE:
11334514f5e3Sopenharmony_ci            break;
11344514f5e3Sopenharmony_ci        case JSType::JS_API_HASH_MAP:
11354514f5e3Sopenharmony_ci            JSAPIHashMap::Cast(obj)->Dump(os);
11364514f5e3Sopenharmony_ci            break;
11374514f5e3Sopenharmony_ci        case JSType::JS_API_HASH_SET:
11384514f5e3Sopenharmony_ci            JSAPIHashSet::Cast(obj)->Dump(os);
11394514f5e3Sopenharmony_ci            break;
11404514f5e3Sopenharmony_ci        case JSType::JS_API_HASHMAP_ITERATOR:
11414514f5e3Sopenharmony_ci            JSAPIHashMapIterator::Cast(obj)->Dump(os);
11424514f5e3Sopenharmony_ci            break;
11434514f5e3Sopenharmony_ci        case JSType::JS_API_HASHSET_ITERATOR:
11444514f5e3Sopenharmony_ci            JSAPIHashSetIterator::Cast(obj)->Dump(os);
11454514f5e3Sopenharmony_ci            break;
11464514f5e3Sopenharmony_ci        case JSType::JS_API_TREE_MAP:
11474514f5e3Sopenharmony_ci            JSAPITreeMap::Cast(obj)->Dump(os);
11484514f5e3Sopenharmony_ci            break;
11494514f5e3Sopenharmony_ci        case JSType::JS_API_TREE_SET:
11504514f5e3Sopenharmony_ci            JSAPITreeSet::Cast(obj)->Dump(os);
11514514f5e3Sopenharmony_ci            break;
11524514f5e3Sopenharmony_ci        case JSType::JS_API_TREEMAP_ITERATOR:
11534514f5e3Sopenharmony_ci            JSAPITreeMapIterator::Cast(obj)->Dump(os);
11544514f5e3Sopenharmony_ci            break;
11554514f5e3Sopenharmony_ci        case JSType::JS_API_TREESET_ITERATOR:
11564514f5e3Sopenharmony_ci            JSAPITreeSetIterator::Cast(obj)->Dump(os);
11574514f5e3Sopenharmony_ci            break;
11584514f5e3Sopenharmony_ci        case JSType::JS_API_VECTOR:
11594514f5e3Sopenharmony_ci            JSAPIVector::Cast(obj)->Dump(os);
11604514f5e3Sopenharmony_ci            break;
11614514f5e3Sopenharmony_ci        case JSType::JS_API_VECTOR_ITERATOR:
11624514f5e3Sopenharmony_ci            JSAPIVectorIterator::Cast(obj)->Dump(os);
11634514f5e3Sopenharmony_ci            break;
11644514f5e3Sopenharmony_ci        case JSType::JS_API_QUEUE:
11654514f5e3Sopenharmony_ci            JSAPIQueue::Cast(obj)->Dump(os);
11664514f5e3Sopenharmony_ci            break;
11674514f5e3Sopenharmony_ci        case JSType::JS_API_QUEUE_ITERATOR:
11684514f5e3Sopenharmony_ci            JSAPIQueueIterator::Cast(obj)->Dump(os);
11694514f5e3Sopenharmony_ci            break;
11704514f5e3Sopenharmony_ci        case JSType::JS_API_DEQUE:
11714514f5e3Sopenharmony_ci            JSAPIDeque::Cast(obj)->Dump(os);
11724514f5e3Sopenharmony_ci            break;
11734514f5e3Sopenharmony_ci        case JSType::JS_API_DEQUE_ITERATOR:
11744514f5e3Sopenharmony_ci            JSAPIDequeIterator::Cast(obj)->Dump(os);
11754514f5e3Sopenharmony_ci            break;
11764514f5e3Sopenharmony_ci        case JSType::JS_API_STACK:
11774514f5e3Sopenharmony_ci            JSAPIStack::Cast(obj)->Dump(os);
11784514f5e3Sopenharmony_ci            break;
11794514f5e3Sopenharmony_ci        case JSType::JS_API_STACK_ITERATOR:
11804514f5e3Sopenharmony_ci            JSAPIStackIterator::Cast(obj)->Dump(os);
11814514f5e3Sopenharmony_ci            break;
11824514f5e3Sopenharmony_ci        case JSType::JS_API_LIST:
11834514f5e3Sopenharmony_ci            JSAPIList::Cast(obj)->Dump(os);
11844514f5e3Sopenharmony_ci            break;
11854514f5e3Sopenharmony_ci        case JSType::JS_API_LIST_ITERATOR:
11864514f5e3Sopenharmony_ci            JSAPIListIterator::Cast(obj)->Dump(os);
11874514f5e3Sopenharmony_ci            break;
11884514f5e3Sopenharmony_ci        case JSType::JS_API_LINKED_LIST:
11894514f5e3Sopenharmony_ci            JSAPILinkedList::Cast(obj)->Dump(os);
11904514f5e3Sopenharmony_ci            break;
11914514f5e3Sopenharmony_ci        case JSType::JS_API_LINKED_LIST_ITERATOR:
11924514f5e3Sopenharmony_ci            JSAPILinkedListIterator::Cast(obj)->Dump(os);
11934514f5e3Sopenharmony_ci            break;
11944514f5e3Sopenharmony_ci        case JSType::SOURCE_TEXT_MODULE_RECORD:
11954514f5e3Sopenharmony_ci            SourceTextModule::Cast(obj)->Dump(os);
11964514f5e3Sopenharmony_ci            break;
11974514f5e3Sopenharmony_ci        case JSType::IMPORTENTRY_RECORD:
11984514f5e3Sopenharmony_ci            ImportEntry::Cast(obj)->Dump(os);
11994514f5e3Sopenharmony_ci            break;
12004514f5e3Sopenharmony_ci        case JSType::LOCAL_EXPORTENTRY_RECORD:
12014514f5e3Sopenharmony_ci            LocalExportEntry::Cast(obj)->Dump(os);
12024514f5e3Sopenharmony_ci            break;
12034514f5e3Sopenharmony_ci        case JSType::INDIRECT_EXPORTENTRY_RECORD:
12044514f5e3Sopenharmony_ci            IndirectExportEntry::Cast(obj)->Dump(os);
12054514f5e3Sopenharmony_ci            break;
12064514f5e3Sopenharmony_ci        case JSType::STAR_EXPORTENTRY_RECORD:
12074514f5e3Sopenharmony_ci            StarExportEntry::Cast(obj)->Dump(os);
12084514f5e3Sopenharmony_ci            break;
12094514f5e3Sopenharmony_ci        case JSType::RESOLVEDBINDING_RECORD:
12104514f5e3Sopenharmony_ci            ResolvedBinding::Cast(obj)->Dump(os);
12114514f5e3Sopenharmony_ci            break;
12124514f5e3Sopenharmony_ci        case JSType::RESOLVEDINDEXBINDING_RECORD:
12134514f5e3Sopenharmony_ci            ResolvedIndexBinding::Cast(obj)->Dump(os);
12144514f5e3Sopenharmony_ci            break;
12154514f5e3Sopenharmony_ci        case JSType::RESOLVEDRECORDINDEXBINDING_RECORD:
12164514f5e3Sopenharmony_ci            ResolvedRecordIndexBinding::Cast(obj)->Dump(os);
12174514f5e3Sopenharmony_ci            break;
12184514f5e3Sopenharmony_ci        case JSType::RESOLVEDRECORDBINDING_RECORD:
12194514f5e3Sopenharmony_ci            ResolvedRecordBinding::Cast(obj)->Dump(os);
12204514f5e3Sopenharmony_ci            break;
12214514f5e3Sopenharmony_ci        case JSType::NATIVE_MODULE_FAILURE_INFO:
12224514f5e3Sopenharmony_ci            NativeModuleFailureInfo::Cast(obj)->Dump(os);
12234514f5e3Sopenharmony_ci            break;
12244514f5e3Sopenharmony_ci        case JSType::JS_MODULE_NAMESPACE:
12254514f5e3Sopenharmony_ci            ModuleNamespace::Cast(obj)->Dump(os);
12264514f5e3Sopenharmony_ci            break;
12274514f5e3Sopenharmony_ci        case JSType::JS_API_PLAIN_ARRAY:
12284514f5e3Sopenharmony_ci            JSAPIPlainArray::Cast(obj)->Dump(os);
12294514f5e3Sopenharmony_ci            break;
12304514f5e3Sopenharmony_ci        case JSType::JS_API_PLAIN_ARRAY_ITERATOR:
12314514f5e3Sopenharmony_ci            JSAPIPlainArrayIterator::Cast(obj)->Dump(os);
12324514f5e3Sopenharmony_ci            break;
12334514f5e3Sopenharmony_ci        case JSType::JS_CJS_MODULE:
12344514f5e3Sopenharmony_ci            CjsModule::Cast(obj)->Dump(os);
12354514f5e3Sopenharmony_ci            break;
12364514f5e3Sopenharmony_ci        case JSType::JS_CJS_REQUIRE:
12374514f5e3Sopenharmony_ci            CjsRequire::Cast(obj)->Dump(os);
12384514f5e3Sopenharmony_ci            break;
12394514f5e3Sopenharmony_ci        case JSType::JS_CJS_EXPORTS:
12404514f5e3Sopenharmony_ci            CjsExports::Cast(obj)->Dump(os);
12414514f5e3Sopenharmony_ci            break;
12424514f5e3Sopenharmony_ci        case JSType::METHOD:
12434514f5e3Sopenharmony_ci            Method::Cast(obj)->Dump(os);
12444514f5e3Sopenharmony_ci            break;
12454514f5e3Sopenharmony_ci        case JSType::CLASS_LITERAL:
12464514f5e3Sopenharmony_ci            ClassLiteral::Cast(obj)->Dump(os);
12474514f5e3Sopenharmony_ci            break;
12484514f5e3Sopenharmony_ci        default:
12494514f5e3Sopenharmony_ci            LOG_ECMA(FATAL) << "this branch is unreachable";
12504514f5e3Sopenharmony_ci            UNREACHABLE();
12514514f5e3Sopenharmony_ci            break;
12524514f5e3Sopenharmony_ci    }
12534514f5e3Sopenharmony_ci
12544514f5e3Sopenharmony_ci    if (needDumpHClass) {
12554514f5e3Sopenharmony_ci        DumpHClass(jsHclass, os, false);
12564514f5e3Sopenharmony_ci    }
12574514f5e3Sopenharmony_ci}
12584514f5e3Sopenharmony_ci
12594514f5e3Sopenharmony_civoid JSTaggedValue::DumpSpecialValue(std::ostream &os) const
12604514f5e3Sopenharmony_ci{
12614514f5e3Sopenharmony_ci    ASSERT(IsSpecial());
12624514f5e3Sopenharmony_ci    os << "[Special Value] : ";
12634514f5e3Sopenharmony_ci    switch (GetRawData()) {
12644514f5e3Sopenharmony_ci        case VALUE_HOLE:
12654514f5e3Sopenharmony_ci            os << "Hole";
12664514f5e3Sopenharmony_ci            break;
12674514f5e3Sopenharmony_ci        case VALUE_NULL:
12684514f5e3Sopenharmony_ci            os << "Null";
12694514f5e3Sopenharmony_ci            break;
12704514f5e3Sopenharmony_ci        case VALUE_FALSE:
12714514f5e3Sopenharmony_ci            os << "False";
12724514f5e3Sopenharmony_ci            break;
12734514f5e3Sopenharmony_ci        case VALUE_TRUE:
12744514f5e3Sopenharmony_ci            os << "True";
12754514f5e3Sopenharmony_ci            break;
12764514f5e3Sopenharmony_ci        case VALUE_UNDEFINED:
12774514f5e3Sopenharmony_ci            os << "Undefined";
12784514f5e3Sopenharmony_ci            break;
12794514f5e3Sopenharmony_ci        case VALUE_EXCEPTION:
12804514f5e3Sopenharmony_ci            os << "Exception";
12814514f5e3Sopenharmony_ci            break;
12824514f5e3Sopenharmony_ci        default:
12834514f5e3Sopenharmony_ci            LOG_ECMA(FATAL) << "this branch is unreachable";
12844514f5e3Sopenharmony_ci            UNREACHABLE();
12854514f5e3Sopenharmony_ci            break;
12864514f5e3Sopenharmony_ci    }
12874514f5e3Sopenharmony_ci}
12884514f5e3Sopenharmony_ci
12894514f5e3Sopenharmony_civoid JSTaggedValue::DumpHeapObjectType(std::ostream &os) const
12904514f5e3Sopenharmony_ci{
12914514f5e3Sopenharmony_ci    ASSERT(IsWeak() || IsHeapObject());
12924514f5e3Sopenharmony_ci    bool isWeak = IsWeak();
12934514f5e3Sopenharmony_ci    TaggedObject *obj = isWeak ? GetTaggedWeakRef() : GetTaggedObject();
12944514f5e3Sopenharmony_ci    if (isWeak) {
12954514f5e3Sopenharmony_ci        os << " [Weak Ref] ";
12964514f5e3Sopenharmony_ci    }
12974514f5e3Sopenharmony_ci
12984514f5e3Sopenharmony_ci    JSType type = obj->GetClass()->GetObjectType();
12994514f5e3Sopenharmony_ci    if (type >= JSType::STRING_FIRST && type <= JSType::STRING_LAST) {
13004514f5e3Sopenharmony_ci        CString string = ConvertToString(EcmaString::Cast(obj));
13014514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET) << "[" + string + "]";
13024514f5e3Sopenharmony_ci    } else if (type == JSType::METHOD) {
13034514f5e3Sopenharmony_ci        std::ostringstream address;
13044514f5e3Sopenharmony_ci        address << obj;
13054514f5e3Sopenharmony_ci        CString addrStr = CString(address.str());
13064514f5e3Sopenharmony_ci        Method *method = Method::Cast(obj);
13074514f5e3Sopenharmony_ci
13084514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET)
13094514f5e3Sopenharmony_ci                        << "[" + JSHClass::DumpJSType(type) + "(" + addrStr + "-" + method->GetMethodName() + ")]";
13104514f5e3Sopenharmony_ci    } else {
13114514f5e3Sopenharmony_ci        std::ostringstream address;
13124514f5e3Sopenharmony_ci        address << obj;
13134514f5e3Sopenharmony_ci        CString addrStr = CString(address.str());
13144514f5e3Sopenharmony_ci
13154514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET) << "[" + JSHClass::DumpJSType(type) + "(" + addrStr + ")]";
13164514f5e3Sopenharmony_ci    }
13174514f5e3Sopenharmony_ci}
13184514f5e3Sopenharmony_ci
13194514f5e3Sopenharmony_civoid JSTaggedValue::DumpTaggedValue(std::ostream &os) const
13204514f5e3Sopenharmony_ci{
13214514f5e3Sopenharmony_ci    if (IsInt()) {
13224514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET) << "[Int] : " << std::hex << "0x" << GetInt() << std::dec << " ("
13234514f5e3Sopenharmony_ci           << GetInt() << ")";
13244514f5e3Sopenharmony_ci    } else if (IsDouble()) {
13254514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_TYPE_OFFSET) << "[Double] : " << GetDouble();
13264514f5e3Sopenharmony_ci    } else if (IsSpecial()) {
13274514f5e3Sopenharmony_ci        DumpSpecialValue(os);
13284514f5e3Sopenharmony_ci    } else {
13294514f5e3Sopenharmony_ci        DumpHeapObjectType(os);
13304514f5e3Sopenharmony_ci    }
13314514f5e3Sopenharmony_ci}
13324514f5e3Sopenharmony_ci
13334514f5e3Sopenharmony_civoid JSTaggedValue::DumpTaggedValueType(std::ostream &os) const
13344514f5e3Sopenharmony_ci{
13354514f5e3Sopenharmony_ci    if (IsInt()) {
13364514f5e3Sopenharmony_ci        os << "[Int]";
13374514f5e3Sopenharmony_ci    } else if (IsDouble()) {
13384514f5e3Sopenharmony_ci        os << "[Double]";
13394514f5e3Sopenharmony_ci    } else if (IsSpecial()) {
13404514f5e3Sopenharmony_ci        DumpSpecialValue(os);
13414514f5e3Sopenharmony_ci    } else {
13424514f5e3Sopenharmony_ci        ASSERT(IsWeak() || IsHeapObject());
13434514f5e3Sopenharmony_ci        TaggedObject *obj = IsWeak() ? GetTaggedWeakRef() : GetTaggedObject();
13444514f5e3Sopenharmony_ci        os << "[" + JSHClass::DumpJSType(obj->GetClass()->GetObjectType()) + "]";
13454514f5e3Sopenharmony_ci    }
13464514f5e3Sopenharmony_ci}
13474514f5e3Sopenharmony_ci
13484514f5e3Sopenharmony_civoid JSTaggedValue::Dump(std::ostream &os) const
13494514f5e3Sopenharmony_ci{
13504514f5e3Sopenharmony_ci    DumpTaggedValue(os);
13514514f5e3Sopenharmony_ci    os << "\n";
13524514f5e3Sopenharmony_ci
13534514f5e3Sopenharmony_ci    if (IsHeapObject()) {
13544514f5e3Sopenharmony_ci        TaggedObject *obj = IsWeak() ? GetTaggedWeakRef() : GetTaggedObject();
13554514f5e3Sopenharmony_ci        DumpObject(obj, os);
13564514f5e3Sopenharmony_ci    }
13574514f5e3Sopenharmony_ci}
13584514f5e3Sopenharmony_ci
13594514f5e3Sopenharmony_civoid JSTaggedValue::D() const
13604514f5e3Sopenharmony_ci{
13614514f5e3Sopenharmony_ci    Dump(std::cout);
13624514f5e3Sopenharmony_ci}
13634514f5e3Sopenharmony_ci
13644514f5e3Sopenharmony_civoid JSTaggedValue::DV(JSTaggedType val)
13654514f5e3Sopenharmony_ci{
13664514f5e3Sopenharmony_ci    JSTaggedValue(val).D();
13674514f5e3Sopenharmony_ci}
13684514f5e3Sopenharmony_ci
13694514f5e3Sopenharmony_civoid JSThread::DumpStack()
13704514f5e3Sopenharmony_ci{
13714514f5e3Sopenharmony_ci    FrameHandler handler(this);
13724514f5e3Sopenharmony_ci    handler.DumpStack(std::cout);
13734514f5e3Sopenharmony_ci}
13744514f5e3Sopenharmony_ci
13754514f5e3Sopenharmony_civoid NumberDictionary::Dump(std::ostream &os) const
13764514f5e3Sopenharmony_ci{
13774514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
13784514f5e3Sopenharmony_ci    int size = Size();
13794514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
13804514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
13814514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole()) {
13824514f5e3Sopenharmony_ci            JSTaggedValue val(GetValue(hashIndex));
13834514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET)
13844514f5e3Sopenharmony_ci               << static_cast<uint32_t>(JSTaggedNumber(key).GetNumber()) << ": ";
13854514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
13864514f5e3Sopenharmony_ci            os << " ";
13874514f5e3Sopenharmony_ci            DumpAttr(GetAttributes(hashIndex), false, os);
13884514f5e3Sopenharmony_ci            os << "\n";
13894514f5e3Sopenharmony_ci        }
13904514f5e3Sopenharmony_ci    }
13914514f5e3Sopenharmony_ci}
13924514f5e3Sopenharmony_ci
13934514f5e3Sopenharmony_civoid NameDictionary::Dump(std::ostream &os) const
13944514f5e3Sopenharmony_ci{
13954514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
13964514f5e3Sopenharmony_ci    int size = Size();
13974514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
13984514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
13994514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole()) {
14004514f5e3Sopenharmony_ci            JSTaggedValue val(GetValue(hashIndex));
14014514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
14024514f5e3Sopenharmony_ci            DumpPropertyKey(key, os);
14034514f5e3Sopenharmony_ci            os << ": ";
14044514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
14054514f5e3Sopenharmony_ci            os << " ";
14064514f5e3Sopenharmony_ci            DumpAttr(GetAttributes(hashIndex), false, os);
14074514f5e3Sopenharmony_ci            os << "\n";
14084514f5e3Sopenharmony_ci        }
14094514f5e3Sopenharmony_ci    }
14104514f5e3Sopenharmony_ci}
14114514f5e3Sopenharmony_ci
14124514f5e3Sopenharmony_civoid GlobalDictionary::Dump(std::ostream &os) const
14134514f5e3Sopenharmony_ci{
14144514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
14154514f5e3Sopenharmony_ci    int size = Size();
14164514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
14174514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
14184514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole()) {
14194514f5e3Sopenharmony_ci            JSTaggedValue val(GetValue(hashIndex));
14204514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
14214514f5e3Sopenharmony_ci            DumpPropertyKey(key, os);
14224514f5e3Sopenharmony_ci            os << " : ";
14234514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
14244514f5e3Sopenharmony_ci            os << " ";
14254514f5e3Sopenharmony_ci            DumpAttr(GetAttributes(hashIndex), false, os);
14264514f5e3Sopenharmony_ci            os << "\n";
14274514f5e3Sopenharmony_ci        }
14284514f5e3Sopenharmony_ci    }
14294514f5e3Sopenharmony_ci}
14304514f5e3Sopenharmony_ci
14314514f5e3Sopenharmony_civoid LayoutInfo::Dump(std::ostream &os) const
14324514f5e3Sopenharmony_ci{
14334514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
14344514f5e3Sopenharmony_ci    int num = NumberOfElements();
14354514f5e3Sopenharmony_ci    for (int i = 0; i < num; i++) {
14364514f5e3Sopenharmony_ci        JSTaggedValue key = GetKey(i);
14374514f5e3Sopenharmony_ci        PropertyAttributes attr = GetAttr(i);
14384514f5e3Sopenharmony_ci        os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
14394514f5e3Sopenharmony_ci        os << "[" << i << "]: ";
14404514f5e3Sopenharmony_ci        DumpPropertyKey(key, os);
14414514f5e3Sopenharmony_ci        os << " : ";
14424514f5e3Sopenharmony_ci        DumpAttr(attr, true, os);
14434514f5e3Sopenharmony_ci        os << "\n";
14444514f5e3Sopenharmony_ci    }
14454514f5e3Sopenharmony_ci}
14464514f5e3Sopenharmony_ci
14474514f5e3Sopenharmony_civoid TransitionsDictionary::Dump(std::ostream &os) const
14484514f5e3Sopenharmony_ci{
14494514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
14504514f5e3Sopenharmony_ci    int size = Size();
14514514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
14524514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
14534514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole()) {
14544514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
14554514f5e3Sopenharmony_ci            DumpPropertyKey(key, os);
14564514f5e3Sopenharmony_ci            os << " : ";
14574514f5e3Sopenharmony_ci            GetValue(hashIndex).DumpTaggedValue(os);
14584514f5e3Sopenharmony_ci            os << " : ";
14594514f5e3Sopenharmony_ci            GetAttributes(hashIndex).DumpTaggedValue(os);
14604514f5e3Sopenharmony_ci            os << "\n";
14614514f5e3Sopenharmony_ci        }
14624514f5e3Sopenharmony_ci    }
14634514f5e3Sopenharmony_ci}
14644514f5e3Sopenharmony_ci
14654514f5e3Sopenharmony_civoid LinkedHashSet::Dump(std::ostream &os) const
14664514f5e3Sopenharmony_ci{
14674514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
14684514f5e3Sopenharmony_ci    int capacity = NumberOfElements() + NumberOfDeletedElements();
14694514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < capacity; hashIndex++) {
14704514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
14714514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole()) {
14724514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
14734514f5e3Sopenharmony_ci            key.DumpTaggedValue(os);
14744514f5e3Sopenharmony_ci            os << "\n";
14754514f5e3Sopenharmony_ci        }
14764514f5e3Sopenharmony_ci    }
14774514f5e3Sopenharmony_ci}
14784514f5e3Sopenharmony_ci
14794514f5e3Sopenharmony_civoid LinkedHashMap::Dump(std::ostream &os) const
14804514f5e3Sopenharmony_ci{
14814514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
14824514f5e3Sopenharmony_ci    int capacity = NumberOfElements() + NumberOfDeletedElements();
14834514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < capacity; hashIndex++) {
14844514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
14854514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole()) {
14864514f5e3Sopenharmony_ci            JSTaggedValue val(GetValue(hashIndex));
14874514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
14884514f5e3Sopenharmony_ci            key.DumpTaggedValue(os);
14894514f5e3Sopenharmony_ci            os << ": ";
14904514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
14914514f5e3Sopenharmony_ci            os << "\n";
14924514f5e3Sopenharmony_ci        }
14934514f5e3Sopenharmony_ci    }
14944514f5e3Sopenharmony_ci}
14954514f5e3Sopenharmony_ci
14964514f5e3Sopenharmony_civoid TaggedDoubleList::Dump(std::ostream &os) const
14974514f5e3Sopenharmony_ci{
14984514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
14994514f5e3Sopenharmony_ci    int capacity = NumberOfNodes();
15004514f5e3Sopenharmony_ci    os << " - node num: " << std::dec << capacity << "\n";
15014514f5e3Sopenharmony_ci    os << " - delete node num: " << std::dec << NumberOfDeletedNodes() << "\n";
15024514f5e3Sopenharmony_ci    os << "head-next: ";
15034514f5e3Sopenharmony_ci    // 5 : 5 first element next ptr
15044514f5e3Sopenharmony_ci    GetElement(5).Dump(os);
15054514f5e3Sopenharmony_ci    os << "head-pre: ";
15064514f5e3Sopenharmony_ci    // 6 : 6 first element per ptr
15074514f5e3Sopenharmony_ci    GetElement(6).Dump(os);
15084514f5e3Sopenharmony_ci    os << "\n";
15094514f5e3Sopenharmony_ci    int i = 0;
15104514f5e3Sopenharmony_ci    int next = GetElement(5).GetInt();
15114514f5e3Sopenharmony_ci    while (capacity > i) {
15124514f5e3Sopenharmony_ci        os << " value: ";
15134514f5e3Sopenharmony_ci        GetElement(next).DumpTaggedValue(os);
15144514f5e3Sopenharmony_ci        os << " next: ";
15154514f5e3Sopenharmony_ci        // 1 : 1 current element next ptr offset
15164514f5e3Sopenharmony_ci        GetElement(next + 1).Dump(os);
15174514f5e3Sopenharmony_ci        os << " pre: ";
15184514f5e3Sopenharmony_ci        // 2 : 2 current element pre ptr offset
15194514f5e3Sopenharmony_ci        GetElement(next + 2).Dump(os);
15204514f5e3Sopenharmony_ci        os << "\n";
15214514f5e3Sopenharmony_ci        next = GetElement(next + 1).GetInt();
15224514f5e3Sopenharmony_ci        i++;
15234514f5e3Sopenharmony_ci    }
15244514f5e3Sopenharmony_ci}
15254514f5e3Sopenharmony_ci
15264514f5e3Sopenharmony_civoid TaggedSingleList::Dump(std::ostream &os) const
15274514f5e3Sopenharmony_ci{
15284514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
15294514f5e3Sopenharmony_ci    int capacity = NumberOfNodes();
15304514f5e3Sopenharmony_ci    os << "head-next: ";
15314514f5e3Sopenharmony_ci    // 5 : 5 first element next ptr
15324514f5e3Sopenharmony_ci    GetElement(5).Dump(os);
15334514f5e3Sopenharmony_ci    os << "\n";
15344514f5e3Sopenharmony_ci    int i = 0;
15354514f5e3Sopenharmony_ci    int next = GetElement(5).GetInt();
15364514f5e3Sopenharmony_ci    while (capacity > i) {
15374514f5e3Sopenharmony_ci        os << " value: ";
15384514f5e3Sopenharmony_ci        GetElement(next).DumpTaggedValue(os);
15394514f5e3Sopenharmony_ci        os << " next: ";
15404514f5e3Sopenharmony_ci        // 1 : 1 current element next ptr offset
15414514f5e3Sopenharmony_ci        GetElement(next + 1).Dump(os);
15424514f5e3Sopenharmony_ci        os << "\n";
15434514f5e3Sopenharmony_ci        next = GetElement(next + 1).GetInt();
15444514f5e3Sopenharmony_ci        i++;
15454514f5e3Sopenharmony_ci    }
15464514f5e3Sopenharmony_ci}
15474514f5e3Sopenharmony_ci
15484514f5e3Sopenharmony_civoid JSObject::Dump(std::ostream &os) const
15494514f5e3Sopenharmony_ci{
15504514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
15514514f5e3Sopenharmony_ci    JSHClass *jshclass = GetJSHClass();
15524514f5e3Sopenharmony_ci    os << " - hclass: " << std::hex << jshclass << "\n";
15534514f5e3Sopenharmony_ci    os << " - prototype: ";
15544514f5e3Sopenharmony_ci    jshclass->GetPrototype().DumpTaggedValue(os);
15554514f5e3Sopenharmony_ci    os << "\n";
15564514f5e3Sopenharmony_ci
15574514f5e3Sopenharmony_ci    JSTaggedType hashField = Barriers::GetValue<JSTaggedType>(this, HASH_OFFSET);
15584514f5e3Sopenharmony_ci    JSTaggedValue value(hashField);
15594514f5e3Sopenharmony_ci    os << " - hash: " << std::hex << hashField;
15604514f5e3Sopenharmony_ci    value.Dump(os);
15614514f5e3Sopenharmony_ci
15624514f5e3Sopenharmony_ci    TaggedArray *elements = TaggedArray::Cast(GetElements().GetTaggedObject());
15634514f5e3Sopenharmony_ci    os << " - elements: " << std::hex << elements;
15644514f5e3Sopenharmony_ci    if (elements->GetLength() == 0) {
15654514f5e3Sopenharmony_ci        os << " NONE\n";
15664514f5e3Sopenharmony_ci    } else if (!elements->IsDictionaryMode()) {
15674514f5e3Sopenharmony_ci        DumpArrayClass(elements, os);
15684514f5e3Sopenharmony_ci    } else {
15694514f5e3Sopenharmony_ci        NumberDictionary *dict = NumberDictionary::Cast(elements);
15704514f5e3Sopenharmony_ci        os << " <NumberDictionary[" << std::dec << dict->EntriesCount() << "]>\n";
15714514f5e3Sopenharmony_ci        dict->Dump(os);
15724514f5e3Sopenharmony_ci    }
15734514f5e3Sopenharmony_ci
15744514f5e3Sopenharmony_ci    TaggedArray *properties = TaggedArray::Cast(GetProperties().GetTaggedObject());
15754514f5e3Sopenharmony_ci    os << " - properties: " << std::hex << properties;
15764514f5e3Sopenharmony_ci    if (IsJSGlobalObject()) {
15774514f5e3Sopenharmony_ci        GlobalDictionary *dict = GlobalDictionary::Cast(properties);
15784514f5e3Sopenharmony_ci        os << " <GlobalDictionary[" << std::dec << dict->EntriesCount() << "]>\n";
15794514f5e3Sopenharmony_ci        dict->Dump(os);
15804514f5e3Sopenharmony_ci        return;
15814514f5e3Sopenharmony_ci    }
15824514f5e3Sopenharmony_ci
15834514f5e3Sopenharmony_ci    if (!properties->IsDictionaryMode()) {
15844514f5e3Sopenharmony_ci        JSTaggedValue attrs = jshclass->GetLayout();
15854514f5e3Sopenharmony_ci        if (attrs.IsNull()) {
15864514f5e3Sopenharmony_ci            return;
15874514f5e3Sopenharmony_ci        }
15884514f5e3Sopenharmony_ci
15894514f5e3Sopenharmony_ci        LayoutInfo *layoutInfo = LayoutInfo::Cast(attrs.GetTaggedObject());
15904514f5e3Sopenharmony_ci        int propNumber = static_cast<int>(jshclass->NumberOfProps());
15914514f5e3Sopenharmony_ci        os << " <LayoutInfo[" << std::dec << propNumber << "]>\n";
15924514f5e3Sopenharmony_ci        for (int i = 0; i < propNumber; i++) {
15934514f5e3Sopenharmony_ci            JSTaggedValue key = layoutInfo->GetKey(i);
15944514f5e3Sopenharmony_ci            PropertyAttributes attr = layoutInfo->GetAttr(i);
15954514f5e3Sopenharmony_ci            ASSERT(i == static_cast<int>(attr.GetOffset()));
15964514f5e3Sopenharmony_ci            os << "     " << std::right << std::setw(DUMP_PROPERTY_OFFSET);
15974514f5e3Sopenharmony_ci            DumpPropertyKey(key, os);
15984514f5e3Sopenharmony_ci            os << ": (";
15994514f5e3Sopenharmony_ci            JSTaggedValue val;
16004514f5e3Sopenharmony_ci            if (attr.IsInlinedProps()) {
16014514f5e3Sopenharmony_ci                val = GetPropertyInlinedPropsWithRep(i, attr);
16024514f5e3Sopenharmony_ci            } else {
16034514f5e3Sopenharmony_ci                val = properties->Get(i - static_cast<int>(jshclass->GetInlinedProperties()));
16044514f5e3Sopenharmony_ci            }
16054514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
16064514f5e3Sopenharmony_ci            os << ") ";
16074514f5e3Sopenharmony_ci            DumpAttr(attr, true, os);
16084514f5e3Sopenharmony_ci            os << "\n";
16094514f5e3Sopenharmony_ci        }
16104514f5e3Sopenharmony_ci    } else {
16114514f5e3Sopenharmony_ci        NameDictionary *dict = NameDictionary::Cast(properties);
16124514f5e3Sopenharmony_ci        os << " <NameDictionary[" << std::dec << dict->EntriesCount() << "]>\n";
16134514f5e3Sopenharmony_ci        dict->Dump(os);
16144514f5e3Sopenharmony_ci    }
16154514f5e3Sopenharmony_ci}
16164514f5e3Sopenharmony_ci
16174514f5e3Sopenharmony_civoid TaggedArray::Dump(std::ostream &os) const
16184514f5e3Sopenharmony_ci{
16194514f5e3Sopenharmony_ci    DumpArrayClass(this, os);
16204514f5e3Sopenharmony_ci}
16214514f5e3Sopenharmony_ci
16224514f5e3Sopenharmony_civoid AccessorData::Dump(std::ostream &os) const
16234514f5e3Sopenharmony_ci{
16244514f5e3Sopenharmony_ci    auto *hclass = GetClass();
16254514f5e3Sopenharmony_ci    if (hclass->GetObjectType() == JSType::INTERNAL_ACCESSOR) {
16264514f5e3Sopenharmony_ci        os << " - Getter: " << InternalAccessor::ConstCast(this)->GetGetter() << "\n";
16274514f5e3Sopenharmony_ci        os << " - Setter: " << InternalAccessor::ConstCast(this)->GetSetter() << "\n";
16284514f5e3Sopenharmony_ci        return;
16294514f5e3Sopenharmony_ci    }
16304514f5e3Sopenharmony_ci
16314514f5e3Sopenharmony_ci    os << " - Getter: ";
16324514f5e3Sopenharmony_ci    GetGetter().DumpTaggedValue(os);
16334514f5e3Sopenharmony_ci    os << "\n";
16344514f5e3Sopenharmony_ci
16354514f5e3Sopenharmony_ci    os << " - Setter: ";
16364514f5e3Sopenharmony_ci    GetSetter().DumpTaggedValue(os);
16374514f5e3Sopenharmony_ci    os << "\n";
16384514f5e3Sopenharmony_ci}
16394514f5e3Sopenharmony_ci
16404514f5e3Sopenharmony_civoid Program::Dump(std::ostream &os) const
16414514f5e3Sopenharmony_ci{
16424514f5e3Sopenharmony_ci    os << " - MainFunction: ";
16434514f5e3Sopenharmony_ci    GetMainFunction().Dump(os);
16444514f5e3Sopenharmony_ci    os << "\n";
16454514f5e3Sopenharmony_ci}
16464514f5e3Sopenharmony_ci
16474514f5e3Sopenharmony_civoid LinkedNode::Dump(std::ostream &os) const
16484514f5e3Sopenharmony_ci{
16494514f5e3Sopenharmony_ci    os << " - Next: ";
16504514f5e3Sopenharmony_ci
16514514f5e3Sopenharmony_ci    os << "\n";
16524514f5e3Sopenharmony_ci}
16534514f5e3Sopenharmony_ci
16544514f5e3Sopenharmony_civoid ConstantPool::Dump(std::ostream &os) const
16554514f5e3Sopenharmony_ci{
16564514f5e3Sopenharmony_ci    DumpArrayClass(this, os);
16574514f5e3Sopenharmony_ci}
16584514f5e3Sopenharmony_ci
16594514f5e3Sopenharmony_civoid ProfileTypeInfo::Dump(std::ostream &os) const
16604514f5e3Sopenharmony_ci{
16614514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
16624514f5e3Sopenharmony_ci    uint32_t len = GetIcSlotLength();
16634514f5e3Sopenharmony_ci    os << " <ProfileTypeInfo[" << std::dec << len << "]>\n";
16644514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
16654514f5e3Sopenharmony_ci        JSTaggedValue val(Get(i));
16664514f5e3Sopenharmony_ci        if (!val.IsHole()) {
16674514f5e3Sopenharmony_ci            os << std::right << std::setw(DUMP_PROPERTY_OFFSET) << i << ": ";
16684514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
16694514f5e3Sopenharmony_ci            os << "\n";
16704514f5e3Sopenharmony_ci        }
16714514f5e3Sopenharmony_ci    }
16724514f5e3Sopenharmony_ci}
16734514f5e3Sopenharmony_ci
16744514f5e3Sopenharmony_civoid ExtraProfileTypeInfo::Dump(std::ostream &os) const
16754514f5e3Sopenharmony_ci{
16764514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
16774514f5e3Sopenharmony_ci    os << " - Receiver: ";
16784514f5e3Sopenharmony_ci    GetReceiverObject().Dump(os);
16794514f5e3Sopenharmony_ci    os << " - Holder: ";
16804514f5e3Sopenharmony_ci    GetHolderObject().Dump(os);
16814514f5e3Sopenharmony_ci    os << "\n";
16824514f5e3Sopenharmony_ci}
16834514f5e3Sopenharmony_ci
16844514f5e3Sopenharmony_civoid ProfileTypeInfoCell::Dump(std::ostream &os) const
16854514f5e3Sopenharmony_ci{
16864514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
16874514f5e3Sopenharmony_ci    os << " - Value: ";
16884514f5e3Sopenharmony_ci    GetValue().Dump(os);
16894514f5e3Sopenharmony_ci    os << " - Handle: ";
16904514f5e3Sopenharmony_ci    GetHandle().Dump(os);
16914514f5e3Sopenharmony_ci    os << "\n";
16924514f5e3Sopenharmony_ci}
16934514f5e3Sopenharmony_ci
16944514f5e3Sopenharmony_civoid FunctionTemplate::Dump(std::ostream &os) const
16954514f5e3Sopenharmony_ci{
16964514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
16974514f5e3Sopenharmony_ci    os << " - Method: ";
16984514f5e3Sopenharmony_ci    GetMethod().Dump(os);
16994514f5e3Sopenharmony_ci    os << " - Module: ";
17004514f5e3Sopenharmony_ci    GetModule().Dump(os);
17014514f5e3Sopenharmony_ci    os << " - RawProfileTypeInfo: ";
17024514f5e3Sopenharmony_ci    GetRawProfileTypeInfo().Dump(os);
17034514f5e3Sopenharmony_ci    os << " - length : " << GetLength() << "\n";
17044514f5e3Sopenharmony_ci}
17054514f5e3Sopenharmony_ci
17064514f5e3Sopenharmony_civoid VTable::Dump(std::ostream &os) const
17074514f5e3Sopenharmony_ci{
17084514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
17094514f5e3Sopenharmony_ci    uint32_t num = GetNumberOfTuples();
17104514f5e3Sopenharmony_ci
17114514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < num; i++) {
17124514f5e3Sopenharmony_ci        os << std::right << std::setw(DUMP_PROPERTY_OFFSET);
17134514f5e3Sopenharmony_ci        os << "[" << i << "]: [ name :";
17144514f5e3Sopenharmony_ci        JSTaggedValue name = GetTupleItem(i, VTable::TupleItem::NAME);
17154514f5e3Sopenharmony_ci        DumpPropertyKey(name, os);
17164514f5e3Sopenharmony_ci        os << ", type :" << (IsAccessor(i) ? "Accessor" : "Function");
17174514f5e3Sopenharmony_ci        JSTaggedValue owner = GetTupleItem(i, VTable::TupleItem::OWNER);
17184514f5e3Sopenharmony_ci        os << ", owner :";
17194514f5e3Sopenharmony_ci        owner.DumpTaggedValue(os);
17204514f5e3Sopenharmony_ci        JSTaggedValue offset = GetTupleItem(i, VTable::TupleItem::OFFSET);
17214514f5e3Sopenharmony_ci        os << ", offset :" << offset.GetInt();
17224514f5e3Sopenharmony_ci        os << " ] ";
17234514f5e3Sopenharmony_ci        os << "\n";
17244514f5e3Sopenharmony_ci    }
17254514f5e3Sopenharmony_ci}
17264514f5e3Sopenharmony_ci
17274514f5e3Sopenharmony_civoid JSFunction::Dump(std::ostream &os) const
17284514f5e3Sopenharmony_ci{
17294514f5e3Sopenharmony_ci    os << " - ProtoOrHClass: ";
17304514f5e3Sopenharmony_ci    GetProtoOrHClass().Dump(os);
17314514f5e3Sopenharmony_ci    os << "\n";
17324514f5e3Sopenharmony_ci    os << " - LexicalEnv: ";
17334514f5e3Sopenharmony_ci    if (GetClass()->IsJSSharedFunction()) {
17344514f5e3Sopenharmony_ci        os << GetLexicalEnv().GetRawData()<< "\n";
17354514f5e3Sopenharmony_ci    } else {
17364514f5e3Sopenharmony_ci        GetLexicalEnv().Dump(os);
17374514f5e3Sopenharmony_ci        os << "\n";
17384514f5e3Sopenharmony_ci    }
17394514f5e3Sopenharmony_ci    os << " - RawProfileTypeInfo: ";
17404514f5e3Sopenharmony_ci    GetRawProfileTypeInfo().Dump(os);
17414514f5e3Sopenharmony_ci    os << "\n";
17424514f5e3Sopenharmony_ci    os << " - HomeObject: ";
17434514f5e3Sopenharmony_ci    GetHomeObject().Dump(os);
17444514f5e3Sopenharmony_ci    os << "\n";
17454514f5e3Sopenharmony_ci    os << " - FunctionExtraInfo: ";
17464514f5e3Sopenharmony_ci    GetFunctionExtraInfo().Dump(os);
17474514f5e3Sopenharmony_ci    os << "\n";
17484514f5e3Sopenharmony_ci    os << " - Method: ";
17494514f5e3Sopenharmony_ci    GetMethod().Dump(os);
17504514f5e3Sopenharmony_ci    os << "\n";
17514514f5e3Sopenharmony_ci    os << " - Module: ";
17524514f5e3Sopenharmony_ci    GetModule().Dump(os);
17534514f5e3Sopenharmony_ci    os << "\n";
17544514f5e3Sopenharmony_ci    os << " - ProtoTransRootHClass: ";
17554514f5e3Sopenharmony_ci    GetProtoTransRootHClass().Dump(os);
17564514f5e3Sopenharmony_ci    os << "\n";
17574514f5e3Sopenharmony_ci    JSObject::Dump(os);
17584514f5e3Sopenharmony_ci}
17594514f5e3Sopenharmony_ci
17604514f5e3Sopenharmony_civoid JSHClass::Dump(std::ostream &os) const
17614514f5e3Sopenharmony_ci{
17624514f5e3Sopenharmony_ci    DumpHClass(this, os, true);
17634514f5e3Sopenharmony_ci}
17644514f5e3Sopenharmony_ci
17654514f5e3Sopenharmony_civoid JSBoundFunction::Dump(std::ostream &os) const
17664514f5e3Sopenharmony_ci{
17674514f5e3Sopenharmony_ci    os << " - BoundTarget: ";
17684514f5e3Sopenharmony_ci    GetBoundTarget().DumpTaggedValue(os);
17694514f5e3Sopenharmony_ci    os << "\n";
17704514f5e3Sopenharmony_ci
17714514f5e3Sopenharmony_ci    os << " - BoundThis: ";
17724514f5e3Sopenharmony_ci    GetBoundThis().DumpTaggedValue(os);
17734514f5e3Sopenharmony_ci    os << "\n";
17744514f5e3Sopenharmony_ci
17754514f5e3Sopenharmony_ci    os << " - BoundArguments: ";
17764514f5e3Sopenharmony_ci    GetBoundArguments().DumpTaggedValue(os);
17774514f5e3Sopenharmony_ci    os << "\n";
17784514f5e3Sopenharmony_ci
17794514f5e3Sopenharmony_ci    JSObject::Dump(os);
17804514f5e3Sopenharmony_ci}
17814514f5e3Sopenharmony_ci
17824514f5e3Sopenharmony_civoid JSPrimitiveRef::Dump(std::ostream &os) const
17834514f5e3Sopenharmony_ci{
17844514f5e3Sopenharmony_ci    os << " - SubValue : ";
17854514f5e3Sopenharmony_ci    GetValue().DumpTaggedValue(os);
17864514f5e3Sopenharmony_ci    os << "\n";
17874514f5e3Sopenharmony_ci    JSObject::Dump(os);
17884514f5e3Sopenharmony_ci}
17894514f5e3Sopenharmony_ci
17904514f5e3Sopenharmony_civoid BigInt::Dump(std::ostream &os) const
17914514f5e3Sopenharmony_ci{
17924514f5e3Sopenharmony_ci    os << " - length : " << GetLength() << "\n";
17934514f5e3Sopenharmony_ci    os << " - Sign : " << GetSign() << "\n";
17944514f5e3Sopenharmony_ci    os << " - value : " << ToStdString(DECIMAL) << "\n";
17954514f5e3Sopenharmony_ci}
17964514f5e3Sopenharmony_ci
17974514f5e3Sopenharmony_civoid JSDate::Dump(std::ostream &os) const
17984514f5e3Sopenharmony_ci{
17994514f5e3Sopenharmony_ci    os << " - time: " << GetTime().GetDouble() << "\n";
18004514f5e3Sopenharmony_ci    os << " - localOffset: " << GetLocalOffset().GetDouble() << "\n";
18014514f5e3Sopenharmony_ci    JSObject::Dump(os);
18024514f5e3Sopenharmony_ci}
18034514f5e3Sopenharmony_ci
18044514f5e3Sopenharmony_civoid JSMap::Dump(std::ostream &os) const
18054514f5e3Sopenharmony_ci{
18064514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(GetLinkedMap().GetTaggedObject());
18074514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
18084514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
18094514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
18104514f5e3Sopenharmony_ci    JSObject::Dump(os);
18114514f5e3Sopenharmony_ci
18124514f5e3Sopenharmony_ci    os << " <NameDictionary[" << map->NumberOfElements() << "]>\n";
18134514f5e3Sopenharmony_ci    map->Dump(os);
18144514f5e3Sopenharmony_ci}
18154514f5e3Sopenharmony_ci
18164514f5e3Sopenharmony_civoid JSSharedMap::Dump(std::ostream &os) const
18174514f5e3Sopenharmony_ci{
18184514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(GetLinkedMap().GetTaggedObject());
18194514f5e3Sopenharmony_ci    os << " - modRecord: " << std::dec << GetModRecord() << "\n";
18204514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
18214514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
18224514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
18234514f5e3Sopenharmony_ci    JSObject::Dump(os);
18244514f5e3Sopenharmony_ci
18254514f5e3Sopenharmony_ci    os << " <NameDictionary[" << map->NumberOfElements() << "]>\n";
18264514f5e3Sopenharmony_ci    map->Dump(os);
18274514f5e3Sopenharmony_ci}
18284514f5e3Sopenharmony_ci
18294514f5e3Sopenharmony_civoid JSAPITreeMap::Dump(std::ostream &os) const
18304514f5e3Sopenharmony_ci{
18314514f5e3Sopenharmony_ci    TaggedTreeMap *map = TaggedTreeMap::Cast(GetTreeMap().GetTaggedObject());
18324514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
18334514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
18344514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
18354514f5e3Sopenharmony_ci    JSObject::Dump(os);
18364514f5e3Sopenharmony_ci
18374514f5e3Sopenharmony_ci    os << " <TaggedTree[" << map->NumberOfElements() << "]>\n";
18384514f5e3Sopenharmony_ci    map->Dump(os);
18394514f5e3Sopenharmony_ci}
18404514f5e3Sopenharmony_ci
18414514f5e3Sopenharmony_civoid JSAPITreeMap::DumpForSnapshot(std::vector<Reference> &vec) const
18424514f5e3Sopenharmony_ci{
18434514f5e3Sopenharmony_ci    if (!(GetTreeMap().IsInvalidValue())) {
18444514f5e3Sopenharmony_ci        TaggedTreeMap *map = TaggedTreeMap::Cast(GetTreeMap().GetTaggedObject());
18454514f5e3Sopenharmony_ci        vec.emplace_back("treemap", GetTreeMap());
18464514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
18474514f5e3Sopenharmony_ci    }
18484514f5e3Sopenharmony_ci
18494514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
18504514f5e3Sopenharmony_ci}
18514514f5e3Sopenharmony_ci
18524514f5e3Sopenharmony_civoid JSAPITreeMapIterator::Dump(std::ostream &os) const
18534514f5e3Sopenharmony_ci{
18544514f5e3Sopenharmony_ci    TaggedTreeMap *map =
18554514f5e3Sopenharmony_ci        TaggedTreeMap::Cast(JSAPITreeMap::Cast(GetIteratedMap().GetTaggedObject())->GetTreeMap().GetTaggedObject());
18564514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
18574514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
18584514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
18594514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
18604514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
18614514f5e3Sopenharmony_ci    JSObject::Dump(os);
18624514f5e3Sopenharmony_ci
18634514f5e3Sopenharmony_ci    os << " <TaggedTree[" << map->NumberOfElements() << "]>\n";
18644514f5e3Sopenharmony_ci    map->Dump(os);
18654514f5e3Sopenharmony_ci}
18664514f5e3Sopenharmony_ci
18674514f5e3Sopenharmony_civoid JSAPITreeMapIterator::DumpForSnapshot(std::vector<Reference> &vec) const
18684514f5e3Sopenharmony_ci{
18694514f5e3Sopenharmony_ci    if (!(GetIteratedMap().IsInvalidValue())) {
18704514f5e3Sopenharmony_ci        TaggedTreeMap *map =
18714514f5e3Sopenharmony_ci            TaggedTreeMap::Cast(JSAPITreeMap::Cast(GetIteratedMap().GetTaggedObject())->GetTreeMap().GetTaggedObject());
18724514f5e3Sopenharmony_ci        vec.emplace_back("iteratedmap", GetIteratedMap());
18734514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
18744514f5e3Sopenharmony_ci    }
18754514f5e3Sopenharmony_ci
18764514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
18774514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
18784514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
18794514f5e3Sopenharmony_ci}
18804514f5e3Sopenharmony_ci
18814514f5e3Sopenharmony_citemplate <typename T>
18824514f5e3Sopenharmony_civoid DumpTaggedTreeEntry(T tree, std::ostream &os, int index, bool isMap = false)
18834514f5e3Sopenharmony_ci{
18844514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
18854514f5e3Sopenharmony_ci    JSTaggedValue parent(tree->GetParent(index));
18864514f5e3Sopenharmony_ci    JSTaggedValue val(tree->GetValue(index));
18874514f5e3Sopenharmony_ci    JSTaggedValue color(static_cast<int>(tree->GetColor(index)));
18884514f5e3Sopenharmony_ci    JSTaggedValue left = tree->GetLeftChild(index);
18894514f5e3Sopenharmony_ci    JSTaggedValue right = tree->GetRightChild(index);
18904514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[entry] " << index << ": ";
18914514f5e3Sopenharmony_ci    os << "\n";
18924514f5e3Sopenharmony_ci    if (isMap) {
18934514f5e3Sopenharmony_ci        os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "   [key]:    {";
18944514f5e3Sopenharmony_ci        JSTaggedValue key(tree->GetKey(index));
18954514f5e3Sopenharmony_ci        key.DumpTaggedValue(os);
18964514f5e3Sopenharmony_ci        os << std::right << "};";
18974514f5e3Sopenharmony_ci        os << "\n";
18984514f5e3Sopenharmony_ci    }
18994514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_TYPE_OFFSET) << "   [value]:  {";
19004514f5e3Sopenharmony_ci    val.DumpTaggedValue(os);
19014514f5e3Sopenharmony_ci    os << std::right << "};";
19024514f5e3Sopenharmony_ci    os << "\n";
19034514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "   [parent]: {";
19044514f5e3Sopenharmony_ci    parent.DumpTaggedValue(os);
19054514f5e3Sopenharmony_ci    os << std::right << "};";
19064514f5e3Sopenharmony_ci    os << "\n";
19074514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_TYPE_OFFSET) << "   [color]:  {";
19084514f5e3Sopenharmony_ci    color.DumpTaggedValue(os);
19094514f5e3Sopenharmony_ci    os << std::right << "};";
19104514f5e3Sopenharmony_ci    os << "\n";
19114514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "   [left]:   {";
19124514f5e3Sopenharmony_ci    left.DumpTaggedValue(os);
19134514f5e3Sopenharmony_ci    os << std::right << "}; ";
19144514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_TYPE_OFFSET) << "  [right]: {";
19154514f5e3Sopenharmony_ci    right.DumpTaggedValue(os);
19164514f5e3Sopenharmony_ci    os << std::right << "};";
19174514f5e3Sopenharmony_ci    os << "\n";
19184514f5e3Sopenharmony_ci}
19194514f5e3Sopenharmony_civoid TaggedTreeMap::Dump(std::ostream &os) const
19204514f5e3Sopenharmony_ci{
19214514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
19224514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[Elements]: {";
19234514f5e3Sopenharmony_ci    JSTaggedValue node = TaggedArray::Get(0);
19244514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
19254514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
19264514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[Delete]:   {";
19274514f5e3Sopenharmony_ci    node = TaggedArray::Get(1);
19284514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
19294514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
19304514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[Capacity]: {";
19314514f5e3Sopenharmony_ci    node = TaggedArray::Get(2); // 2 means the three element
19324514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
19334514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
19344514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[RootNode]: {";
19354514f5e3Sopenharmony_ci    node = TaggedArray::Get(3); // 3 means the three element
19364514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
19374514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
19384514f5e3Sopenharmony_ci
19394514f5e3Sopenharmony_ci    uint32_t capacity = NumberOfElements() + NumberOfDeletedElements();
19404514f5e3Sopenharmony_ci    for (uint32_t index = 0; index < capacity; index++) {
19414514f5e3Sopenharmony_ci        if (GetKey(index).IsHole()) {
19424514f5e3Sopenharmony_ci            os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[entry] " << index << ": ";
19434514f5e3Sopenharmony_ci            GetKey(index).DumpTaggedValue(os);
19444514f5e3Sopenharmony_ci            os << "\n";
19454514f5e3Sopenharmony_ci        } else {
19464514f5e3Sopenharmony_ci            DumpTaggedTreeEntry(const_cast<TaggedTreeMap *>(this), os, index, true);
19474514f5e3Sopenharmony_ci        }
19484514f5e3Sopenharmony_ci    }
19494514f5e3Sopenharmony_ci}
19504514f5e3Sopenharmony_ci
19514514f5e3Sopenharmony_civoid JSAPITreeSet::Dump(std::ostream &os) const
19524514f5e3Sopenharmony_ci{
19534514f5e3Sopenharmony_ci    TaggedTreeSet *set = TaggedTreeSet::Cast(GetTreeSet().GetTaggedObject());
19544514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
19554514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
19564514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
19574514f5e3Sopenharmony_ci    JSObject::Dump(os);
19584514f5e3Sopenharmony_ci
19594514f5e3Sopenharmony_ci    os << " <TaggedTree[" << set->NumberOfElements() << "]>\n";
19604514f5e3Sopenharmony_ci    set->Dump(os);
19614514f5e3Sopenharmony_ci}
19624514f5e3Sopenharmony_ci
19634514f5e3Sopenharmony_civoid JSAPITreeSet::DumpForSnapshot(std::vector<Reference> &vec) const
19644514f5e3Sopenharmony_ci{
19654514f5e3Sopenharmony_ci    if (!(GetTreeSet().IsInvalidValue())) {
19664514f5e3Sopenharmony_ci        TaggedTreeSet *set = TaggedTreeSet::Cast(GetTreeSet().GetTaggedObject());
19674514f5e3Sopenharmony_ci        vec.emplace_back("treeset", GetTreeSet());
19684514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
19694514f5e3Sopenharmony_ci    }
19704514f5e3Sopenharmony_ci
19714514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
19724514f5e3Sopenharmony_ci}
19734514f5e3Sopenharmony_ci
19744514f5e3Sopenharmony_civoid JSAPITreeSetIterator::Dump(std::ostream &os) const
19754514f5e3Sopenharmony_ci{
19764514f5e3Sopenharmony_ci    TaggedTreeSet *set =
19774514f5e3Sopenharmony_ci        TaggedTreeSet::Cast(JSAPITreeSet::Cast(GetIteratedSet().GetTaggedObject())->GetTreeSet().GetTaggedObject());
19784514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
19794514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
19804514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
19814514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
19824514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
19834514f5e3Sopenharmony_ci    JSObject::Dump(os);
19844514f5e3Sopenharmony_ci
19854514f5e3Sopenharmony_ci    os << " <TaggedTree[" << set->NumberOfElements() << "]>\n";
19864514f5e3Sopenharmony_ci    set->Dump(os);
19874514f5e3Sopenharmony_ci}
19884514f5e3Sopenharmony_ci
19894514f5e3Sopenharmony_civoid JSAPITreeSetIterator::DumpForSnapshot(std::vector<Reference> &vec) const
19904514f5e3Sopenharmony_ci{
19914514f5e3Sopenharmony_ci    if (!(GetIteratedSet().IsInvalidValue())) {
19924514f5e3Sopenharmony_ci        TaggedTreeSet *set =
19934514f5e3Sopenharmony_ci            TaggedTreeSet::Cast(JSAPITreeSet::Cast(GetIteratedSet().GetTaggedObject())->GetTreeSet().GetTaggedObject());
19944514f5e3Sopenharmony_ci        vec.emplace_back("iteratedset", GetIteratedSet());
19954514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
19964514f5e3Sopenharmony_ci    }
19974514f5e3Sopenharmony_ci
19984514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
19994514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
20004514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
20014514f5e3Sopenharmony_ci}
20024514f5e3Sopenharmony_ci
20034514f5e3Sopenharmony_civoid TaggedTreeSet::Dump(std::ostream &os) const
20044514f5e3Sopenharmony_ci{
20054514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
20064514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[Elements]: {";
20074514f5e3Sopenharmony_ci    JSTaggedValue node = TaggedArray::Get(0);
20084514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
20094514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
20104514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[Delete]:   {";
20114514f5e3Sopenharmony_ci    node = TaggedArray::Get(1);
20124514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
20134514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
20144514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[Capacity]: {";
20154514f5e3Sopenharmony_ci    node = TaggedArray::Get(2); // 2 means the three element
20164514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
20174514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
20184514f5e3Sopenharmony_ci    os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[RootNode]: {";
20194514f5e3Sopenharmony_ci    node = TaggedArray::Get(3); // 3 means the three element
20204514f5e3Sopenharmony_ci    node.DumpTaggedValue(os);
20214514f5e3Sopenharmony_ci    os << std::right << "}" << "\n";
20224514f5e3Sopenharmony_ci
20234514f5e3Sopenharmony_ci    uint32_t capacity = NumberOfElements() + NumberOfDeletedElements();
20244514f5e3Sopenharmony_ci    for (uint32_t index = 0; index < capacity; index++) {
20254514f5e3Sopenharmony_ci        if (GetKey(index).IsHole()) {
20264514f5e3Sopenharmony_ci            os << std::left << std::setw(DUMP_ELEMENT_OFFSET) << "[entry] " << index << ": ";
20274514f5e3Sopenharmony_ci            GetKey(index).DumpTaggedValue(os);
20284514f5e3Sopenharmony_ci            os << "\n";
20294514f5e3Sopenharmony_ci        } else {
20304514f5e3Sopenharmony_ci            DumpTaggedTreeEntry(const_cast<TaggedTreeSet *>(this), os, index);
20314514f5e3Sopenharmony_ci        }
20324514f5e3Sopenharmony_ci    }
20334514f5e3Sopenharmony_ci}
20344514f5e3Sopenharmony_ci
20354514f5e3Sopenharmony_civoid JSAPIPlainArray::Dump(std::ostream &os) const
20364514f5e3Sopenharmony_ci{
20374514f5e3Sopenharmony_ci    TaggedArray *keys = TaggedArray::Cast(GetKeys().GetTaggedObject());
20384514f5e3Sopenharmony_ci    TaggedArray *values = TaggedArray::Cast(GetValues().GetTaggedObject());
20394514f5e3Sopenharmony_ci    uint32_t len = static_cast<uint32_t>(GetLength());
20404514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
20414514f5e3Sopenharmony_ci        os << " - keys: ";
20424514f5e3Sopenharmony_ci        keys->Get(i).DumpTaggedValue(os);
20434514f5e3Sopenharmony_ci        os << "\n";
20444514f5e3Sopenharmony_ci        os << " - values: ";
20454514f5e3Sopenharmony_ci        values->Get(i).DumpTaggedValue(os);
20464514f5e3Sopenharmony_ci        os << "\n";
20474514f5e3Sopenharmony_ci    }
20484514f5e3Sopenharmony_ci    os << " - length: " << std::dec << len << "\n";
20494514f5e3Sopenharmony_ci    JSObject::Dump(os);
20504514f5e3Sopenharmony_ci}
20514514f5e3Sopenharmony_ci
20524514f5e3Sopenharmony_civoid JSAPIPlainArrayIterator::Dump(std::ostream &os) const
20534514f5e3Sopenharmony_ci{
20544514f5e3Sopenharmony_ci    JSAPIPlainArray *array = JSAPIPlainArray::Cast(GetIteratedPlainArray().GetTaggedObject());
20554514f5e3Sopenharmony_ci    os << " - length: " << std::dec << array->GetSize() << "\n";
20564514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
20574514f5e3Sopenharmony_ci    JSObject::Dump(os);
20584514f5e3Sopenharmony_ci}
20594514f5e3Sopenharmony_ci
20604514f5e3Sopenharmony_civoid JSAPIPlainArrayIterator::DumpForSnapshot(std::vector<Reference> &vec) const
20614514f5e3Sopenharmony_ci{
20624514f5e3Sopenharmony_ci    if (!(GetIteratedPlainArray().IsInvalidValue())) {
20634514f5e3Sopenharmony_ci        JSAPIPlainArray *array = JSAPIPlainArray::Cast(GetIteratedPlainArray().GetTaggedObject());
20644514f5e3Sopenharmony_ci        vec.emplace_back("iteratedplainarray", GetIteratedPlainArray());
20654514f5e3Sopenharmony_ci        array->DumpForSnapshot(vec);
20664514f5e3Sopenharmony_ci    }
20674514f5e3Sopenharmony_ci
20684514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
20694514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
20704514f5e3Sopenharmony_ci}
20714514f5e3Sopenharmony_ci
20724514f5e3Sopenharmony_civoid JSForInIterator::Dump(std::ostream &os) const
20734514f5e3Sopenharmony_ci{
20744514f5e3Sopenharmony_ci    os << " - Object : ";
20754514f5e3Sopenharmony_ci    GetObject().DumpTaggedValue(os);
20764514f5e3Sopenharmony_ci    os << " - CachedHclass : ";
20774514f5e3Sopenharmony_ci    GetCachedHclass().DumpTaggedValue(os);
20784514f5e3Sopenharmony_ci    os << "\n";
20794514f5e3Sopenharmony_ci    os << " - Keys : ";
20804514f5e3Sopenharmony_ci    GetKeys().DumpTaggedValue(os);
20814514f5e3Sopenharmony_ci    os << "\n";
20824514f5e3Sopenharmony_ci    os << " - Index : " << GetIndex();
20834514f5e3Sopenharmony_ci    os << "\n";
20844514f5e3Sopenharmony_ci    os << " - Length : " << GetLength();
20854514f5e3Sopenharmony_ci    os << "\n";
20864514f5e3Sopenharmony_ci    JSObject::Dump(os);
20874514f5e3Sopenharmony_ci}
20884514f5e3Sopenharmony_ci
20894514f5e3Sopenharmony_civoid JSMapIterator::Dump(std::ostream &os) const
20904514f5e3Sopenharmony_ci{
20914514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(GetIteratedMap().GetTaggedObject());
20924514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
20934514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
20944514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
20954514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
20964514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
20974514f5e3Sopenharmony_ci    JSObject::Dump(os);
20984514f5e3Sopenharmony_ci
20994514f5e3Sopenharmony_ci    os << " <NameDictionary[" << map->NumberOfElements() << "]>\n";
21004514f5e3Sopenharmony_ci    map->Dump(os);
21014514f5e3Sopenharmony_ci}
21024514f5e3Sopenharmony_ci
21034514f5e3Sopenharmony_civoid JSSharedMapIterator::Dump(std::ostream &os) const
21044514f5e3Sopenharmony_ci{
21054514f5e3Sopenharmony_ci    JSSharedMap *iteratedMap = JSSharedMap::Cast(GetIteratedMap().GetTaggedObject());
21064514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(iteratedMap->GetLinkedMap().GetTaggedObject());
21074514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
21084514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
21094514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
21104514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
21114514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
21124514f5e3Sopenharmony_ci    JSObject::Dump(os);
21134514f5e3Sopenharmony_ci
21144514f5e3Sopenharmony_ci    os << " <NameDictionary[" << map->NumberOfElements() << "]>\n";
21154514f5e3Sopenharmony_ci    map->Dump(os);
21164514f5e3Sopenharmony_ci}
21174514f5e3Sopenharmony_ci
21184514f5e3Sopenharmony_civoid JSSet::Dump(std::ostream &os) const
21194514f5e3Sopenharmony_ci{
21204514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(GetLinkedSet().GetTaggedObject());
21214514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
21224514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
21234514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
21244514f5e3Sopenharmony_ci    JSObject::Dump(os);
21254514f5e3Sopenharmony_ci
21264514f5e3Sopenharmony_ci    os << " <NameDictionary[" << set->NumberOfElements() << "]>\n";
21274514f5e3Sopenharmony_ci    set->Dump(os);
21284514f5e3Sopenharmony_ci}
21294514f5e3Sopenharmony_ci
21304514f5e3Sopenharmony_civoid JSSharedSet::Dump(std::ostream &os) const
21314514f5e3Sopenharmony_ci{
21324514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(GetLinkedSet().GetTaggedObject());
21334514f5e3Sopenharmony_ci    os << " - modRecord: " << std::dec << GetModRecord() << "\n";
21344514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
21354514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
21364514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
21374514f5e3Sopenharmony_ci    JSObject::Dump(os);
21384514f5e3Sopenharmony_ci
21394514f5e3Sopenharmony_ci    os << " <NameDictionary[" << set->NumberOfElements() << "]>\n";
21404514f5e3Sopenharmony_ci    set->Dump(os);
21414514f5e3Sopenharmony_ci}
21424514f5e3Sopenharmony_ci
21434514f5e3Sopenharmony_civoid JSWeakMap::Dump(std::ostream &os) const
21444514f5e3Sopenharmony_ci{
21454514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(GetLinkedMap().GetTaggedObject());
21464514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetSize() << "\n";
21474514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << map->NumberOfElements() << "\n";
21484514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
21494514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << map->Capacity() << "\n";
21504514f5e3Sopenharmony_ci    JSObject::Dump(os);
21514514f5e3Sopenharmony_ci
21524514f5e3Sopenharmony_ci    os << " <NameDictionary[" << map->NumberOfElements() << "]>\n";
21534514f5e3Sopenharmony_ci    map->Dump(os);
21544514f5e3Sopenharmony_ci}
21554514f5e3Sopenharmony_ci
21564514f5e3Sopenharmony_civoid JSWeakSet::Dump(std::ostream &os) const
21574514f5e3Sopenharmony_ci{
21584514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(GetLinkedSet().GetTaggedObject());
21594514f5e3Sopenharmony_ci    os << " - size: " << std::dec << GetSize() << "\n";
21604514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
21614514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
21624514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
21634514f5e3Sopenharmony_ci    JSObject::Dump(os);
21644514f5e3Sopenharmony_ci
21654514f5e3Sopenharmony_ci    os << " <NameDictionary[" << set->NumberOfElements() << "]>\n";
21664514f5e3Sopenharmony_ci    set->Dump(os);
21674514f5e3Sopenharmony_ci}
21684514f5e3Sopenharmony_ci
21694514f5e3Sopenharmony_civoid JSWeakRef::Dump(std::ostream &os) const
21704514f5e3Sopenharmony_ci{
21714514f5e3Sopenharmony_ci    os << " - WeakObject : ";
21724514f5e3Sopenharmony_ci    GetWeakObject().DumpTaggedValue(os);
21734514f5e3Sopenharmony_ci    os << "\n";
21744514f5e3Sopenharmony_ci    JSObject::Dump(os);
21754514f5e3Sopenharmony_ci}
21764514f5e3Sopenharmony_ci
21774514f5e3Sopenharmony_civoid JSFinalizationRegistry::Dump(std::ostream &os) const
21784514f5e3Sopenharmony_ci{
21794514f5e3Sopenharmony_ci    os << " - CleanupCallback : ";
21804514f5e3Sopenharmony_ci    GetCleanupCallback().DumpTaggedValue(os);
21814514f5e3Sopenharmony_ci    os << "\n";
21824514f5e3Sopenharmony_ci    os << " - NoUnregister : ";
21834514f5e3Sopenharmony_ci    GetNoUnregister().Dump(os);
21844514f5e3Sopenharmony_ci    os << "\n";
21854514f5e3Sopenharmony_ci    os << " - MaybeUnregister : ";
21864514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(GetMaybeUnregister().GetTaggedObject());
21874514f5e3Sopenharmony_ci    os << "   -   elements: " << std::dec << map->NumberOfElements() << "\n";
21884514f5e3Sopenharmony_ci    os << "   -   deleted-elements: " << std::dec << map->NumberOfDeletedElements() << "\n";
21894514f5e3Sopenharmony_ci    os << "   -   capacity: " << std::dec << map->Capacity() << "\n";
21904514f5e3Sopenharmony_ci    JSObject::Dump(os);
21914514f5e3Sopenharmony_ci}
21924514f5e3Sopenharmony_ci
21934514f5e3Sopenharmony_civoid CellRecord::Dump(std::ostream &os) const
21944514f5e3Sopenharmony_ci{
21954514f5e3Sopenharmony_ci    os << " - WeakRefTarget : ";
21964514f5e3Sopenharmony_ci    GetFromWeakRefTarget().DumpTaggedValue(os);
21974514f5e3Sopenharmony_ci    os << "\n";
21984514f5e3Sopenharmony_ci    os << " - HeldValue : ";
21994514f5e3Sopenharmony_ci    GetHeldValue().DumpTaggedValue(os);
22004514f5e3Sopenharmony_ci    os << "\n";
22014514f5e3Sopenharmony_ci}
22024514f5e3Sopenharmony_ci
22034514f5e3Sopenharmony_civoid JSSetIterator::Dump(std::ostream &os) const
22044514f5e3Sopenharmony_ci{
22054514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(GetIteratedSet().GetTaggedObject());
22064514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
22074514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
22084514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
22094514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
22104514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
22114514f5e3Sopenharmony_ci    JSObject::Dump(os);
22124514f5e3Sopenharmony_ci
22134514f5e3Sopenharmony_ci    os << " <NameDictionary[" << set->NumberOfElements() << "]>\n";
22144514f5e3Sopenharmony_ci    set->Dump(os);
22154514f5e3Sopenharmony_ci}
22164514f5e3Sopenharmony_ci
22174514f5e3Sopenharmony_civoid JSSharedSetIterator::Dump(std::ostream &os) const
22184514f5e3Sopenharmony_ci{
22194514f5e3Sopenharmony_ci    JSSharedSet *iteratedSet = JSSharedSet::Cast(GetIteratedSet().GetTaggedObject());
22204514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(iteratedSet->GetLinkedSet().GetTaggedObject());
22214514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << set->NumberOfElements() << "\n";
22224514f5e3Sopenharmony_ci    os << " - deleted-elements: " << std::dec << set->NumberOfDeletedElements() << "\n";
22234514f5e3Sopenharmony_ci    os << " - capacity: " << std::dec << set->Capacity() << "\n";
22244514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
22254514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
22264514f5e3Sopenharmony_ci    JSObject::Dump(os);
22274514f5e3Sopenharmony_ci
22284514f5e3Sopenharmony_ci    os << " <NameDictionary[" << set->NumberOfElements() << "]>\n";
22294514f5e3Sopenharmony_ci    set->Dump(os);
22304514f5e3Sopenharmony_ci}
22314514f5e3Sopenharmony_ci
22324514f5e3Sopenharmony_civoid JSRegExpIterator::Dump(std::ostream &os) const
22334514f5e3Sopenharmony_ci{
22344514f5e3Sopenharmony_ci    os << " - IteratingRegExp: ";
22354514f5e3Sopenharmony_ci    GetIteratingRegExp().Dump(os);
22364514f5e3Sopenharmony_ci    os << "\n";
22374514f5e3Sopenharmony_ci    os << " - IteratedString: ";
22384514f5e3Sopenharmony_ci    GetIteratedString().Dump(os);
22394514f5e3Sopenharmony_ci    os << "\n";
22404514f5e3Sopenharmony_ci    os << " - Global: " << std::dec << GetGlobal() << "\n";
22414514f5e3Sopenharmony_ci    os << " - Unicode: " << std::dec << GetUnicode() << "\n";
22424514f5e3Sopenharmony_ci    os << " - Done: " << std::dec << GetDone() << "\n";
22434514f5e3Sopenharmony_ci    JSObject::Dump(os);
22444514f5e3Sopenharmony_ci}
22454514f5e3Sopenharmony_ci
22464514f5e3Sopenharmony_civoid JSArray::Dump(std::ostream &os) const
22474514f5e3Sopenharmony_ci{
22484514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetArrayLength() << "\n";
22494514f5e3Sopenharmony_ci    JSObject::Dump(os);
22504514f5e3Sopenharmony_ci}
22514514f5e3Sopenharmony_ci
22524514f5e3Sopenharmony_civoid JSSharedArray::Dump(std::ostream &os) const
22534514f5e3Sopenharmony_ci{
22544514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetArrayLength() << "\n";
22554514f5e3Sopenharmony_ci    JSObject::Dump(os);
22564514f5e3Sopenharmony_ci}
22574514f5e3Sopenharmony_ci
22584514f5e3Sopenharmony_civoid JSArrayIterator::Dump(std::ostream &os) const
22594514f5e3Sopenharmony_ci{
22604514f5e3Sopenharmony_ci    JSArray *array = JSArray::Cast(GetIteratedArray().GetTaggedObject());
22614514f5e3Sopenharmony_ci    os << " - length: " << std::dec << array->GetArrayLength() << "\n";
22624514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
22634514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
22644514f5e3Sopenharmony_ci    JSObject::Dump(os);
22654514f5e3Sopenharmony_ci}
22664514f5e3Sopenharmony_ci
22674514f5e3Sopenharmony_civoid JSSharedArrayIterator::Dump(std::ostream &os) const
22684514f5e3Sopenharmony_ci{
22694514f5e3Sopenharmony_ci    JSSharedArray *array = JSSharedArray::Cast(GetIteratedArray().GetTaggedObject());
22704514f5e3Sopenharmony_ci    os << " - length: " << std::dec << array->GetArrayLength() << "\n";
22714514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
22724514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
22734514f5e3Sopenharmony_ci    JSObject::Dump(os);
22744514f5e3Sopenharmony_ci}
22754514f5e3Sopenharmony_ci
22764514f5e3Sopenharmony_civoid JSAPIArrayList::Dump(std::ostream &os) const
22774514f5e3Sopenharmony_ci{
22784514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetSize() << "\n";
22794514f5e3Sopenharmony_ci    JSObject::Dump(os);
22804514f5e3Sopenharmony_ci}
22814514f5e3Sopenharmony_ci
22824514f5e3Sopenharmony_civoid JSAPIArrayListIterator::Dump(std::ostream &os) const
22834514f5e3Sopenharmony_ci{
22844514f5e3Sopenharmony_ci    JSAPIArrayList *arrayList = JSAPIArrayList::Cast(GetIteratedArrayList().GetTaggedObject());
22854514f5e3Sopenharmony_ci    os << " - length: " << std::dec << arrayList->GetSize() << "\n";
22864514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
22874514f5e3Sopenharmony_ci    JSObject::Dump(os);
22884514f5e3Sopenharmony_ci}
22894514f5e3Sopenharmony_ci
22904514f5e3Sopenharmony_civoid JSAPIDeque::Dump(std::ostream &os) const
22914514f5e3Sopenharmony_ci{
22924514f5e3Sopenharmony_ci    os << " - first: " << std::dec << GetFirst() << "\n";
22934514f5e3Sopenharmony_ci    os << " - last: " << std::dec << GetLast() << "\n";
22944514f5e3Sopenharmony_ci    JSObject::Dump(os);
22954514f5e3Sopenharmony_ci}
22964514f5e3Sopenharmony_ci
22974514f5e3Sopenharmony_civoid JSAPIDequeIterator::Dump(std::ostream &os) const
22984514f5e3Sopenharmony_ci{
22994514f5e3Sopenharmony_ci    JSAPIDeque *deque = JSAPIDeque::Cast(GetIteratedDeque().GetTaggedObject());
23004514f5e3Sopenharmony_ci    os << " - length: " << std::dec << deque->GetSize() << "\n";
23014514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
23024514f5e3Sopenharmony_ci    JSObject::Dump(os);
23034514f5e3Sopenharmony_ci}
23044514f5e3Sopenharmony_ci
23054514f5e3Sopenharmony_civoid JSAPILightWeightMap::Dump(std::ostream &os) const
23064514f5e3Sopenharmony_ci{
23074514f5e3Sopenharmony_ci    uint32_t capacity = GetSize();
23084514f5e3Sopenharmony_ci    os << " - length: " << std::dec << capacity << "\n";
23094514f5e3Sopenharmony_ci    uint32_t i = 0;
23104514f5e3Sopenharmony_ci    TaggedArray *hashArray = TaggedArray::Cast(GetHashes().GetTaggedObject());
23114514f5e3Sopenharmony_ci    TaggedArray *keyArray = TaggedArray::Cast(GetKeys().GetTaggedObject());
23124514f5e3Sopenharmony_ci    TaggedArray *valueArray = TaggedArray::Cast(GetValues().GetTaggedObject());
23134514f5e3Sopenharmony_ci    while (capacity > i) {
23144514f5e3Sopenharmony_ci        os << " hash: ";
23154514f5e3Sopenharmony_ci        hashArray->Get(i).DumpTaggedValue(os);
23164514f5e3Sopenharmony_ci        os << " key: ";
23174514f5e3Sopenharmony_ci        keyArray->Get(i).DumpTaggedValue(os);
23184514f5e3Sopenharmony_ci        os << " value: ";
23194514f5e3Sopenharmony_ci        valueArray->Get(i).DumpTaggedValue(os);
23204514f5e3Sopenharmony_ci        os << "\n";
23214514f5e3Sopenharmony_ci        i++;
23224514f5e3Sopenharmony_ci    }
23234514f5e3Sopenharmony_ci    JSObject::Dump(os);
23244514f5e3Sopenharmony_ci}
23254514f5e3Sopenharmony_ci
23264514f5e3Sopenharmony_civoid JSAPILightWeightMapIterator::Dump(std::ostream &os) const
23274514f5e3Sopenharmony_ci{
23284514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
23294514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
23304514f5e3Sopenharmony_ci    JSObject::Dump(os);
23314514f5e3Sopenharmony_ci}
23324514f5e3Sopenharmony_ci
23334514f5e3Sopenharmony_civoid JSAPIHashMap::Dump(std::ostream &os) const
23344514f5e3Sopenharmony_ci{
23354514f5e3Sopenharmony_ci    TaggedHashArray *hashArray = TaggedHashArray::Cast(GetTable().GetTaggedObject());
23364514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << GetSize() << "\n";
23374514f5e3Sopenharmony_ci    os << " - table capacity: " << std::dec << static_cast<int>(hashArray->GetLength()) << "\n";
23384514f5e3Sopenharmony_ci    JSObject::Dump(os);
23394514f5e3Sopenharmony_ci}
23404514f5e3Sopenharmony_ci
23414514f5e3Sopenharmony_civoid JSAPIHashMap::DumpForSnapshot(std::vector<Reference> &vec) const
23424514f5e3Sopenharmony_ci{
23434514f5e3Sopenharmony_ci    if (!(GetTable().IsInvalidValue())) {
23444514f5e3Sopenharmony_ci        TaggedHashArray *map = TaggedHashArray::Cast(GetTable().GetTaggedObject());
23454514f5e3Sopenharmony_ci        vec.emplace_back("hashmap", GetTable());
23464514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
23474514f5e3Sopenharmony_ci    }
23484514f5e3Sopenharmony_ci
23494514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
23504514f5e3Sopenharmony_ci}
23514514f5e3Sopenharmony_ci
23524514f5e3Sopenharmony_civoid JSAPIHashSet::Dump(std::ostream &os) const
23534514f5e3Sopenharmony_ci{
23544514f5e3Sopenharmony_ci    TaggedHashArray *hashArray = TaggedHashArray::Cast(GetTable().GetTaggedObject());
23554514f5e3Sopenharmony_ci    os << " - elements: " << std::dec << GetSize() << "\n";
23564514f5e3Sopenharmony_ci    os << " - table capacity: " << std::dec << static_cast<int>(hashArray->GetLength()) << "\n";
23574514f5e3Sopenharmony_ci    JSObject::Dump(os);
23584514f5e3Sopenharmony_ci}
23594514f5e3Sopenharmony_ci
23604514f5e3Sopenharmony_civoid JSAPIHashSet::DumpForSnapshot(std::vector<Reference> &vec) const
23614514f5e3Sopenharmony_ci{
23624514f5e3Sopenharmony_ci    if (!(GetTable().IsInvalidValue())) {
23634514f5e3Sopenharmony_ci        TaggedHashArray *set = TaggedHashArray::Cast(GetTable().GetTaggedObject());
23644514f5e3Sopenharmony_ci        vec.emplace_back("hashset", GetTable());
23654514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
23664514f5e3Sopenharmony_ci    }
23674514f5e3Sopenharmony_ci
23684514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
23694514f5e3Sopenharmony_ci}
23704514f5e3Sopenharmony_ci
23714514f5e3Sopenharmony_civoid JSAPIHashMapIterator::Dump(std::ostream &os) const
23724514f5e3Sopenharmony_ci{
23734514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
23744514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
23754514f5e3Sopenharmony_ci    JSObject::Dump(os);
23764514f5e3Sopenharmony_ci}
23774514f5e3Sopenharmony_ci
23784514f5e3Sopenharmony_civoid JSAPIHashMapIterator::DumpForSnapshot(std::vector<Reference> &vec) const
23794514f5e3Sopenharmony_ci{
23804514f5e3Sopenharmony_ci    vec.emplace_back(CString("IteratedHashMap"), JSTaggedValue(GetIteratedHashMap()));
23814514f5e3Sopenharmony_ci    vec.emplace_back(CString("TaggedQueue"), JSTaggedValue(GetTaggedQueue()));
23824514f5e3Sopenharmony_ci    vec.emplace_back(CString("CurrentNodeResult"), JSTaggedValue(GetCurrentNodeResult()));
23834514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
23844514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
23854514f5e3Sopenharmony_ci}
23864514f5e3Sopenharmony_ci
23874514f5e3Sopenharmony_civoid JSAPIHashSetIterator::Dump(std::ostream &os) const
23884514f5e3Sopenharmony_ci{
23894514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
23904514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
23914514f5e3Sopenharmony_ci    JSObject::Dump(os);
23924514f5e3Sopenharmony_ci}
23934514f5e3Sopenharmony_ci
23944514f5e3Sopenharmony_civoid JSAPIHashSetIterator::DumpForSnapshot(std::vector<Reference> &vec) const
23954514f5e3Sopenharmony_ci{
23964514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
23974514f5e3Sopenharmony_ci}
23984514f5e3Sopenharmony_ci
23994514f5e3Sopenharmony_civoid JSAPILightWeightSet::Dump(std::ostream &os) const
24004514f5e3Sopenharmony_ci{
24014514f5e3Sopenharmony_ci    TaggedArray *keys = TaggedArray::Cast(GetHashes().GetTaggedObject());
24024514f5e3Sopenharmony_ci    TaggedArray *values = TaggedArray::Cast(GetValues().GetTaggedObject());
24034514f5e3Sopenharmony_ci    uint32_t len = GetLength();
24044514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
24054514f5e3Sopenharmony_ci        os << " - keys: ";
24064514f5e3Sopenharmony_ci        keys->Get(i).DumpTaggedValue(os);
24074514f5e3Sopenharmony_ci        os << "\n";
24084514f5e3Sopenharmony_ci        os << " - values: ";
24094514f5e3Sopenharmony_ci        values->Get(i).DumpTaggedValue(os);
24104514f5e3Sopenharmony_ci        os << "\n";
24114514f5e3Sopenharmony_ci    }
24124514f5e3Sopenharmony_ci    os << " - length: " << std::dec << len << "\n";
24134514f5e3Sopenharmony_ci    JSObject::Dump(os);
24144514f5e3Sopenharmony_ci}
24154514f5e3Sopenharmony_ci
24164514f5e3Sopenharmony_civoid JSAPILightWeightSetIterator::Dump(std::ostream &os) const
24174514f5e3Sopenharmony_ci{
24184514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
24194514f5e3Sopenharmony_ci    os << " - IterationKind: " << std::dec << static_cast<int>(GetIterationKind()) << "\n";
24204514f5e3Sopenharmony_ci    JSObject::Dump(os);
24214514f5e3Sopenharmony_ci}
24224514f5e3Sopenharmony_ci
24234514f5e3Sopenharmony_civoid JSAPIList::Dump(std::ostream &os) const
24244514f5e3Sopenharmony_ci{
24254514f5e3Sopenharmony_ci    TaggedSingleList *list = TaggedSingleList::Cast(GetSingleList().GetTaggedObject());
24264514f5e3Sopenharmony_ci    os << " - length: " << std::dec << list->GetCapacityFromTaggedArray() << "\n";
24274514f5e3Sopenharmony_ci    os << " - node num: " << std::dec << list->NumberOfNodes() << "\n";
24284514f5e3Sopenharmony_ci    os << " - delete node num: " << std::dec << list->NumberOfDeletedNodes() << "\n";
24294514f5e3Sopenharmony_ci    os << " - is odered list: " << std::dec << this->IsOrderedList() << "\n";
24304514f5e3Sopenharmony_ci    JSObject::Dump(os);
24314514f5e3Sopenharmony_ci    list->Dump(os);
24324514f5e3Sopenharmony_ci}
24334514f5e3Sopenharmony_ci
24344514f5e3Sopenharmony_civoid JSAPIList::DumpForSnapshot(std::vector<Reference> &vec) const
24354514f5e3Sopenharmony_ci{
24364514f5e3Sopenharmony_ci    if (!(GetSingleList().IsInvalidValue())) {
24374514f5e3Sopenharmony_ci        TaggedSingleList *list = TaggedSingleList::Cast(GetSingleList().GetTaggedObject());
24384514f5e3Sopenharmony_ci        list->DumpForSnapshot(vec);
24394514f5e3Sopenharmony_ci    }
24404514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
24414514f5e3Sopenharmony_ci}
24424514f5e3Sopenharmony_ci
24434514f5e3Sopenharmony_civoid JSAPIListIterator::Dump(std::ostream &os) const
24444514f5e3Sopenharmony_ci{
24454514f5e3Sopenharmony_ci    TaggedSingleList *list = TaggedSingleList::Cast(GetIteratedList().GetTaggedObject());
24464514f5e3Sopenharmony_ci    os << " - length: " << std::dec << list->GetCapacityFromTaggedArray() << "\n";
24474514f5e3Sopenharmony_ci    os << " - node num: " << std::dec << list->NumberOfNodes() << "\n";
24484514f5e3Sopenharmony_ci    os << " - delete node num: " << std::dec << list->NumberOfDeletedNodes() << "\n";
24494514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
24504514f5e3Sopenharmony_ci    JSObject::Dump(os);
24514514f5e3Sopenharmony_ci    list->Dump(os);
24524514f5e3Sopenharmony_ci}
24534514f5e3Sopenharmony_ci
24544514f5e3Sopenharmony_civoid JSAPIListIterator::DumpForSnapshot(std::vector<Reference> &vec) const
24554514f5e3Sopenharmony_ci{
24564514f5e3Sopenharmony_ci    if (!(GetIteratedList().IsInvalidValue())) {
24574514f5e3Sopenharmony_ci        TaggedSingleList *list = TaggedSingleList::Cast(GetIteratedList().GetTaggedObject());
24584514f5e3Sopenharmony_ci        vec.emplace_back("iteratedlist", GetIteratedList());
24594514f5e3Sopenharmony_ci        list->DumpForSnapshot(vec);
24604514f5e3Sopenharmony_ci    }
24614514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
24624514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
24634514f5e3Sopenharmony_ci}
24644514f5e3Sopenharmony_ci
24654514f5e3Sopenharmony_civoid JSAPILinkedList::Dump(std::ostream &os) const
24664514f5e3Sopenharmony_ci{
24674514f5e3Sopenharmony_ci    TaggedDoubleList *linkedList = TaggedDoubleList::Cast(GetDoubleList().GetTaggedObject());
24684514f5e3Sopenharmony_ci    os << " - length: " << std::dec << linkedList->GetCapacityFromTaggedArray() << "\n";
24694514f5e3Sopenharmony_ci    os << " - node num: " << std::dec << linkedList->NumberOfNodes() << "\n";
24704514f5e3Sopenharmony_ci    os << " - delete node num: " << std::dec << linkedList->NumberOfDeletedNodes() << "\n";
24714514f5e3Sopenharmony_ci    JSObject::Dump(os);
24724514f5e3Sopenharmony_ci    linkedList->Dump(os);
24734514f5e3Sopenharmony_ci}
24744514f5e3Sopenharmony_ci
24754514f5e3Sopenharmony_civoid JSAPILinkedList::DumpForSnapshot(std::vector<Reference> &vec) const
24764514f5e3Sopenharmony_ci{
24774514f5e3Sopenharmony_ci    if (!(GetDoubleList().IsInvalidValue())) {
24784514f5e3Sopenharmony_ci        TaggedDoubleList *list = TaggedDoubleList::Cast(GetDoubleList().GetTaggedObject());
24794514f5e3Sopenharmony_ci        list->DumpForSnapshot(vec);
24804514f5e3Sopenharmony_ci    }
24814514f5e3Sopenharmony_ci
24824514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
24834514f5e3Sopenharmony_ci}
24844514f5e3Sopenharmony_ci
24854514f5e3Sopenharmony_civoid JSAPILinkedListIterator::Dump(std::ostream &os) const
24864514f5e3Sopenharmony_ci{
24874514f5e3Sopenharmony_ci    TaggedDoubleList *linkedList = TaggedDoubleList::Cast(GetIteratedLinkedList().GetTaggedObject());
24884514f5e3Sopenharmony_ci    os << " - length: " << std::dec << linkedList->GetCapacityFromTaggedArray() << "\n";
24894514f5e3Sopenharmony_ci    os << " - node num: " << std::dec << linkedList->NumberOfNodes() << "\n";
24904514f5e3Sopenharmony_ci    os << " - delete node num: " << std::dec << linkedList->NumberOfDeletedNodes() << "\n";
24914514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
24924514f5e3Sopenharmony_ci    JSObject::Dump(os);
24934514f5e3Sopenharmony_ci    linkedList->Dump(os);
24944514f5e3Sopenharmony_ci}
24954514f5e3Sopenharmony_ci
24964514f5e3Sopenharmony_civoid JSAPILinkedListIterator::DumpForSnapshot(std::vector<Reference> &vec) const
24974514f5e3Sopenharmony_ci{
24984514f5e3Sopenharmony_ci    if (!(GetIteratedLinkedList().IsInvalidValue())) {
24994514f5e3Sopenharmony_ci        TaggedDoubleList *linkedList = TaggedDoubleList::Cast(GetIteratedLinkedList().GetTaggedObject());
25004514f5e3Sopenharmony_ci        vec.emplace_back("iteratedlist", GetIteratedLinkedList());
25014514f5e3Sopenharmony_ci        linkedList->DumpForSnapshot(vec);
25024514f5e3Sopenharmony_ci    }
25034514f5e3Sopenharmony_ci
25044514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
25054514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
25064514f5e3Sopenharmony_ci}
25074514f5e3Sopenharmony_ci
25084514f5e3Sopenharmony_civoid JSAPIQueue::Dump(std::ostream &os) const
25094514f5e3Sopenharmony_ci{
25104514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetSize() << "\n";
25114514f5e3Sopenharmony_ci    os << " - front: " << std::dec << GetFront() << "\n";
25124514f5e3Sopenharmony_ci    os << " - tail: " << std::dec << GetTail() << "\n";
25134514f5e3Sopenharmony_ci    JSObject::Dump(os);
25144514f5e3Sopenharmony_ci}
25154514f5e3Sopenharmony_ci
25164514f5e3Sopenharmony_civoid JSAPIQueueIterator::Dump(std::ostream &os) const
25174514f5e3Sopenharmony_ci{
25184514f5e3Sopenharmony_ci    JSAPIQueue *queue = JSAPIQueue::Cast(GetIteratedQueue().GetTaggedObject());
25194514f5e3Sopenharmony_ci    os << " - length: " << std::dec << queue->GetSize() << "\n";
25204514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
25214514f5e3Sopenharmony_ci    JSObject::Dump(os);
25224514f5e3Sopenharmony_ci}
25234514f5e3Sopenharmony_ci
25244514f5e3Sopenharmony_civoid JSAPIStack::Dump(std::ostream &os) const
25254514f5e3Sopenharmony_ci{
25264514f5e3Sopenharmony_ci    os << " - top: " << std::dec << GetTop() << "\n";
25274514f5e3Sopenharmony_ci    JSObject::Dump(os);
25284514f5e3Sopenharmony_ci}
25294514f5e3Sopenharmony_ci
25304514f5e3Sopenharmony_civoid JSAPIStackIterator::Dump(std::ostream &os) const
25314514f5e3Sopenharmony_ci{
25324514f5e3Sopenharmony_ci    JSAPIStack *stack = JSAPIStack::Cast(GetIteratedStack().GetTaggedObject());
25334514f5e3Sopenharmony_ci    os << " - length: " << std::dec << stack->GetSize() << "\n";
25344514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
25354514f5e3Sopenharmony_ci    JSObject::Dump(os);
25364514f5e3Sopenharmony_ci}
25374514f5e3Sopenharmony_ci
25384514f5e3Sopenharmony_civoid JSAPIVector::Dump(std::ostream &os) const
25394514f5e3Sopenharmony_ci{
25404514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetSize() << "\n";
25414514f5e3Sopenharmony_ci    JSObject::Dump(os);
25424514f5e3Sopenharmony_ci}
25434514f5e3Sopenharmony_ci
25444514f5e3Sopenharmony_civoid JSAPIVectorIterator::Dump(std::ostream &os) const
25454514f5e3Sopenharmony_ci{
25464514f5e3Sopenharmony_ci    JSAPIVector *vector = JSAPIVector::Cast(GetIteratedVector().GetTaggedObject());
25474514f5e3Sopenharmony_ci    os << " - length: " << std::dec << vector->GetSize() << "\n";
25484514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
25494514f5e3Sopenharmony_ci    JSObject::Dump(os);
25504514f5e3Sopenharmony_ci}
25514514f5e3Sopenharmony_ci
25524514f5e3Sopenharmony_civoid JSAPIBitVector::Dump(std::ostream &os) const
25534514f5e3Sopenharmony_ci{
25544514f5e3Sopenharmony_ci    os << " - length: " << std::dec << GetSize() << "\n";
25554514f5e3Sopenharmony_ci    JSObject::Dump(os);
25564514f5e3Sopenharmony_ci}
25574514f5e3Sopenharmony_ci
25584514f5e3Sopenharmony_civoid JSAPIBitVectorIterator::Dump(std::ostream &os) const
25594514f5e3Sopenharmony_ci{
25604514f5e3Sopenharmony_ci    JSAPIBitVector *bitVector = JSAPIBitVector::Cast(GetIteratedBitVector().GetTaggedObject());
25614514f5e3Sopenharmony_ci    os << " - length: " << std::dec << bitVector->GetSize() << "\n";
25624514f5e3Sopenharmony_ci    os << " - nextIndex: " << std::dec << GetNextIndex() << "\n";
25634514f5e3Sopenharmony_ci    JSObject::Dump(os);
25644514f5e3Sopenharmony_ci}
25654514f5e3Sopenharmony_ci
25664514f5e3Sopenharmony_civoid JSStringIterator::Dump(std::ostream &os) const
25674514f5e3Sopenharmony_ci{
25684514f5e3Sopenharmony_ci    EcmaString *str = EcmaString::Cast(GetIteratedString().GetTaggedObject());
25694514f5e3Sopenharmony_ci    os << " - IteratedString: " << EcmaStringAccessor(str).ToCString() << "\n";
25704514f5e3Sopenharmony_ci    os << " - StringIteratorNextIndex: " << std::dec << GetStringIteratorNextIndex() << "\n";
25714514f5e3Sopenharmony_ci    JSObject::Dump(os);
25724514f5e3Sopenharmony_ci}
25734514f5e3Sopenharmony_civoid JSTypedArray::Dump(std::ostream &os) const
25744514f5e3Sopenharmony_ci{
25754514f5e3Sopenharmony_ci    os << " - viewed-array-buffer: ";
25764514f5e3Sopenharmony_ci    GetViewedArrayBufferOrByteArray().Dump(os);
25774514f5e3Sopenharmony_ci    os << " - typed-array-name: ";
25784514f5e3Sopenharmony_ci    GetTypedArrayName().Dump(os);
25794514f5e3Sopenharmony_ci    os << " - byte-length: " << GetByteLength();
25804514f5e3Sopenharmony_ci    os << " - byte-offset: " << GetByteOffset();
25814514f5e3Sopenharmony_ci    os << " - array-length: " << GetArrayLength();
25824514f5e3Sopenharmony_ci    JSObject::Dump(os);
25834514f5e3Sopenharmony_ci}
25844514f5e3Sopenharmony_ci
25854514f5e3Sopenharmony_civoid JSSharedTypedArray::Dump(std::ostream &os) const
25864514f5e3Sopenharmony_ci{
25874514f5e3Sopenharmony_ci    os << " - viewed-array-buffer: ";
25884514f5e3Sopenharmony_ci    GetViewedArrayBufferOrByteArray().Dump(os);
25894514f5e3Sopenharmony_ci    os << " - typed-array-name: ";
25904514f5e3Sopenharmony_ci    GetTypedArrayName().Dump(os);
25914514f5e3Sopenharmony_ci    os << " - byte-length: " << GetByteLength();
25924514f5e3Sopenharmony_ci    os << " - byte-offset: " << GetByteOffset();
25934514f5e3Sopenharmony_ci    os << " - array-length: " << GetArrayLength();
25944514f5e3Sopenharmony_ci    JSObject::Dump(os);
25954514f5e3Sopenharmony_ci}
25964514f5e3Sopenharmony_ci
25974514f5e3Sopenharmony_civoid ByteArray::Dump(std::ostream &os) const
25984514f5e3Sopenharmony_ci{
25994514f5e3Sopenharmony_ci    os << " - array-length: " << GetArrayLength();
26004514f5e3Sopenharmony_ci    os << " - byte-length: " << GetByteLength();
26014514f5e3Sopenharmony_ci}
26024514f5e3Sopenharmony_ci
26034514f5e3Sopenharmony_civoid JSRegExp::Dump(std::ostream &os) const
26044514f5e3Sopenharmony_ci{
26054514f5e3Sopenharmony_ci    os << "\n";
26064514f5e3Sopenharmony_ci    os << " - ByteCodeBuffer: ";
26074514f5e3Sopenharmony_ci    GetByteCodeBuffer().Dump(os);
26084514f5e3Sopenharmony_ci    os << "\n";
26094514f5e3Sopenharmony_ci    os << " - OriginalSource: ";
26104514f5e3Sopenharmony_ci    GetOriginalSource().Dump(os);
26114514f5e3Sopenharmony_ci    os << "\n";
26124514f5e3Sopenharmony_ci    os << " - OriginalFlags: ";
26134514f5e3Sopenharmony_ci    GetOriginalFlags().Dump(os);
26144514f5e3Sopenharmony_ci    os << "\n";
26154514f5e3Sopenharmony_ci    os << " - GroupName: ";
26164514f5e3Sopenharmony_ci    GetGroupName().Dump(os);
26174514f5e3Sopenharmony_ci    os << "\n";
26184514f5e3Sopenharmony_ci    os << " - Length: " << GetLength();
26194514f5e3Sopenharmony_ci    os << "\n";
26204514f5e3Sopenharmony_ci    JSObject::Dump(os);
26214514f5e3Sopenharmony_ci}
26224514f5e3Sopenharmony_ci
26234514f5e3Sopenharmony_civoid JSProxy::Dump(std::ostream &os) const
26244514f5e3Sopenharmony_ci{
26254514f5e3Sopenharmony_ci    os << " - Target: ";
26264514f5e3Sopenharmony_ci    os << "\n";
26274514f5e3Sopenharmony_ci    JSObject::Cast(GetTarget().GetTaggedObject())->Dump(os);
26284514f5e3Sopenharmony_ci    os << " - Handler: ";
26294514f5e3Sopenharmony_ci    os << "\n";
26304514f5e3Sopenharmony_ci    JSObject::Cast(GetHandler().GetTaggedObject())->Dump(os);
26314514f5e3Sopenharmony_ci    os << "\n";
26324514f5e3Sopenharmony_ci}
26334514f5e3Sopenharmony_ci
26344514f5e3Sopenharmony_civoid JSSymbol::Dump(std::ostream &os) const
26354514f5e3Sopenharmony_ci{
26364514f5e3Sopenharmony_ci    os << " - hash-field: " << GetHashField();
26374514f5e3Sopenharmony_ci    os << "\n - flags: " << GetFlags();
26384514f5e3Sopenharmony_ci    os << "\n - description: ";
26394514f5e3Sopenharmony_ci    JSTaggedValue description = GetDescription();
26404514f5e3Sopenharmony_ci    description.Dump(os);
26414514f5e3Sopenharmony_ci}
26424514f5e3Sopenharmony_ci
26434514f5e3Sopenharmony_civoid LexicalEnv::Dump(std::ostream &os) const
26444514f5e3Sopenharmony_ci{
26454514f5e3Sopenharmony_ci    DumpArrayClass(this, os);
26464514f5e3Sopenharmony_ci}
26474514f5e3Sopenharmony_ci
26484514f5e3Sopenharmony_civoid SendableEnv::Dump(std::ostream &os) const
26494514f5e3Sopenharmony_ci{
26504514f5e3Sopenharmony_ci    DumpArrayClass(this, os);
26514514f5e3Sopenharmony_ci}
26524514f5e3Sopenharmony_ci
26534514f5e3Sopenharmony_civoid COWTaggedArray::Dump(std::ostream &os) const
26544514f5e3Sopenharmony_ci{
26554514f5e3Sopenharmony_ci    DumpArrayClass(this, os);
26564514f5e3Sopenharmony_ci}
26574514f5e3Sopenharmony_ci
26584514f5e3Sopenharmony_civoid MutantTaggedArray::Dump(std::ostream &os) const
26594514f5e3Sopenharmony_ci{
26604514f5e3Sopenharmony_ci    DumpMutantTaggedArray(this, os);
26614514f5e3Sopenharmony_ci}
26624514f5e3Sopenharmony_ci
26634514f5e3Sopenharmony_civoid COWMutantTaggedArray::Dump(std::ostream &os) const
26644514f5e3Sopenharmony_ci{
26654514f5e3Sopenharmony_ci    DumpCOWMutantTaggedArray(this, os);
26664514f5e3Sopenharmony_ci}
26674514f5e3Sopenharmony_ci
26684514f5e3Sopenharmony_ci// NOLINTNEXTLINE(readability-function-size)
26694514f5e3Sopenharmony_civoid GlobalEnv::Dump(std::ostream &os) const
26704514f5e3Sopenharmony_ci{
26714514f5e3Sopenharmony_ci    auto globalConst = GetJSThread()->GlobalConstants();
26724514f5e3Sopenharmony_ci    os << " - ObjectFunction: ";
26734514f5e3Sopenharmony_ci    GetObjectFunction().GetTaggedValue().Dump(os);
26744514f5e3Sopenharmony_ci    os << " - FunctionFunction: ";
26754514f5e3Sopenharmony_ci    GetFunctionFunction().GetTaggedValue().Dump(os);
26764514f5e3Sopenharmony_ci    os << " - NumberFunction: ";
26774514f5e3Sopenharmony_ci    GetNumberFunction().GetTaggedValue().Dump(os);
26784514f5e3Sopenharmony_ci    os << " - BigIntFunction: ";
26794514f5e3Sopenharmony_ci    GetBigIntFunction().GetTaggedValue().Dump(os);
26804514f5e3Sopenharmony_ci    os << " - DateFunction: ";
26814514f5e3Sopenharmony_ci    GetDateFunction().GetTaggedValue().Dump(os);
26824514f5e3Sopenharmony_ci    os << " - BooleanFunction: ";
26834514f5e3Sopenharmony_ci    GetBooleanFunction().GetTaggedValue().Dump(os);
26844514f5e3Sopenharmony_ci    os << " - ErrorFunction: ";
26854514f5e3Sopenharmony_ci    GetErrorFunction().GetTaggedValue().Dump(os);
26864514f5e3Sopenharmony_ci    os << " - ArrayFunction: ";
26874514f5e3Sopenharmony_ci    GetArrayFunction().GetTaggedValue().Dump(os);
26884514f5e3Sopenharmony_ci    os << " - TypedArrayFunction: ";
26894514f5e3Sopenharmony_ci    GetTypedArrayFunction().GetTaggedValue().Dump(os);
26904514f5e3Sopenharmony_ci    os << " - Int8ArrayFunction: ";
26914514f5e3Sopenharmony_ci    GetInt8ArrayFunction().GetTaggedValue().Dump(os);
26924514f5e3Sopenharmony_ci    os << " - Uint8ArrayFunction: ";
26934514f5e3Sopenharmony_ci    GetUint8ArrayFunction().GetTaggedValue().Dump(os);
26944514f5e3Sopenharmony_ci    os << " - Uint8ClampedArrayFunction: ";
26954514f5e3Sopenharmony_ci    GetUint8ClampedArrayFunction().GetTaggedValue().Dump(os);
26964514f5e3Sopenharmony_ci    os << " - Int16ArrayFunction: ";
26974514f5e3Sopenharmony_ci    GetInt16ArrayFunction().GetTaggedValue().Dump(os);
26984514f5e3Sopenharmony_ci    os << " - ArrayBufferFunction: ";
26994514f5e3Sopenharmony_ci    GetArrayBufferFunction().GetTaggedValue().Dump(os);
27004514f5e3Sopenharmony_ci    os << " - SharedArrayBufferFunction: ";
27014514f5e3Sopenharmony_ci    GetSharedArrayBufferFunction().GetTaggedValue().Dump(os);
27024514f5e3Sopenharmony_ci    os << " - SymbolFunction: ";
27034514f5e3Sopenharmony_ci    GetSymbolFunction().GetTaggedValue().Dump(os);
27044514f5e3Sopenharmony_ci    os << " - RangeErrorFunction: ";
27054514f5e3Sopenharmony_ci    GetRangeErrorFunction().GetTaggedValue().Dump(os);
27064514f5e3Sopenharmony_ci    os << " - ReferenceErrorFunction: ";
27074514f5e3Sopenharmony_ci    GetReferenceErrorFunction().GetTaggedValue().Dump(os);
27084514f5e3Sopenharmony_ci    os << " - TypeErrorFunction: ";
27094514f5e3Sopenharmony_ci    GetTypeErrorFunction().GetTaggedValue().Dump(os);
27104514f5e3Sopenharmony_ci    os << " - AggregateErrorFunction: ";
27114514f5e3Sopenharmony_ci    GetAggregateErrorFunction().GetTaggedValue().Dump(os);
27124514f5e3Sopenharmony_ci    os << " - URIErrorFunction: ";
27134514f5e3Sopenharmony_ci    GetURIErrorFunction().GetTaggedValue().Dump(os);
27144514f5e3Sopenharmony_ci    os << " - SyntaxErrorFunction: ";
27154514f5e3Sopenharmony_ci    GetSyntaxErrorFunction().GetTaggedValue().Dump(os);
27164514f5e3Sopenharmony_ci    os << " - EvalErrorFunction: ";
27174514f5e3Sopenharmony_ci    GetEvalErrorFunction().GetTaggedValue().Dump(os);
27184514f5e3Sopenharmony_ci    os << " - OOMErrorFunction: ";
27194514f5e3Sopenharmony_ci    GetOOMErrorFunction().GetTaggedValue().Dump(os);
27204514f5e3Sopenharmony_ci    os << " - TerminationErrorFunction: ";
27214514f5e3Sopenharmony_ci    GetTerminationErrorFunction().GetTaggedValue().Dump(os);
27224514f5e3Sopenharmony_ci    os << " - RegExpFunction: ";
27234514f5e3Sopenharmony_ci    GetRegExpFunction().GetTaggedValue().Dump(os);
27244514f5e3Sopenharmony_ci    os << " - BuiltinsSetFunction: ";
27254514f5e3Sopenharmony_ci    GetBuiltinsSetFunction().GetTaggedValue().Dump(os);
27264514f5e3Sopenharmony_ci    os << " - BuiltinsMapFunction: ";
27274514f5e3Sopenharmony_ci    GetBuiltinsMapFunction().GetTaggedValue().Dump(os);
27284514f5e3Sopenharmony_ci    os << " - BuiltinsWeakSetFunction: ";
27294514f5e3Sopenharmony_ci    GetBuiltinsWeakSetFunction().GetTaggedValue().Dump(os);
27304514f5e3Sopenharmony_ci    os << " - BuiltinsWeakMapFunction: ";
27314514f5e3Sopenharmony_ci    GetBuiltinsWeakMapFunction().GetTaggedValue().Dump(os);
27324514f5e3Sopenharmony_ci    os << " - BuiltinsWeakRefFunction: ";
27334514f5e3Sopenharmony_ci    GetBuiltinsWeakRefFunction().GetTaggedValue().Dump(os);
27344514f5e3Sopenharmony_ci    os << " - BuiltinsFinalizationRegistryFunction: ";
27354514f5e3Sopenharmony_ci    GetBuiltinsFinalizationRegistryFunction().GetTaggedValue().Dump(os);
27364514f5e3Sopenharmony_ci    os << " - MathFunction: ";
27374514f5e3Sopenharmony_ci    GetMathFunction().GetTaggedValue().Dump(os);
27384514f5e3Sopenharmony_ci    os << " - AtomicsFunction: ";
27394514f5e3Sopenharmony_ci    GetAtomicsFunction().GetTaggedValue().Dump(os);
27404514f5e3Sopenharmony_ci    os << " - JsonFunction: ";
27414514f5e3Sopenharmony_ci    GetJsonFunction().GetTaggedValue().Dump(os);
27424514f5e3Sopenharmony_ci    os << " - StringFunction: ";
27434514f5e3Sopenharmony_ci    GetStringFunction().GetTaggedValue().Dump(os);
27444514f5e3Sopenharmony_ci    os << " - ProxyFunction: ";
27454514f5e3Sopenharmony_ci    GetProxyFunction().GetTaggedValue().Dump(os);
27464514f5e3Sopenharmony_ci    os << " - ReflectFunction: ";
27474514f5e3Sopenharmony_ci    GetReflectFunction().GetTaggedValue().Dump(os);
27484514f5e3Sopenharmony_ci    os << " - AsyncFunction: ";
27494514f5e3Sopenharmony_ci    GetAsyncFunction().GetTaggedValue().Dump(os);
27504514f5e3Sopenharmony_ci    os << " - AsyncFunctionPrototype: ";
27514514f5e3Sopenharmony_ci    GetAsyncFunctionPrototype().GetTaggedValue().Dump(os);
27524514f5e3Sopenharmony_ci    os << " - JSGlobalObject: ";
27534514f5e3Sopenharmony_ci    GetJSGlobalObject().GetTaggedValue().Dump(os);
27544514f5e3Sopenharmony_ci    os << " - GlobalPatch: ";
27554514f5e3Sopenharmony_ci    GetGlobalPatch().GetTaggedValue().Dump(os);
27564514f5e3Sopenharmony_ci    os << " - EmptyArray: ";
27574514f5e3Sopenharmony_ci    globalConst->GetEmptyArray().Dump(os);
27584514f5e3Sopenharmony_ci    os << " - EmptyString ";
27594514f5e3Sopenharmony_ci    globalConst->GetEmptyString().Dump(os);
27604514f5e3Sopenharmony_ci    os << " - EmptyTaggedQueue: ";
27614514f5e3Sopenharmony_ci    globalConst->GetEmptyTaggedQueue().Dump(os);
27624514f5e3Sopenharmony_ci    os << " - EmptyProfileTypeInfoCell: ";
27634514f5e3Sopenharmony_ci    globalConst->GetEmptyProfileTypeInfoCell().Dump(os);
27644514f5e3Sopenharmony_ci    os << " - PrototypeString: ";
27654514f5e3Sopenharmony_ci    globalConst->GetPrototypeString().Dump(os);
27664514f5e3Sopenharmony_ci    os << " - HasInstanceSymbol: ";
27674514f5e3Sopenharmony_ci    GetHasInstanceSymbol().GetTaggedValue().Dump(os);
27684514f5e3Sopenharmony_ci    os << " - IsConcatSpreadableSymbol: ";
27694514f5e3Sopenharmony_ci    GetIsConcatSpreadableSymbol().GetTaggedValue().Dump(os);
27704514f5e3Sopenharmony_ci    os << " - ToStringTagSymbol: ";
27714514f5e3Sopenharmony_ci    GetToStringTagSymbol().GetTaggedValue().Dump(os);
27724514f5e3Sopenharmony_ci    os << " - IteratorSymbol: ";
27734514f5e3Sopenharmony_ci    GetIteratorSymbol().GetTaggedValue().Dump(os);
27744514f5e3Sopenharmony_ci    os << " - AsyncIteratorSymbol: ";
27754514f5e3Sopenharmony_ci    GetAsyncIteratorSymbol().GetTaggedValue().Dump(os);
27764514f5e3Sopenharmony_ci    os << " - MatchSymbol: ";
27774514f5e3Sopenharmony_ci    GetMatchSymbol().GetTaggedValue().Dump(os);
27784514f5e3Sopenharmony_ci    os << " - MatchAllSymbol: ";
27794514f5e3Sopenharmony_ci    GetMatchAllSymbol().GetTaggedValue().Dump(os);
27804514f5e3Sopenharmony_ci    os << " - ReplaceSymbol: ";
27814514f5e3Sopenharmony_ci    GetReplaceSymbol().GetTaggedValue().Dump(os);
27824514f5e3Sopenharmony_ci    os << " - SearchSymbol: ";
27834514f5e3Sopenharmony_ci    GetSearchSymbol().GetTaggedValue().Dump(os);
27844514f5e3Sopenharmony_ci    os << " - SpeciesSymbol: ";
27854514f5e3Sopenharmony_ci    GetSpeciesSymbol().GetTaggedValue().Dump(os);
27864514f5e3Sopenharmony_ci    os << " - SplitSymbol: ";
27874514f5e3Sopenharmony_ci    GetSplitSymbol().GetTaggedValue().Dump(os);
27884514f5e3Sopenharmony_ci    os << " - ToPrimitiveSymbol: ";
27894514f5e3Sopenharmony_ci    GetToPrimitiveSymbol().GetTaggedValue().Dump(os);
27904514f5e3Sopenharmony_ci    os << " - UnscopablesSymbol: ";
27914514f5e3Sopenharmony_ci    GetUnscopablesSymbol().GetTaggedValue().Dump(os);
27924514f5e3Sopenharmony_ci    os << " - HoleySymbol: ";
27934514f5e3Sopenharmony_ci    GetHoleySymbol().GetTaggedValue().Dump(os);
27944514f5e3Sopenharmony_ci    os << " - NativeBindingSymbol: ";
27954514f5e3Sopenharmony_ci    GetNativeBindingSymbol().GetTaggedValue().Dump(os);
27964514f5e3Sopenharmony_ci    os << " - ConstructorString: ";
27974514f5e3Sopenharmony_ci    globalConst->GetConstructorString().Dump(os);
27984514f5e3Sopenharmony_ci    os << " - IteratorPrototype: ";
27994514f5e3Sopenharmony_ci    GetIteratorPrototype().GetTaggedValue().Dump(os);
28004514f5e3Sopenharmony_ci    os << " - ForinIteratorPrototype: ";
28014514f5e3Sopenharmony_ci    GetForinIteratorPrototype().GetTaggedValue().Dump(os);
28024514f5e3Sopenharmony_ci    os << " - StringIterator: ";
28034514f5e3Sopenharmony_ci    GetStringIterator().GetTaggedValue().Dump(os);
28044514f5e3Sopenharmony_ci    os << " - MapIteratorPrototype: ";
28054514f5e3Sopenharmony_ci    GetMapIteratorPrototype().GetTaggedValue().Dump(os);
28064514f5e3Sopenharmony_ci    os << " - SetIteratorPrototype: ";
28074514f5e3Sopenharmony_ci    GetSetIteratorPrototype().GetTaggedValue().Dump(os);
28084514f5e3Sopenharmony_ci    os << " - RegExpIteratorPrototype: ";
28094514f5e3Sopenharmony_ci    GetRegExpIteratorPrototype().GetTaggedValue().Dump(os);
28104514f5e3Sopenharmony_ci    os << " - ArrayIteratorPrototype: ";
28114514f5e3Sopenharmony_ci    GetArrayIteratorPrototype().GetTaggedValue().Dump(os);
28124514f5e3Sopenharmony_ci    os << " - StringIteratorPrototype: ";
28134514f5e3Sopenharmony_ci    GetStringIteratorPrototype().GetTaggedValue().Dump(os);
28144514f5e3Sopenharmony_ci    os << " - LengthString: ";
28154514f5e3Sopenharmony_ci    globalConst->GetLengthString().Dump(os);
28164514f5e3Sopenharmony_ci    os << " - ValueString: ";
28174514f5e3Sopenharmony_ci    globalConst->GetValueString().Dump(os);
28184514f5e3Sopenharmony_ci    os << " - WritableString: ";
28194514f5e3Sopenharmony_ci    globalConst->GetWritableString().Dump(os);
28204514f5e3Sopenharmony_ci    os << " - GetString: ";
28214514f5e3Sopenharmony_ci    globalConst->GetGetString().Dump(os);
28224514f5e3Sopenharmony_ci    os << " - SetString: ";
28234514f5e3Sopenharmony_ci    globalConst->GetSetString().Dump(os);
28244514f5e3Sopenharmony_ci    os << " - EnumerableString: ";
28254514f5e3Sopenharmony_ci    globalConst->GetEnumerableString().Dump(os);
28264514f5e3Sopenharmony_ci    os << " - ConfigurableString: ";
28274514f5e3Sopenharmony_ci    globalConst->GetConfigurableString().Dump(os);
28284514f5e3Sopenharmony_ci    os << " - NameString: ";
28294514f5e3Sopenharmony_ci    globalConst->GetNameString().Dump(os);
28304514f5e3Sopenharmony_ci    os << " - ValueOfString: ";
28314514f5e3Sopenharmony_ci    globalConst->GetValueOfString().Dump(os);
28324514f5e3Sopenharmony_ci    os << " - ToStringString: ";
28334514f5e3Sopenharmony_ci    globalConst->GetToStringString().Dump(os);
28344514f5e3Sopenharmony_ci    os << " - ToLocaleStringString: ";
28354514f5e3Sopenharmony_ci    globalConst->GetToLocaleStringString().Dump(os);
28364514f5e3Sopenharmony_ci    os << " - UndefinedString: ";
28374514f5e3Sopenharmony_ci    globalConst->GetUndefinedString().Dump(os);
28384514f5e3Sopenharmony_ci    os << " - NullString: ";
28394514f5e3Sopenharmony_ci    globalConst->GetNullString().Dump(os);
28404514f5e3Sopenharmony_ci    os << " - TrueString: ";
28414514f5e3Sopenharmony_ci    globalConst->GetTrueString().Dump(os);
28424514f5e3Sopenharmony_ci    os << " - FalseString: ";
28434514f5e3Sopenharmony_ci    globalConst->GetFalseString().Dump(os);
28444514f5e3Sopenharmony_ci    os << " - RegisterSymbols: ";
28454514f5e3Sopenharmony_ci    GetRegisterSymbols().GetTaggedValue().Dump(os);
28464514f5e3Sopenharmony_ci    os << " - ThrowTypeError: ";
28474514f5e3Sopenharmony_ci    GetThrowTypeError().GetTaggedValue().Dump(os);
28484514f5e3Sopenharmony_ci    os << " - GetPrototypeOfString: ";
28494514f5e3Sopenharmony_ci    globalConst->GetGetPrototypeOfString().Dump(os);
28504514f5e3Sopenharmony_ci    os << " - SetPrototypeOfString: ";
28514514f5e3Sopenharmony_ci    globalConst->GetSetPrototypeOfString().Dump(os);
28524514f5e3Sopenharmony_ci    os << " - IsExtensibleString: ";
28534514f5e3Sopenharmony_ci    globalConst->GetIsExtensibleString().Dump(os);
28544514f5e3Sopenharmony_ci    os << " - PreventExtensionsString: ";
28554514f5e3Sopenharmony_ci    globalConst->GetPreventExtensionsString().Dump(os);
28564514f5e3Sopenharmony_ci    os << " - GetOwnPropertyDescriptorString: ";
28574514f5e3Sopenharmony_ci    globalConst->GetGetOwnPropertyDescriptorString().Dump(os);
28584514f5e3Sopenharmony_ci    os << " - DefinePropertyString: ";
28594514f5e3Sopenharmony_ci    globalConst->GetDefinePropertyString().Dump(os);
28604514f5e3Sopenharmony_ci    os << " - HasString: ";
28614514f5e3Sopenharmony_ci    globalConst->GetHasString().Dump(os);
28624514f5e3Sopenharmony_ci    os << " - DeletePropertyString: ";
28634514f5e3Sopenharmony_ci    globalConst->GetDeletePropertyString().Dump(os);
28644514f5e3Sopenharmony_ci    os << " - EnumerateString: ";
28654514f5e3Sopenharmony_ci    globalConst->GetEnumerateString().Dump(os);
28664514f5e3Sopenharmony_ci    os << " - OwnKeysString: ";
28674514f5e3Sopenharmony_ci    globalConst->GetOwnKeysString().Dump(os);
28684514f5e3Sopenharmony_ci    os << " - ApplyString: ";
28694514f5e3Sopenharmony_ci    globalConst->GetApplyString().Dump(os);
28704514f5e3Sopenharmony_ci    os << " - ProxyString: ";
28714514f5e3Sopenharmony_ci    globalConst->GetProxyString().Dump(os);
28724514f5e3Sopenharmony_ci    os << " - RevokeString: ";
28734514f5e3Sopenharmony_ci    globalConst->GetRevokeString().Dump(os);
28744514f5e3Sopenharmony_ci    os << " - ProxyConstructString: ";
28754514f5e3Sopenharmony_ci    globalConst->GetProxyConstructString().Dump(os);
28764514f5e3Sopenharmony_ci    os << " - ProxyCallString: ";
28774514f5e3Sopenharmony_ci    globalConst->GetProxyCallString().Dump(os);
28784514f5e3Sopenharmony_ci    os << " - DoneString: ";
28794514f5e3Sopenharmony_ci    globalConst->GetDoneString().Dump(os);
28804514f5e3Sopenharmony_ci    os << " - NegativeZeroString: ";
28814514f5e3Sopenharmony_ci    globalConst->GetNegativeZeroString().Dump(os);
28824514f5e3Sopenharmony_ci    os << " - NextString: ";
28834514f5e3Sopenharmony_ci    globalConst->GetNextString().Dump(os);
28844514f5e3Sopenharmony_ci    os << " - PromiseThenString: ";
28854514f5e3Sopenharmony_ci    globalConst->GetPromiseThenString().Dump(os);
28864514f5e3Sopenharmony_ci    os << " - PromiseFunction: ";
28874514f5e3Sopenharmony_ci    GetPromiseFunction().GetTaggedValue().Dump(os);
28884514f5e3Sopenharmony_ci    os << " - PromiseReactionJob: ";
28894514f5e3Sopenharmony_ci    GetPromiseReactionJob().GetTaggedValue().Dump(os);
28904514f5e3Sopenharmony_ci    os << " - PromiseResolveThenableJob: ";
28914514f5e3Sopenharmony_ci    GetPromiseResolveThenableJob().GetTaggedValue().Dump(os);
28924514f5e3Sopenharmony_ci    os << " - DynamicImportJob: ";
28934514f5e3Sopenharmony_ci    GetDynamicImportJob().GetTaggedValue().Dump(os);
28944514f5e3Sopenharmony_ci    os << " - ScriptJobString: ";
28954514f5e3Sopenharmony_ci    globalConst->GetScriptJobString().Dump(os);
28964514f5e3Sopenharmony_ci    os << " - PromiseString: ";
28974514f5e3Sopenharmony_ci    globalConst->GetPromiseString().Dump(os);
28984514f5e3Sopenharmony_ci    os << " - IdentityString: ";
28994514f5e3Sopenharmony_ci    globalConst->GetIdentityString().Dump(os);
29004514f5e3Sopenharmony_ci    os << " - AsyncFunctionString: ";
29014514f5e3Sopenharmony_ci    globalConst->GetAsyncFunctionString().Dump(os);
29024514f5e3Sopenharmony_ci    os << " - ThrowerString: ";
29034514f5e3Sopenharmony_ci    globalConst->GetThrowerString().Dump(os);
29044514f5e3Sopenharmony_ci    os << " - Undefined: ";
29054514f5e3Sopenharmony_ci    globalConst->GetUndefined().Dump(os);
29064514f5e3Sopenharmony_ci}
29074514f5e3Sopenharmony_ci
29084514f5e3Sopenharmony_civoid JSDataView::Dump(std::ostream &os) const
29094514f5e3Sopenharmony_ci{
29104514f5e3Sopenharmony_ci    os << " - data-view: ";
29114514f5e3Sopenharmony_ci    GetDataView().Dump(os);
29124514f5e3Sopenharmony_ci    os << " - buffer: ";
29134514f5e3Sopenharmony_ci    GetViewedArrayBuffer().Dump(os);
29144514f5e3Sopenharmony_ci    os << "- byte-length: " << GetByteLength();
29154514f5e3Sopenharmony_ci    os << "\n - byte-offset: " << GetByteOffset();
29164514f5e3Sopenharmony_ci}
29174514f5e3Sopenharmony_ci
29184514f5e3Sopenharmony_civoid JSArrayBuffer::Dump(std::ostream &os) const
29194514f5e3Sopenharmony_ci{
29204514f5e3Sopenharmony_ci    os << " - byte-length: " << GetArrayBufferByteLength();
29214514f5e3Sopenharmony_ci    os << " - buffer-data: ";
29224514f5e3Sopenharmony_ci    GetArrayBufferData().Dump(os);
29234514f5e3Sopenharmony_ci    os << " - Shared: " << GetShared();
29244514f5e3Sopenharmony_ci}
29254514f5e3Sopenharmony_ci
29264514f5e3Sopenharmony_civoid JSSendableArrayBuffer::Dump(std::ostream &os) const
29274514f5e3Sopenharmony_ci{
29284514f5e3Sopenharmony_ci    os << " - byte-length: " << GetArrayBufferByteLength();
29294514f5e3Sopenharmony_ci    os << " - buffer-data: ";
29304514f5e3Sopenharmony_ci    GetArrayBufferData().Dump(os);
29314514f5e3Sopenharmony_ci    os << " - Shared: " << GetShared();
29324514f5e3Sopenharmony_ci}
29334514f5e3Sopenharmony_ci
29344514f5e3Sopenharmony_civoid PromiseReaction::Dump(std::ostream &os) const
29354514f5e3Sopenharmony_ci{
29364514f5e3Sopenharmony_ci    os << " - promise-capability: ";
29374514f5e3Sopenharmony_ci    GetPromiseCapability().Dump(os);
29384514f5e3Sopenharmony_ci    os << " - type: " << static_cast<int>(GetType());
29394514f5e3Sopenharmony_ci    os << " - handler: ";
29404514f5e3Sopenharmony_ci    GetHandler().Dump(os);
29414514f5e3Sopenharmony_ci}
29424514f5e3Sopenharmony_ci
29434514f5e3Sopenharmony_civoid PromiseCapability::Dump(std::ostream &os) const
29444514f5e3Sopenharmony_ci{
29454514f5e3Sopenharmony_ci    os << " - promise: ";
29464514f5e3Sopenharmony_ci    GetPromise().Dump(os);
29474514f5e3Sopenharmony_ci    os << " - resolve: ";
29484514f5e3Sopenharmony_ci    GetResolve().Dump(os);
29494514f5e3Sopenharmony_ci    os << " - reject: ";
29504514f5e3Sopenharmony_ci    GetReject().Dump(os);
29514514f5e3Sopenharmony_ci}
29524514f5e3Sopenharmony_ci
29534514f5e3Sopenharmony_civoid PromiseIteratorRecord::Dump(std::ostream &os) const
29544514f5e3Sopenharmony_ci{
29554514f5e3Sopenharmony_ci    os << " - iterator: ";
29564514f5e3Sopenharmony_ci    GetIterator().Dump(os);
29574514f5e3Sopenharmony_ci    os << " - done: " << GetDone();
29584514f5e3Sopenharmony_ci}
29594514f5e3Sopenharmony_ci
29604514f5e3Sopenharmony_civoid PromiseRecord::Dump(std::ostream &os) const
29614514f5e3Sopenharmony_ci{
29624514f5e3Sopenharmony_ci    os << " - value: ";
29634514f5e3Sopenharmony_ci    GetValue().Dump(os);
29644514f5e3Sopenharmony_ci}
29654514f5e3Sopenharmony_ci
29664514f5e3Sopenharmony_civoid ResolvingFunctionsRecord::Dump(std::ostream &os) const
29674514f5e3Sopenharmony_ci{
29684514f5e3Sopenharmony_ci    os << " - resolve-function: ";
29694514f5e3Sopenharmony_ci    GetResolveFunction().Dump(os);
29704514f5e3Sopenharmony_ci    os << " - reject-function: ";
29714514f5e3Sopenharmony_ci    GetRejectFunction().Dump(os);
29724514f5e3Sopenharmony_ci}
29734514f5e3Sopenharmony_ci
29744514f5e3Sopenharmony_civoid AsyncGeneratorRequest::Dump(std::ostream &os) const
29754514f5e3Sopenharmony_ci{
29764514f5e3Sopenharmony_ci    os << " - completion: ";
29774514f5e3Sopenharmony_ci    GetCompletion().Dump(os);
29784514f5e3Sopenharmony_ci    os << " - capability: ";
29794514f5e3Sopenharmony_ci    GetCapability().Dump(os);
29804514f5e3Sopenharmony_ci}
29814514f5e3Sopenharmony_ci
29824514f5e3Sopenharmony_civoid AsyncIteratorRecord::Dump(std::ostream &os) const
29834514f5e3Sopenharmony_ci{
29844514f5e3Sopenharmony_ci    os << " - completion: ";
29854514f5e3Sopenharmony_ci    GetIterator().Dump(os);
29864514f5e3Sopenharmony_ci    os << " - nextmethod: ";
29874514f5e3Sopenharmony_ci    GetNextMethod().Dump(os);
29884514f5e3Sopenharmony_ci    os << " - done: " << GetDone();
29894514f5e3Sopenharmony_ci}
29904514f5e3Sopenharmony_ci
29914514f5e3Sopenharmony_civoid JSAsyncFromSyncIterator::Dump(std::ostream &os) const
29924514f5e3Sopenharmony_ci{
29934514f5e3Sopenharmony_ci    os << " - sync-iterator-record: ";
29944514f5e3Sopenharmony_ci    GetSyncIteratorRecord().Dump(os);
29954514f5e3Sopenharmony_ci    JSObject::Dump(os);
29964514f5e3Sopenharmony_ci}
29974514f5e3Sopenharmony_ci
29984514f5e3Sopenharmony_civoid JSAsyncFromSyncIterUnwarpFunction::Dump(std::ostream &os) const
29994514f5e3Sopenharmony_ci{
30004514f5e3Sopenharmony_ci    os << " - done: " ;
30014514f5e3Sopenharmony_ci    GetDone().Dump(os);
30024514f5e3Sopenharmony_ci    JSObject::Dump(os);
30034514f5e3Sopenharmony_ci}
30044514f5e3Sopenharmony_ci
30054514f5e3Sopenharmony_civoid JSPromise::Dump(std::ostream &os) const
30064514f5e3Sopenharmony_ci{
30074514f5e3Sopenharmony_ci    os << " - promise-state: " << static_cast<int>(GetPromiseState());
30084514f5e3Sopenharmony_ci    os << "\n - promise-result: ";
30094514f5e3Sopenharmony_ci    GetPromiseResult().Dump(os);
30104514f5e3Sopenharmony_ci    os << " - promise-fulfill-reactions: ";
30114514f5e3Sopenharmony_ci    GetPromiseFulfillReactions().Dump(os);
30124514f5e3Sopenharmony_ci    os << " - promise-reject-reactions: ";
30134514f5e3Sopenharmony_ci    GetPromiseRejectReactions().Dump(os);
30144514f5e3Sopenharmony_ci    os << " - promise-is-handled: " << GetPromiseIsHandled();
30154514f5e3Sopenharmony_ci    JSObject::Dump(os);
30164514f5e3Sopenharmony_ci}
30174514f5e3Sopenharmony_ci
30184514f5e3Sopenharmony_civoid JSPromiseReactionsFunction::Dump(std::ostream &os) const
30194514f5e3Sopenharmony_ci{
30204514f5e3Sopenharmony_ci    os << " - promise: ";
30214514f5e3Sopenharmony_ci    GetPromise().Dump(os);
30224514f5e3Sopenharmony_ci    os << " - already-resolved: ";
30234514f5e3Sopenharmony_ci    GetAlreadyResolved().Dump(os);
30244514f5e3Sopenharmony_ci    JSObject::Dump(os);
30254514f5e3Sopenharmony_ci}
30264514f5e3Sopenharmony_ci
30274514f5e3Sopenharmony_civoid JSPromiseExecutorFunction::Dump(std::ostream &os) const
30284514f5e3Sopenharmony_ci{
30294514f5e3Sopenharmony_ci    os << " - capability: ";
30304514f5e3Sopenharmony_ci    GetCapability().Dump(os);
30314514f5e3Sopenharmony_ci    JSObject::Dump(os);
30324514f5e3Sopenharmony_ci}
30334514f5e3Sopenharmony_ci
30344514f5e3Sopenharmony_civoid JSAsyncModuleFulfilledFunction::Dump(std::ostream &os) const
30354514f5e3Sopenharmony_ci{
30364514f5e3Sopenharmony_ci    os << " - module: ";
30374514f5e3Sopenharmony_ci    GetModule().Dump(os);
30384514f5e3Sopenharmony_ci    JSObject::Dump(os);
30394514f5e3Sopenharmony_ci}
30404514f5e3Sopenharmony_ci
30414514f5e3Sopenharmony_civoid JSAsyncModuleRejectedFunction::Dump(std::ostream &os) const
30424514f5e3Sopenharmony_ci{
30434514f5e3Sopenharmony_ci    os << " - module: ";
30444514f5e3Sopenharmony_ci    GetModule().Dump(os);
30454514f5e3Sopenharmony_ci    JSObject::Dump(os);
30464514f5e3Sopenharmony_ci}
30474514f5e3Sopenharmony_ci
30484514f5e3Sopenharmony_civoid JSPromiseAllResolveElementFunction::Dump(std::ostream &os) const
30494514f5e3Sopenharmony_ci{
30504514f5e3Sopenharmony_ci    os << " - index: ";
30514514f5e3Sopenharmony_ci    GetIndex().Dump(os);
30524514f5e3Sopenharmony_ci    os << " - values: ";
30534514f5e3Sopenharmony_ci    GetValues().Dump(os);
30544514f5e3Sopenharmony_ci    os << " - capability: ";
30554514f5e3Sopenharmony_ci    GetCapabilities().Dump(os);
30564514f5e3Sopenharmony_ci    os << " - remaining-elements: ";
30574514f5e3Sopenharmony_ci    GetRemainingElements().Dump(os);
30584514f5e3Sopenharmony_ci    os << " - already-called: ";
30594514f5e3Sopenharmony_ci    GetAlreadyCalled().Dump(os);
30604514f5e3Sopenharmony_ci    JSObject::Dump(os);
30614514f5e3Sopenharmony_ci}
30624514f5e3Sopenharmony_ci
30634514f5e3Sopenharmony_civoid JSPromiseAnyRejectElementFunction::Dump(std::ostream &os) const
30644514f5e3Sopenharmony_ci{
30654514f5e3Sopenharmony_ci    os << " - index: ";
30664514f5e3Sopenharmony_ci    JSTaggedValue(GetIndex()).Dump(os);
30674514f5e3Sopenharmony_ci    os << " - errors: ";
30684514f5e3Sopenharmony_ci    GetErrors().Dump(os);
30694514f5e3Sopenharmony_ci    os << " - capability: ";
30704514f5e3Sopenharmony_ci    GetCapability().Dump(os);
30714514f5e3Sopenharmony_ci    os << " - remaining-elements: ";
30724514f5e3Sopenharmony_ci    GetRemainingElements().Dump(os);
30734514f5e3Sopenharmony_ci    os << " - already-called: ";
30744514f5e3Sopenharmony_ci    GetAlreadyCalled().Dump(os);
30754514f5e3Sopenharmony_ci    JSObject::Dump(os);
30764514f5e3Sopenharmony_ci}
30774514f5e3Sopenharmony_ci
30784514f5e3Sopenharmony_civoid JSPromiseAllSettledElementFunction::Dump(std::ostream &os) const
30794514f5e3Sopenharmony_ci{
30804514f5e3Sopenharmony_ci    os << " - already-called: ";
30814514f5e3Sopenharmony_ci    GetAlreadyCalled().Dump(os);
30824514f5e3Sopenharmony_ci    os << " - index: ";
30834514f5e3Sopenharmony_ci    JSTaggedValue(GetIndex()).Dump(os);
30844514f5e3Sopenharmony_ci    os << " - values: ";
30854514f5e3Sopenharmony_ci    GetValues().Dump(os);
30864514f5e3Sopenharmony_ci    os << " - capability: ";
30874514f5e3Sopenharmony_ci    GetCapability().Dump(os);
30884514f5e3Sopenharmony_ci    os << " - remaining-elements: ";
30894514f5e3Sopenharmony_ci    GetRemainingElements().Dump(os);
30904514f5e3Sopenharmony_ci    JSObject::Dump(os);
30914514f5e3Sopenharmony_ci}
30924514f5e3Sopenharmony_ci
30934514f5e3Sopenharmony_civoid JSPromiseFinallyFunction::Dump(std::ostream &os) const
30944514f5e3Sopenharmony_ci{
30954514f5e3Sopenharmony_ci    os << " - constructor: ";
30964514f5e3Sopenharmony_ci    GetConstructor().Dump(os);
30974514f5e3Sopenharmony_ci    os << " - onFinally: ";
30984514f5e3Sopenharmony_ci    GetOnFinally().Dump(os);
30994514f5e3Sopenharmony_ci    JSObject::Dump(os);
31004514f5e3Sopenharmony_ci}
31014514f5e3Sopenharmony_ci
31024514f5e3Sopenharmony_civoid JSPromiseValueThunkOrThrowerFunction::Dump(std::ostream &os) const
31034514f5e3Sopenharmony_ci{
31044514f5e3Sopenharmony_ci    os << " - result: ";
31054514f5e3Sopenharmony_ci    GetResult().Dump(os);
31064514f5e3Sopenharmony_ci    JSObject::Dump(os);
31074514f5e3Sopenharmony_ci}
31084514f5e3Sopenharmony_ci
31094514f5e3Sopenharmony_civoid JSAsyncGeneratorResNextRetProRstFtn::Dump(std::ostream &os) const
31104514f5e3Sopenharmony_ci{
31114514f5e3Sopenharmony_ci    os << " - AsyncGeneratorObject";
31124514f5e3Sopenharmony_ci    GetAsyncGeneratorObject().Dump(os);
31134514f5e3Sopenharmony_ci    JSObject::Dump(os);
31144514f5e3Sopenharmony_ci}
31154514f5e3Sopenharmony_ci
31164514f5e3Sopenharmony_civoid MicroJobQueue::Dump(std::ostream &os) const
31174514f5e3Sopenharmony_ci{
31184514f5e3Sopenharmony_ci    os << " - promise-job-queue: ";
31194514f5e3Sopenharmony_ci    GetPromiseJobQueue().Dump(os);
31204514f5e3Sopenharmony_ci    os << " - script-job-queue: ";
31214514f5e3Sopenharmony_ci    GetScriptJobQueue().Dump(os);
31224514f5e3Sopenharmony_ci}
31234514f5e3Sopenharmony_ci
31244514f5e3Sopenharmony_civoid PendingJob::Dump(std::ostream &os) const
31254514f5e3Sopenharmony_ci{
31264514f5e3Sopenharmony_ci    os << " - job: ";
31274514f5e3Sopenharmony_ci    GetJob().Dump(os);
31284514f5e3Sopenharmony_ci    os << "\n";
31294514f5e3Sopenharmony_ci    os << " - arguments: ";
31304514f5e3Sopenharmony_ci    GetArguments().Dump(os);
31314514f5e3Sopenharmony_ci#if defined(ENABLE_HITRACE)
31324514f5e3Sopenharmony_ci    os << "\n";
31334514f5e3Sopenharmony_ci    os << " - chainId: " << GetChainId();
31344514f5e3Sopenharmony_ci    os << "\n";
31354514f5e3Sopenharmony_ci    os << " - spanId: " << GetSpanId();
31364514f5e3Sopenharmony_ci    os << "\n";
31374514f5e3Sopenharmony_ci    os << " - parentSpanId: " << GetParentSpanId();
31384514f5e3Sopenharmony_ci    os << "\n";
31394514f5e3Sopenharmony_ci    os << " - flags: " << GetFlags();
31404514f5e3Sopenharmony_ci    os << "\n";
31414514f5e3Sopenharmony_ci#endif
31424514f5e3Sopenharmony_ci}
31434514f5e3Sopenharmony_ci
31444514f5e3Sopenharmony_civoid CompletionRecord::Dump(std::ostream &os) const
31454514f5e3Sopenharmony_ci{
31464514f5e3Sopenharmony_ci    os << " - type: " << static_cast<int>(GetType());
31474514f5e3Sopenharmony_ci    os << " - value: ";
31484514f5e3Sopenharmony_ci    GetValue().Dump(os);
31494514f5e3Sopenharmony_ci}
31504514f5e3Sopenharmony_ci
31514514f5e3Sopenharmony_civoid JSProxyRevocFunction::Dump(std::ostream &os) const
31524514f5e3Sopenharmony_ci{
31534514f5e3Sopenharmony_ci    os << " - RevocableProxy: ";
31544514f5e3Sopenharmony_ci    os << "\n";
31554514f5e3Sopenharmony_ci    GetRevocableProxy().Dump(os);
31564514f5e3Sopenharmony_ci    os << "\n";
31574514f5e3Sopenharmony_ci}
31584514f5e3Sopenharmony_ci
31594514f5e3Sopenharmony_civoid JSAsyncFunction::Dump(std::ostream &os) const
31604514f5e3Sopenharmony_ci{
31614514f5e3Sopenharmony_ci    JSFunction::Dump(os);
31624514f5e3Sopenharmony_ci}
31634514f5e3Sopenharmony_ci
31644514f5e3Sopenharmony_civoid JSAsyncAwaitStatusFunction::Dump(std::ostream &os) const
31654514f5e3Sopenharmony_ci{
31664514f5e3Sopenharmony_ci    os << " - AsyncContext: ";
31674514f5e3Sopenharmony_ci    os << "\n";
31684514f5e3Sopenharmony_ci    GetAsyncContext().Dump(os);
31694514f5e3Sopenharmony_ci    os << "\n";
31704514f5e3Sopenharmony_ci}
31714514f5e3Sopenharmony_ci
31724514f5e3Sopenharmony_civoid JSGeneratorFunction::Dump(std::ostream &os) const
31734514f5e3Sopenharmony_ci{
31744514f5e3Sopenharmony_ci    JSFunction::Dump(os);
31754514f5e3Sopenharmony_ci}
31764514f5e3Sopenharmony_ci
31774514f5e3Sopenharmony_civoid JSAsyncGeneratorFunction::Dump(std::ostream &os) const
31784514f5e3Sopenharmony_ci{
31794514f5e3Sopenharmony_ci    JSFunction::Dump(os);
31804514f5e3Sopenharmony_ci}
31814514f5e3Sopenharmony_ci
31824514f5e3Sopenharmony_civoid JSIntlBoundFunction::Dump(std::ostream &os) const
31834514f5e3Sopenharmony_ci{
31844514f5e3Sopenharmony_ci    JSObject::Dump(os);
31854514f5e3Sopenharmony_ci}
31864514f5e3Sopenharmony_ci
31874514f5e3Sopenharmony_civoid PropertyBox::Dump(std::ostream &os) const
31884514f5e3Sopenharmony_ci{
31894514f5e3Sopenharmony_ci    os << " - Value: ";
31904514f5e3Sopenharmony_ci    GetValue().Dump(os);
31914514f5e3Sopenharmony_ci    os << "\n";
31924514f5e3Sopenharmony_ci}
31934514f5e3Sopenharmony_ci
31944514f5e3Sopenharmony_civoid PrototypeHandler::Dump(std::ostream &os) const
31954514f5e3Sopenharmony_ci{
31964514f5e3Sopenharmony_ci    os << " - HandlerInfo: ";
31974514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
31984514f5e3Sopenharmony_ci    os << "\n";
31994514f5e3Sopenharmony_ci    os << " - ProtoCell: ";
32004514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32014514f5e3Sopenharmony_ci    os << "\n";
32024514f5e3Sopenharmony_ci    os << " - Holder: ";
32034514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32044514f5e3Sopenharmony_ci    os << "\n";
32054514f5e3Sopenharmony_ci}
32064514f5e3Sopenharmony_ci
32074514f5e3Sopenharmony_civoid TransitionHandler::Dump(std::ostream &os) const
32084514f5e3Sopenharmony_ci{
32094514f5e3Sopenharmony_ci    os << " - HandlerInfo: ";
32104514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32114514f5e3Sopenharmony_ci    os << "\n";
32124514f5e3Sopenharmony_ci    os << " - TransitionHClass: ";
32134514f5e3Sopenharmony_ci    GetTransitionHClass().Dump(os);
32144514f5e3Sopenharmony_ci    os << "\n";
32154514f5e3Sopenharmony_ci}
32164514f5e3Sopenharmony_ci
32174514f5e3Sopenharmony_civoid TransWithProtoHandler::Dump(std::ostream &os) const
32184514f5e3Sopenharmony_ci{
32194514f5e3Sopenharmony_ci    os << " - HandlerInfo: ";
32204514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32214514f5e3Sopenharmony_ci    os << "\n";
32224514f5e3Sopenharmony_ci    os << " - TransitionHClass: ";
32234514f5e3Sopenharmony_ci    GetTransitionHClass().Dump(os);
32244514f5e3Sopenharmony_ci    os << "\n";
32254514f5e3Sopenharmony_ci    os << " - Holder: ";
32264514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32274514f5e3Sopenharmony_ci    os << "\n";
32284514f5e3Sopenharmony_ci}
32294514f5e3Sopenharmony_ci
32304514f5e3Sopenharmony_civoid StoreTSHandler::Dump(std::ostream &os) const
32314514f5e3Sopenharmony_ci{
32324514f5e3Sopenharmony_ci    os << " - HandlerInfo: ";
32334514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32344514f5e3Sopenharmony_ci    os << "\n";
32354514f5e3Sopenharmony_ci    os << " - ProtoCell: ";
32364514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32374514f5e3Sopenharmony_ci    os << "\n";
32384514f5e3Sopenharmony_ci    os << " - Holder: ";
32394514f5e3Sopenharmony_ci    GetHandlerInfo().Dump(os);
32404514f5e3Sopenharmony_ci    os << "\n";
32414514f5e3Sopenharmony_ci}
32424514f5e3Sopenharmony_ci
32434514f5e3Sopenharmony_civoid JSRealm::Dump(std::ostream &os) const
32444514f5e3Sopenharmony_ci{
32454514f5e3Sopenharmony_ci    os << " - Value: ";
32464514f5e3Sopenharmony_ci    GetValue().Dump(os);
32474514f5e3Sopenharmony_ci    os << "\n";
32484514f5e3Sopenharmony_ci    os << " - GlobalEnv: ";
32494514f5e3Sopenharmony_ci    GetGlobalEnv().Dump(os);
32504514f5e3Sopenharmony_ci    os << "\n";
32514514f5e3Sopenharmony_ci    JSObject::Dump(os);
32524514f5e3Sopenharmony_ci}
32534514f5e3Sopenharmony_ci#ifdef ARK_SUPPORT_INTL
32544514f5e3Sopenharmony_civoid JSIntl::Dump(std::ostream &os) const
32554514f5e3Sopenharmony_ci{
32564514f5e3Sopenharmony_ci    os << " - FallbackSymbol: ";
32574514f5e3Sopenharmony_ci    GetFallbackSymbol().Dump(os);
32584514f5e3Sopenharmony_ci    os << "\n";
32594514f5e3Sopenharmony_ci    JSObject::Dump(os);
32604514f5e3Sopenharmony_ci}
32614514f5e3Sopenharmony_ci
32624514f5e3Sopenharmony_civoid JSLocale::Dump(std::ostream &os) const
32634514f5e3Sopenharmony_ci{
32644514f5e3Sopenharmony_ci    os << " - IcuField: ";
32654514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
32664514f5e3Sopenharmony_ci    os << "\n";
32674514f5e3Sopenharmony_ci    JSObject::Dump(os);
32684514f5e3Sopenharmony_ci}
32694514f5e3Sopenharmony_ci
32704514f5e3Sopenharmony_civoid JSDateTimeFormat::Dump(std::ostream &os) const
32714514f5e3Sopenharmony_ci{
32724514f5e3Sopenharmony_ci    os << " - Locale: ";
32734514f5e3Sopenharmony_ci    GetLocale().Dump(os);
32744514f5e3Sopenharmony_ci    os << "\n";
32754514f5e3Sopenharmony_ci    os << " - Calendar: ";
32764514f5e3Sopenharmony_ci    GetCalendar().Dump(os);
32774514f5e3Sopenharmony_ci    os << "\n";
32784514f5e3Sopenharmony_ci    os << " - NumberingSystem: ";
32794514f5e3Sopenharmony_ci    GetNumberingSystem().Dump(os);
32804514f5e3Sopenharmony_ci    os << "\n";
32814514f5e3Sopenharmony_ci    os << " - TimeZone: ";
32824514f5e3Sopenharmony_ci    GetTimeZone().Dump(os);
32834514f5e3Sopenharmony_ci    os << "\n";
32844514f5e3Sopenharmony_ci    os << " - HourCycle: " << static_cast<int>(GetHourCycle());
32854514f5e3Sopenharmony_ci    os << "\n";
32864514f5e3Sopenharmony_ci    os << " - LocaleIcu: ";
32874514f5e3Sopenharmony_ci    GetLocaleIcu().Dump(os);
32884514f5e3Sopenharmony_ci    os << "\n";
32894514f5e3Sopenharmony_ci    os << " - SimpleDateTimeFormatIcu: ";
32904514f5e3Sopenharmony_ci    GetSimpleDateTimeFormatIcu().Dump(os);
32914514f5e3Sopenharmony_ci    os << "\n";
32924514f5e3Sopenharmony_ci    os << " - Iso8601: ";
32934514f5e3Sopenharmony_ci    GetIso8601().Dump(os);
32944514f5e3Sopenharmony_ci    os << "\n";
32954514f5e3Sopenharmony_ci    os << " - DateStyle: " << static_cast<int>(GetDateStyle());
32964514f5e3Sopenharmony_ci    os << "\n";
32974514f5e3Sopenharmony_ci    os << " - TimeStyle: " << static_cast<int>(GetTimeStyle());
32984514f5e3Sopenharmony_ci    os << "\n";
32994514f5e3Sopenharmony_ci    os << " - BoundFormat: ";
33004514f5e3Sopenharmony_ci    GetBoundFormat().Dump(os);
33014514f5e3Sopenharmony_ci    os << "\n";
33024514f5e3Sopenharmony_ci    JSObject::Dump(os);
33034514f5e3Sopenharmony_ci}
33044514f5e3Sopenharmony_ci
33054514f5e3Sopenharmony_civoid JSRelativeTimeFormat::Dump(std::ostream &os) const
33064514f5e3Sopenharmony_ci{
33074514f5e3Sopenharmony_ci    os << " - Locale: ";
33084514f5e3Sopenharmony_ci    GetLocale().Dump(os);
33094514f5e3Sopenharmony_ci    os << "\n";
33104514f5e3Sopenharmony_ci    os << " - NumberingSystem: ";
33114514f5e3Sopenharmony_ci    GetNumberingSystem().Dump(os);
33124514f5e3Sopenharmony_ci    os << "\n";
33134514f5e3Sopenharmony_ci    os << " - Style: " << static_cast<int>(GetStyle());
33144514f5e3Sopenharmony_ci    os << "\n";
33154514f5e3Sopenharmony_ci    os << " - Numeric: " << static_cast<int>(GetNumeric());
33164514f5e3Sopenharmony_ci    os << "\n";
33174514f5e3Sopenharmony_ci    os << " - IcuField: ";
33184514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
33194514f5e3Sopenharmony_ci    os << "\n";
33204514f5e3Sopenharmony_ci    JSObject::Dump(os);
33214514f5e3Sopenharmony_ci}
33224514f5e3Sopenharmony_ci
33234514f5e3Sopenharmony_civoid JSNumberFormat::Dump(std::ostream &os) const
33244514f5e3Sopenharmony_ci{
33254514f5e3Sopenharmony_ci    os << " - Locale: ";
33264514f5e3Sopenharmony_ci    GetLocale().Dump(os);
33274514f5e3Sopenharmony_ci    os << "\n" << " - NumberingSystem: ";
33284514f5e3Sopenharmony_ci    GetNumberingSystem().Dump(os);
33294514f5e3Sopenharmony_ci    os << "\n" << " - Style: " << static_cast<int>(GetStyle());
33304514f5e3Sopenharmony_ci    os << "\n" << " - Currency: ";
33314514f5e3Sopenharmony_ci    GetCurrency().Dump(os);
33324514f5e3Sopenharmony_ci    os << "\n" << " - CurrencyDisplay: " << static_cast<int>(GetCurrencyDisplay());
33334514f5e3Sopenharmony_ci    os << "\n" << " - CurrencySign: " << static_cast<int>(GetCurrencySign());
33344514f5e3Sopenharmony_ci    os << "\n" << " - Unit: ";
33354514f5e3Sopenharmony_ci    GetUnit().Dump(os);
33364514f5e3Sopenharmony_ci    os << "\n" << " - UnitDisplay: " << static_cast<int>(GetUnitDisplay());
33374514f5e3Sopenharmony_ci    os << "\n" << " - MinimumIntegerDigits: ";
33384514f5e3Sopenharmony_ci    GetMinimumIntegerDigits().Dump(os);
33394514f5e3Sopenharmony_ci    os << "\n" << " - MinimumFractionDigits: ";
33404514f5e3Sopenharmony_ci    GetMinimumFractionDigits().Dump(os);
33414514f5e3Sopenharmony_ci    os << "\n" << " - MaximumFractionDigits: ";
33424514f5e3Sopenharmony_ci    GetMaximumFractionDigits().Dump(os);
33434514f5e3Sopenharmony_ci    os << "\n" << " - MinimumSignificantDigits: ";
33444514f5e3Sopenharmony_ci    GetMinimumSignificantDigits().Dump(os);
33454514f5e3Sopenharmony_ci    os << "\n" << " - MaximumSignificantDigits: ";
33464514f5e3Sopenharmony_ci    GetMaximumSignificantDigits().Dump(os);
33474514f5e3Sopenharmony_ci    os << "\n" << " - UseGrouping: ";
33484514f5e3Sopenharmony_ci    GetUseGrouping().Dump(os);
33494514f5e3Sopenharmony_ci    os << "\n" << " - RoundingType: " << static_cast<int>(GetRoundingType());
33504514f5e3Sopenharmony_ci    os << "\n" << " - Notation: " << static_cast<int>(GetNotation());
33514514f5e3Sopenharmony_ci    os << "\n" << " - CompactDisplay: " << static_cast<int>(GetCompactDisplay());
33524514f5e3Sopenharmony_ci    os << "\n" << " - SignDisplay: " << static_cast<int>(GetSignDisplay());
33534514f5e3Sopenharmony_ci    os << "\n" << " - BoundFormat: ";
33544514f5e3Sopenharmony_ci    GetBoundFormat().Dump(os);
33554514f5e3Sopenharmony_ci    os << "\n" << " - IcuField: ";
33564514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
33574514f5e3Sopenharmony_ci    os << "\n";
33584514f5e3Sopenharmony_ci    JSObject::Dump(os);
33594514f5e3Sopenharmony_ci}
33604514f5e3Sopenharmony_ci
33614514f5e3Sopenharmony_civoid JSCollator::Dump(std::ostream &os) const
33624514f5e3Sopenharmony_ci{
33634514f5e3Sopenharmony_ci    os << " - IcuField: ";
33644514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
33654514f5e3Sopenharmony_ci    os << "\n - Locale: ";
33664514f5e3Sopenharmony_ci    GetLocale().Dump(os);
33674514f5e3Sopenharmony_ci    os << "\n - Usage: " << static_cast<int>(GetUsage());
33684514f5e3Sopenharmony_ci    os << "\n - Sensitivity: " << static_cast<int>(GetSensitivity());
33694514f5e3Sopenharmony_ci    os << "\n - IgnorePunctuation: " << GetIgnorePunctuation();
33704514f5e3Sopenharmony_ci    os << "\n - Collation: ";
33714514f5e3Sopenharmony_ci    GetCollation().Dump(os);
33724514f5e3Sopenharmony_ci    os << "\n - Numeric: " << GetNumeric();
33734514f5e3Sopenharmony_ci    os << "\n - CaseFirst: " << static_cast<int>(GetCaseFirst());
33744514f5e3Sopenharmony_ci    os << "\n - BoundCompare: ";
33754514f5e3Sopenharmony_ci    GetBoundCompare().Dump(os);
33764514f5e3Sopenharmony_ci    os << "\n";
33774514f5e3Sopenharmony_ci    JSObject::Dump(os);
33784514f5e3Sopenharmony_ci}
33794514f5e3Sopenharmony_ci
33804514f5e3Sopenharmony_civoid JSPluralRules::Dump(std::ostream &os) const
33814514f5e3Sopenharmony_ci{
33824514f5e3Sopenharmony_ci    os << " - Locale: ";
33834514f5e3Sopenharmony_ci    GetLocale().Dump(os);
33844514f5e3Sopenharmony_ci    os << "\n";
33854514f5e3Sopenharmony_ci    os << " - Type: " << static_cast<int>(GetType());
33864514f5e3Sopenharmony_ci    os << "\n";
33874514f5e3Sopenharmony_ci    os << " - MinimumIntegerDigits: ";
33884514f5e3Sopenharmony_ci    GetMinimumIntegerDigits().Dump(os);
33894514f5e3Sopenharmony_ci    os << "\n";
33904514f5e3Sopenharmony_ci    os << " - MinimumFractionDigits: ";
33914514f5e3Sopenharmony_ci    GetMinimumFractionDigits().Dump(os);
33924514f5e3Sopenharmony_ci    os << "\n";
33934514f5e3Sopenharmony_ci    os << " - MaximumFractionDigits: ";
33944514f5e3Sopenharmony_ci    GetMaximumFractionDigits().Dump(os);
33954514f5e3Sopenharmony_ci    os << "\n";
33964514f5e3Sopenharmony_ci    os << " - MinimumSignificantDigits: ";
33974514f5e3Sopenharmony_ci    GetMinimumSignificantDigits().Dump(os);
33984514f5e3Sopenharmony_ci    os << "\n";
33994514f5e3Sopenharmony_ci    os << " - MaximumSignificantDigits: ";
34004514f5e3Sopenharmony_ci    GetMaximumSignificantDigits().Dump(os);
34014514f5e3Sopenharmony_ci    os << "\n";
34024514f5e3Sopenharmony_ci    os << " - RoundingType: " << static_cast<int>(GetRoundingType());
34034514f5e3Sopenharmony_ci    os << "\n";
34044514f5e3Sopenharmony_ci    os << " - IcuPR: ";
34054514f5e3Sopenharmony_ci    GetIcuPR().Dump(os);
34064514f5e3Sopenharmony_ci    os << "\n";
34074514f5e3Sopenharmony_ci    os << " - IcuNF: ";
34084514f5e3Sopenharmony_ci    GetIcuNF().Dump(os);
34094514f5e3Sopenharmony_ci    os << "\n";
34104514f5e3Sopenharmony_ci    JSObject::Dump(os);
34114514f5e3Sopenharmony_ci}
34124514f5e3Sopenharmony_ci
34134514f5e3Sopenharmony_civoid JSDisplayNames::Dump(std::ostream &os) const
34144514f5e3Sopenharmony_ci{
34154514f5e3Sopenharmony_ci    os << " - Locale: ";
34164514f5e3Sopenharmony_ci    GetLocale().Dump(os);
34174514f5e3Sopenharmony_ci    os << "\n";
34184514f5e3Sopenharmony_ci    os << " - Type: "<< static_cast<int>(GetType());
34194514f5e3Sopenharmony_ci    os << "\n";
34204514f5e3Sopenharmony_ci    os << " - Style: "<< static_cast<int>(GetStyle());
34214514f5e3Sopenharmony_ci    os << "\n";
34224514f5e3Sopenharmony_ci    os << " - Fallback: "<< static_cast<int>(GetFallback());
34234514f5e3Sopenharmony_ci    os << "\n";
34244514f5e3Sopenharmony_ci    os << " - IcuLDN: ";
34254514f5e3Sopenharmony_ci    GetIcuLDN().Dump(os);
34264514f5e3Sopenharmony_ci    os << "\n";
34274514f5e3Sopenharmony_ci    JSObject::Dump(os);
34284514f5e3Sopenharmony_ci}
34294514f5e3Sopenharmony_ci
34304514f5e3Sopenharmony_civoid JSSegmenter::Dump(std::ostream &os) const
34314514f5e3Sopenharmony_ci{
34324514f5e3Sopenharmony_ci    os << " - Locale: ";
34334514f5e3Sopenharmony_ci    GetLocale().Dump(os);
34344514f5e3Sopenharmony_ci    os << "\n";
34354514f5e3Sopenharmony_ci    os << " - Granularity: "<< static_cast<int>(GetGranularity());
34364514f5e3Sopenharmony_ci    os << "\n";
34374514f5e3Sopenharmony_ci    os << " - IcuField: ";
34384514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
34394514f5e3Sopenharmony_ci    os << "\n";
34404514f5e3Sopenharmony_ci    JSObject::Dump(os);
34414514f5e3Sopenharmony_ci}
34424514f5e3Sopenharmony_ci
34434514f5e3Sopenharmony_civoid JSSegments::Dump(std::ostream &os) const
34444514f5e3Sopenharmony_ci{
34454514f5e3Sopenharmony_ci    os << " - SegmentsString: ";
34464514f5e3Sopenharmony_ci    GetSegmentsString().Dump(os);
34474514f5e3Sopenharmony_ci    os << "\n";
34484514f5e3Sopenharmony_ci    os << " - UnicodeString: ";
34494514f5e3Sopenharmony_ci    GetUnicodeString().Dump(os);
34504514f5e3Sopenharmony_ci    os << "\n";
34514514f5e3Sopenharmony_ci    os << " - Granularity: "<< static_cast<int>(GetGranularity());
34524514f5e3Sopenharmony_ci    os << "\n";
34534514f5e3Sopenharmony_ci    os << " - IcuField: ";
34544514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
34554514f5e3Sopenharmony_ci    os << "\n";
34564514f5e3Sopenharmony_ci    JSObject::Dump(os);
34574514f5e3Sopenharmony_ci}
34584514f5e3Sopenharmony_ci
34594514f5e3Sopenharmony_civoid JSSegmentIterator::Dump(std::ostream &os) const
34604514f5e3Sopenharmony_ci{
34614514f5e3Sopenharmony_ci    os << " - IteratedString: ";
34624514f5e3Sopenharmony_ci    GetIteratedString().Dump(os);
34634514f5e3Sopenharmony_ci    os << "\n";
34644514f5e3Sopenharmony_ci    os << " - UnicodeString: ";
34654514f5e3Sopenharmony_ci    GetUnicodeString().Dump(os);
34664514f5e3Sopenharmony_ci    os << "\n";
34674514f5e3Sopenharmony_ci    os << " - Granularity: "<< static_cast<int>(GetGranularity());
34684514f5e3Sopenharmony_ci    os << "\n";
34694514f5e3Sopenharmony_ci    os << " - IcuField: ";
34704514f5e3Sopenharmony_ci    GetIcuField().Dump(os);
34714514f5e3Sopenharmony_ci    os << "\n";
34724514f5e3Sopenharmony_ci    JSObject::Dump(os);
34734514f5e3Sopenharmony_ci}
34744514f5e3Sopenharmony_ci
34754514f5e3Sopenharmony_civoid JSListFormat::Dump(std::ostream &os) const
34764514f5e3Sopenharmony_ci{
34774514f5e3Sopenharmony_ci    os << " - Locale: ";
34784514f5e3Sopenharmony_ci    GetLocale().Dump(os);
34794514f5e3Sopenharmony_ci    os << "\n";
34804514f5e3Sopenharmony_ci    os << " - Type: "<< static_cast<int>(GetType());
34814514f5e3Sopenharmony_ci    os << "\n";
34824514f5e3Sopenharmony_ci    os << " - Style: "<< static_cast<int>(GetStyle());
34834514f5e3Sopenharmony_ci    os << "\n";
34844514f5e3Sopenharmony_ci    os << " - IcuLF: ";
34854514f5e3Sopenharmony_ci    GetIcuLF().Dump(os);
34864514f5e3Sopenharmony_ci    os << "\n";
34874514f5e3Sopenharmony_ci    JSObject::Dump(os);
34884514f5e3Sopenharmony_ci}
34894514f5e3Sopenharmony_ci#endif
34904514f5e3Sopenharmony_civoid JSGeneratorObject::Dump(std::ostream &os) const
34914514f5e3Sopenharmony_ci{
34924514f5e3Sopenharmony_ci    os << " - GeneratorContext: ";
34934514f5e3Sopenharmony_ci    GetGeneratorContext().Dump(os);
34944514f5e3Sopenharmony_ci    os << "\n";
34954514f5e3Sopenharmony_ci    os << " - ResumeResult: ";
34964514f5e3Sopenharmony_ci    GetResumeResult().Dump(os);
34974514f5e3Sopenharmony_ci    os << "\n";
34984514f5e3Sopenharmony_ci    os << " - GeneratorState: " << static_cast<uint8_t>(GetGeneratorState());
34994514f5e3Sopenharmony_ci    os << "\n";
35004514f5e3Sopenharmony_ci    os << " - ResumeMode: " << static_cast<uint8_t>(GetResumeMode());
35014514f5e3Sopenharmony_ci    os << "\n";
35024514f5e3Sopenharmony_ci    JSObject::Dump(os);
35034514f5e3Sopenharmony_ci}
35044514f5e3Sopenharmony_ci
35054514f5e3Sopenharmony_civoid JSAsyncGeneratorObject::Dump(std::ostream &os) const
35064514f5e3Sopenharmony_ci{
35074514f5e3Sopenharmony_ci    os << " - GeneratorContext: ";
35084514f5e3Sopenharmony_ci    GetGeneratorContext().Dump(os);
35094514f5e3Sopenharmony_ci    os << "\n";
35104514f5e3Sopenharmony_ci    os << " - AsyncGeneratorQueue: ";
35114514f5e3Sopenharmony_ci    GetAsyncGeneratorQueue().Dump(os);
35124514f5e3Sopenharmony_ci    os << "\n";
35134514f5e3Sopenharmony_ci    os << " - GeneratorBrand: ";
35144514f5e3Sopenharmony_ci    GetGeneratorBrand().Dump(os);
35154514f5e3Sopenharmony_ci    os << "\n";
35164514f5e3Sopenharmony_ci    os << " - ResumeResult: ";
35174514f5e3Sopenharmony_ci    GetResumeResult().Dump(os);
35184514f5e3Sopenharmony_ci    os << "\n";
35194514f5e3Sopenharmony_ci    os << " - AsyncGeneratorState: " << static_cast<uint8_t>(GetAsyncGeneratorState());
35204514f5e3Sopenharmony_ci    os << "\n";
35214514f5e3Sopenharmony_ci    os << " - ResumeMode: " << static_cast<uint8_t>(GetResumeMode());
35224514f5e3Sopenharmony_ci    os << "\n";
35234514f5e3Sopenharmony_ci    JSObject::Dump(os);
35244514f5e3Sopenharmony_ci}
35254514f5e3Sopenharmony_ci
35264514f5e3Sopenharmony_civoid JSAsyncFuncObject::Dump(std::ostream &os) const
35274514f5e3Sopenharmony_ci{
35284514f5e3Sopenharmony_ci    os << " - Promise: ";
35294514f5e3Sopenharmony_ci    GetPromise().Dump(os);
35304514f5e3Sopenharmony_ci    os << "\n";
35314514f5e3Sopenharmony_ci}
35324514f5e3Sopenharmony_ci
35334514f5e3Sopenharmony_civoid GeneratorContext::Dump(std::ostream &os) const
35344514f5e3Sopenharmony_ci{
35354514f5e3Sopenharmony_ci    os << " - RegsArray: ";
35364514f5e3Sopenharmony_ci    GetRegsArray().Dump(os);
35374514f5e3Sopenharmony_ci    os << "\n";
35384514f5e3Sopenharmony_ci    os << " - Method: ";
35394514f5e3Sopenharmony_ci    GetMethod().Dump(os);
35404514f5e3Sopenharmony_ci    os << "\n";
35414514f5e3Sopenharmony_ci    os << " - This: ";
35424514f5e3Sopenharmony_ci    GetThis().Dump(os);
35434514f5e3Sopenharmony_ci    os << "\n";
35444514f5e3Sopenharmony_ci    os << " - Acc: ";
35454514f5e3Sopenharmony_ci    GetAcc().Dump(os);
35464514f5e3Sopenharmony_ci    os << "\n";
35474514f5e3Sopenharmony_ci    os << " - GeneratorObject: ";
35484514f5e3Sopenharmony_ci    GetGeneratorObject().Dump(os);
35494514f5e3Sopenharmony_ci    os << "\n";
35504514f5e3Sopenharmony_ci    os << " - LexicalEnv: ";
35514514f5e3Sopenharmony_ci    GetLexicalEnv().Dump(os);
35524514f5e3Sopenharmony_ci    os << "\n";
35534514f5e3Sopenharmony_ci    os << " - NRegs: " << GetNRegs();
35544514f5e3Sopenharmony_ci    os << "\n";
35554514f5e3Sopenharmony_ci    os << " - BCOffset: " << GetBCOffset();
35564514f5e3Sopenharmony_ci    os << "\n";
35574514f5e3Sopenharmony_ci}
35584514f5e3Sopenharmony_ci
35594514f5e3Sopenharmony_civoid ProtoChangeMarker::Dump(std::ostream &os) const
35604514f5e3Sopenharmony_ci{
35614514f5e3Sopenharmony_ci    os << " - HasChanged: " << GetHasChanged() << "\n";
35624514f5e3Sopenharmony_ci    os << " - HasAccessorChanged: " << GetAccessorHasChanged() << "\n";
35634514f5e3Sopenharmony_ci}
35644514f5e3Sopenharmony_ci
35654514f5e3Sopenharmony_civoid MarkerCell::Dump(std::ostream &os) const
35664514f5e3Sopenharmony_ci{
35674514f5e3Sopenharmony_ci    os << " - IsDetectorInvalid: " << GetIsDetectorInvalid() << "\n";
35684514f5e3Sopenharmony_ci}
35694514f5e3Sopenharmony_ci
35704514f5e3Sopenharmony_civoid ProtoChangeDetails::Dump(std::ostream &os) const
35714514f5e3Sopenharmony_ci{
35724514f5e3Sopenharmony_ci    os << " - ChangeListener: ";
35734514f5e3Sopenharmony_ci    GetChangeListener().Dump(os);
35744514f5e3Sopenharmony_ci    os << " \t- RegisterIndex: " << GetRegisterIndex();
35754514f5e3Sopenharmony_ci    os << "\n";
35764514f5e3Sopenharmony_ci}
35774514f5e3Sopenharmony_ci
35784514f5e3Sopenharmony_civoid TrackInfo::Dump(std::ostream &os) const
35794514f5e3Sopenharmony_ci{
35804514f5e3Sopenharmony_ci    os << " - ElementsKind: " << static_cast<uint32_t>(GetElementsKind()) << "\n";
35814514f5e3Sopenharmony_ci    os << " - ArrayLength: " << static_cast<uint32_t>(GetArrayLength()) << "\n";
35824514f5e3Sopenharmony_ci    os << " - SpaceFlag: " << static_cast<uint32_t>(GetSpaceFlag()) << "\n";
35834514f5e3Sopenharmony_ci}
35844514f5e3Sopenharmony_ci
35854514f5e3Sopenharmony_civoid MachineCode::Dump(std::ostream &os) const
35864514f5e3Sopenharmony_ci{
35874514f5e3Sopenharmony_ci    os << " - InstructionSizeInBytes: " << GetInstructionSizeInBytes();
35884514f5e3Sopenharmony_ci    os << "\n";
35894514f5e3Sopenharmony_ci}
35904514f5e3Sopenharmony_ci
35914514f5e3Sopenharmony_civoid ClassInfoExtractor::Dump(std::ostream &os) const
35924514f5e3Sopenharmony_ci{
35934514f5e3Sopenharmony_ci    os << " - NonStaticKeys: ";
35944514f5e3Sopenharmony_ci    GetNonStaticKeys().Dump(os);
35954514f5e3Sopenharmony_ci    os << "\n";
35964514f5e3Sopenharmony_ci    os << " - NonStaticProperties: ";
35974514f5e3Sopenharmony_ci    GetNonStaticProperties().Dump(os);
35984514f5e3Sopenharmony_ci    os << "\n";
35994514f5e3Sopenharmony_ci    os << " - NonStaticElements: ";
36004514f5e3Sopenharmony_ci    GetNonStaticElements().Dump(os);
36014514f5e3Sopenharmony_ci    os << "\n";
36024514f5e3Sopenharmony_ci    os << " - StaticKeys: ";
36034514f5e3Sopenharmony_ci    GetStaticKeys().Dump(os);
36044514f5e3Sopenharmony_ci    os << "\n";
36054514f5e3Sopenharmony_ci    os << " - StaticProperties: ";
36064514f5e3Sopenharmony_ci    GetStaticProperties().Dump(os);
36074514f5e3Sopenharmony_ci    os << "\n";
36084514f5e3Sopenharmony_ci    os << " - StaticElements: ";
36094514f5e3Sopenharmony_ci    GetStaticElements().Dump(os);
36104514f5e3Sopenharmony_ci    os << "\n";
36114514f5e3Sopenharmony_ci}
36124514f5e3Sopenharmony_ci
36134514f5e3Sopenharmony_civoid SourceTextModule::Dump(std::ostream &os) const
36144514f5e3Sopenharmony_ci{
36154514f5e3Sopenharmony_ci    os << " - Environment: ";
36164514f5e3Sopenharmony_ci    GetEnvironment().Dump(os);
36174514f5e3Sopenharmony_ci    os << "\n";
36184514f5e3Sopenharmony_ci    os << " - Namespace: ";
36194514f5e3Sopenharmony_ci    GetNamespace().Dump(os);
36204514f5e3Sopenharmony_ci    os << "\n";
36214514f5e3Sopenharmony_ci    os << " - EcmaModuleFilename: ";
36224514f5e3Sopenharmony_ci    os << GetEcmaModuleFilenameString();
36234514f5e3Sopenharmony_ci    os << "\n";
36244514f5e3Sopenharmony_ci    os << " - EcmaModuleRecordName: ";
36254514f5e3Sopenharmony_ci    os << GetEcmaModuleRecordNameString();
36264514f5e3Sopenharmony_ci    os << "\n";
36274514f5e3Sopenharmony_ci    os << " - RequestedModules: ";
36284514f5e3Sopenharmony_ci    GetRequestedModules().Dump(os);
36294514f5e3Sopenharmony_ci    os << "\n";
36304514f5e3Sopenharmony_ci    os << " - ImportEntries: ";
36314514f5e3Sopenharmony_ci    GetImportEntries().Dump(os);
36324514f5e3Sopenharmony_ci    os << "\n";
36334514f5e3Sopenharmony_ci    os << " - LocalExportEntries: ";
36344514f5e3Sopenharmony_ci    GetLocalExportEntries().Dump(os);
36354514f5e3Sopenharmony_ci    os << "\n";
36364514f5e3Sopenharmony_ci    os << " - IndirectExportEntries: ";
36374514f5e3Sopenharmony_ci    GetIndirectExportEntries().Dump(os);
36384514f5e3Sopenharmony_ci    os << "\n";
36394514f5e3Sopenharmony_ci    os << " - StarExportEntries: ";
36404514f5e3Sopenharmony_ci    GetStarExportEntries().Dump(os);
36414514f5e3Sopenharmony_ci    os << "\n";
36424514f5e3Sopenharmony_ci    os << " - Status: ";
36434514f5e3Sopenharmony_ci    os << static_cast<int32_t>(GetStatus());
36444514f5e3Sopenharmony_ci    os << "\n";
36454514f5e3Sopenharmony_ci    os << " - EvaluationError: ";
36464514f5e3Sopenharmony_ci    os << GetEvaluationError();
36474514f5e3Sopenharmony_ci    os << "\n";
36484514f5e3Sopenharmony_ci    os << " - DFSIndex: ";
36494514f5e3Sopenharmony_ci    os << GetDFSIndex();
36504514f5e3Sopenharmony_ci    os << "\n";
36514514f5e3Sopenharmony_ci    os << " - DFSAncestorIndex: ";
36524514f5e3Sopenharmony_ci    os << GetDFSAncestorIndex();
36534514f5e3Sopenharmony_ci    os << "\n";
36544514f5e3Sopenharmony_ci    os << " - NameDictionary: ";
36554514f5e3Sopenharmony_ci    GetNameDictionary().Dump(os);
36564514f5e3Sopenharmony_ci    os << "\n";
36574514f5e3Sopenharmony_ci    os << " - CycleRoot: ";
36584514f5e3Sopenharmony_ci    // avoid infinite dump
36594514f5e3Sopenharmony_ci    if (GetCycleRoot() != JSTaggedValue(this)) {
36604514f5e3Sopenharmony_ci        GetCycleRoot().Dump(os);
36614514f5e3Sopenharmony_ci    } else {
36624514f5e3Sopenharmony_ci        os << "this";
36634514f5e3Sopenharmony_ci    }
36644514f5e3Sopenharmony_ci    os << "\n";
36654514f5e3Sopenharmony_ci    os << " - TopLevelCapability: ";
36664514f5e3Sopenharmony_ci    GetTopLevelCapability().Dump(os);
36674514f5e3Sopenharmony_ci    os << "\n";
36684514f5e3Sopenharmony_ci    os << " - AsyncParentModules: ";
36694514f5e3Sopenharmony_ci    GetAsyncParentModules().Dump(os);
36704514f5e3Sopenharmony_ci    os << "\n";
36714514f5e3Sopenharmony_ci    os << " - SendableEnv: ";
36724514f5e3Sopenharmony_ci    GetSendableEnv().Dump(os);
36734514f5e3Sopenharmony_ci    os << "\n";
36744514f5e3Sopenharmony_ci    os << " - HasTLA: ";
36754514f5e3Sopenharmony_ci    os << GetHasTLA();
36764514f5e3Sopenharmony_ci    os << "\n";
36774514f5e3Sopenharmony_ci    os << " - AsyncEvaluatingOrdinal: ";
36784514f5e3Sopenharmony_ci    os << GetAsyncEvaluatingOrdinal();
36794514f5e3Sopenharmony_ci    os << "\n";
36804514f5e3Sopenharmony_ci    os << " - PendingAsyncDependencies: ";
36814514f5e3Sopenharmony_ci    os << GetPendingAsyncDependencies();
36824514f5e3Sopenharmony_ci    os << "\n";
36834514f5e3Sopenharmony_ci}
36844514f5e3Sopenharmony_ci
36854514f5e3Sopenharmony_civoid ImportEntry::Dump(std::ostream &os) const
36864514f5e3Sopenharmony_ci{
36874514f5e3Sopenharmony_ci    os << " - ModuleRequest: ";
36884514f5e3Sopenharmony_ci    GetModuleRequest().Dump(os);
36894514f5e3Sopenharmony_ci    os << "\n";
36904514f5e3Sopenharmony_ci    os << " - ImportName: ";
36914514f5e3Sopenharmony_ci    GetImportName().Dump(os);
36924514f5e3Sopenharmony_ci    os << "\n";
36934514f5e3Sopenharmony_ci    os << " - LocalName: ";
36944514f5e3Sopenharmony_ci    GetLocalName().Dump(os);
36954514f5e3Sopenharmony_ci    os << "\n";
36964514f5e3Sopenharmony_ci}
36974514f5e3Sopenharmony_ci
36984514f5e3Sopenharmony_civoid LocalExportEntry::Dump(std::ostream &os) const
36994514f5e3Sopenharmony_ci{
37004514f5e3Sopenharmony_ci    os << " - ExportName: ";
37014514f5e3Sopenharmony_ci    GetExportName().Dump(os);
37024514f5e3Sopenharmony_ci    os << "\n";
37034514f5e3Sopenharmony_ci    os << " - LocalName: ";
37044514f5e3Sopenharmony_ci    GetLocalName().Dump(os);
37054514f5e3Sopenharmony_ci    os << "\n";
37064514f5e3Sopenharmony_ci    os << " - LocalIndex: " << GetLocalIndex();
37074514f5e3Sopenharmony_ci    os << "\n";
37084514f5e3Sopenharmony_ci}
37094514f5e3Sopenharmony_ci
37104514f5e3Sopenharmony_civoid IndirectExportEntry::Dump(std::ostream &os) const
37114514f5e3Sopenharmony_ci{
37124514f5e3Sopenharmony_ci    os << " - ExportName: ";
37134514f5e3Sopenharmony_ci    GetExportName().Dump(os);
37144514f5e3Sopenharmony_ci    os << "\n";
37154514f5e3Sopenharmony_ci    os << " - ModuleRequest: ";
37164514f5e3Sopenharmony_ci    GetModuleRequest().Dump(os);
37174514f5e3Sopenharmony_ci    os << "\n";
37184514f5e3Sopenharmony_ci    os << " - ImportName: ";
37194514f5e3Sopenharmony_ci    GetImportName().Dump(os);
37204514f5e3Sopenharmony_ci    os << "\n";
37214514f5e3Sopenharmony_ci}
37224514f5e3Sopenharmony_ci
37234514f5e3Sopenharmony_civoid StarExportEntry::Dump(std::ostream &os) const
37244514f5e3Sopenharmony_ci{
37254514f5e3Sopenharmony_ci    os << " - ModuleRequest: ";
37264514f5e3Sopenharmony_ci    GetModuleRequest().Dump(os);
37274514f5e3Sopenharmony_ci    os << "\n";
37284514f5e3Sopenharmony_ci}
37294514f5e3Sopenharmony_ci
37304514f5e3Sopenharmony_civoid ResolvedBinding::Dump(std::ostream &os) const
37314514f5e3Sopenharmony_ci{
37324514f5e3Sopenharmony_ci    os << " - Module: ";
37334514f5e3Sopenharmony_ci    GetModule().Dump(os);
37344514f5e3Sopenharmony_ci    os << "\n";
37354514f5e3Sopenharmony_ci    os << " - BindingName: ";
37364514f5e3Sopenharmony_ci    GetBindingName().Dump(os);
37374514f5e3Sopenharmony_ci    os << "\n";
37384514f5e3Sopenharmony_ci}
37394514f5e3Sopenharmony_ci
37404514f5e3Sopenharmony_civoid ResolvedIndexBinding::Dump(std::ostream &os) const
37414514f5e3Sopenharmony_ci{
37424514f5e3Sopenharmony_ci    os << " - Module: ";
37434514f5e3Sopenharmony_ci    GetModule().Dump(os);
37444514f5e3Sopenharmony_ci    os << "\n";
37454514f5e3Sopenharmony_ci    os << " - Index: ";
37464514f5e3Sopenharmony_ci    GetIndex();
37474514f5e3Sopenharmony_ci    os << "\n";
37484514f5e3Sopenharmony_ci}
37494514f5e3Sopenharmony_ci
37504514f5e3Sopenharmony_civoid ResolvedRecordIndexBinding::Dump(std::ostream &os) const
37514514f5e3Sopenharmony_ci{
37524514f5e3Sopenharmony_ci    os << " - Module: ";
37534514f5e3Sopenharmony_ci    GetModuleRecord().Dump(os);
37544514f5e3Sopenharmony_ci    os << "\n";
37554514f5e3Sopenharmony_ci    os << " - AbcFileName: ";
37564514f5e3Sopenharmony_ci    GetAbcFileName().Dump(os);
37574514f5e3Sopenharmony_ci    os << "\n";
37584514f5e3Sopenharmony_ci    os << " - Index: ";
37594514f5e3Sopenharmony_ci    GetIndex();
37604514f5e3Sopenharmony_ci    os << "\n";
37614514f5e3Sopenharmony_ci}
37624514f5e3Sopenharmony_ci
37634514f5e3Sopenharmony_civoid ResolvedRecordBinding::Dump(std::ostream &os) const
37644514f5e3Sopenharmony_ci{
37654514f5e3Sopenharmony_ci    os << " - Module: ";
37664514f5e3Sopenharmony_ci    GetModuleRecord().Dump(os);
37674514f5e3Sopenharmony_ci    os << "\n";
37684514f5e3Sopenharmony_ci    os << " - BindingName: ";
37694514f5e3Sopenharmony_ci    GetBindingName().Dump(os);
37704514f5e3Sopenharmony_ci    os << "\n";
37714514f5e3Sopenharmony_ci}
37724514f5e3Sopenharmony_ci
37734514f5e3Sopenharmony_civoid ModuleNamespace::Dump(std::ostream &os) const
37744514f5e3Sopenharmony_ci{
37754514f5e3Sopenharmony_ci    os << " - Exports: ";
37764514f5e3Sopenharmony_ci    GetExports().Dump(os);
37774514f5e3Sopenharmony_ci    os << "\n";
37784514f5e3Sopenharmony_ci}
37794514f5e3Sopenharmony_ci
37804514f5e3Sopenharmony_civoid NativeModuleFailureInfo::Dump(std::ostream &os) const
37814514f5e3Sopenharmony_ci{
37824514f5e3Sopenharmony_ci    os << " - ArkNativeModuleFailureInfo: ";
37834514f5e3Sopenharmony_ci    GetArkNativeModuleFailureInfo().Dump(os);
37844514f5e3Sopenharmony_ci    os << "\n";
37854514f5e3Sopenharmony_ci}
37864514f5e3Sopenharmony_ci
37874514f5e3Sopenharmony_civoid CjsModule::Dump(std::ostream &os) const
37884514f5e3Sopenharmony_ci{
37894514f5e3Sopenharmony_ci    os << " - current module path: ";
37904514f5e3Sopenharmony_ci    GetPath().Dump(os);
37914514f5e3Sopenharmony_ci    os << "\n";
37924514f5e3Sopenharmony_ci    os << " - current module filename: ";
37934514f5e3Sopenharmony_ci    GetFilename().Dump(os);
37944514f5e3Sopenharmony_ci    os << "\n";
37954514f5e3Sopenharmony_ci}
37964514f5e3Sopenharmony_ci
37974514f5e3Sopenharmony_civoid CjsRequire::Dump(std::ostream &os) const
37984514f5e3Sopenharmony_ci{
37994514f5e3Sopenharmony_ci    os << " --- CjsRequire is JSFunction: ";
38004514f5e3Sopenharmony_ci    os << "\n";
38014514f5e3Sopenharmony_ci}
38024514f5e3Sopenharmony_ci
38034514f5e3Sopenharmony_civoid CjsExports::Dump(std::ostream &os) const
38044514f5e3Sopenharmony_ci{
38054514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
38064514f5e3Sopenharmony_ci    JSHClass *jshclass = GetJSHClass();
38074514f5e3Sopenharmony_ci    os << " - hclass: " << std::hex << jshclass << "\n";
38084514f5e3Sopenharmony_ci    os << " - prototype: ";
38094514f5e3Sopenharmony_ci    jshclass->GetPrototype().DumpTaggedValue(os);
38104514f5e3Sopenharmony_ci    os << "\n";
38114514f5e3Sopenharmony_ci
38124514f5e3Sopenharmony_ci    TaggedArray *properties = TaggedArray::Cast(GetProperties().GetTaggedObject());
38134514f5e3Sopenharmony_ci    os << " - properties: " << std::hex << properties;
38144514f5e3Sopenharmony_ci
38154514f5e3Sopenharmony_ci    if (!properties->IsDictionaryMode()) {
38164514f5e3Sopenharmony_ci        JSTaggedValue attrs = jshclass->GetLayout();
38174514f5e3Sopenharmony_ci        if (attrs.IsNull()) {
38184514f5e3Sopenharmony_ci            return;
38194514f5e3Sopenharmony_ci        }
38204514f5e3Sopenharmony_ci
38214514f5e3Sopenharmony_ci        LayoutInfo *layoutInfo = LayoutInfo::Cast(attrs.GetTaggedObject());
38224514f5e3Sopenharmony_ci        int propNumber = static_cast<int>(jshclass->NumberOfProps());
38234514f5e3Sopenharmony_ci        os << " <LayoutInfo[" << std::dec << propNumber << "]>\n";
38244514f5e3Sopenharmony_ci        for (int i = 0; i < propNumber; i++) {
38254514f5e3Sopenharmony_ci            JSTaggedValue key = layoutInfo->GetKey(i);
38264514f5e3Sopenharmony_ci            PropertyAttributes attr = layoutInfo->GetAttr(i);
38274514f5e3Sopenharmony_ci            ASSERT(i == static_cast<int>(attr.GetOffset()));
38284514f5e3Sopenharmony_ci            os << "     " << std::right << std::setw(DUMP_PROPERTY_OFFSET);
38294514f5e3Sopenharmony_ci            DumpPropertyKey(key, os);
38304514f5e3Sopenharmony_ci            os << ": (";
38314514f5e3Sopenharmony_ci            JSTaggedValue val;
38324514f5e3Sopenharmony_ci            if (attr.IsInlinedProps()) {
38334514f5e3Sopenharmony_ci                val = GetPropertyInlinedPropsWithRep(i, attr);
38344514f5e3Sopenharmony_ci            } else {
38354514f5e3Sopenharmony_ci                val = properties->Get(i - static_cast<int>(jshclass->GetInlinedProperties()));
38364514f5e3Sopenharmony_ci            }
38374514f5e3Sopenharmony_ci            val.DumpTaggedValue(os);
38384514f5e3Sopenharmony_ci            os << ") ";
38394514f5e3Sopenharmony_ci            DumpAttr(attr, true, os);
38404514f5e3Sopenharmony_ci            os << "\n";
38414514f5e3Sopenharmony_ci        }
38424514f5e3Sopenharmony_ci    } else {
38434514f5e3Sopenharmony_ci        NameDictionary *dict = NameDictionary::Cast(properties);
38444514f5e3Sopenharmony_ci        os << " <NameDictionary[" << std::dec << dict->EntriesCount() << "]>\n";
38454514f5e3Sopenharmony_ci        dict->Dump(os);
38464514f5e3Sopenharmony_ci    }
38474514f5e3Sopenharmony_ci}
38484514f5e3Sopenharmony_ci
38494514f5e3Sopenharmony_civoid JSFunctionBase::Dump(std::ostream &os) const
38504514f5e3Sopenharmony_ci{
38514514f5e3Sopenharmony_ci    os << " - Method: ";
38524514f5e3Sopenharmony_ci    GetMethod().Dump(os);
38534514f5e3Sopenharmony_ci    os << "\n";
38544514f5e3Sopenharmony_ci}
38554514f5e3Sopenharmony_ci
38564514f5e3Sopenharmony_civoid Method::Dump(std::ostream &os) const
38574514f5e3Sopenharmony_ci{
38584514f5e3Sopenharmony_ci    os << " - MethodName: ";
38594514f5e3Sopenharmony_ci    os << GetMethodName();
38604514f5e3Sopenharmony_ci    os << "\n";
38614514f5e3Sopenharmony_ci    os << " - ConstantPool: ";
38624514f5e3Sopenharmony_ci    GetConstantPool().Dump(os);
38634514f5e3Sopenharmony_ci    os << "\n";
38644514f5e3Sopenharmony_ci    os << " - FunctionKind: " << static_cast<int>(GetFunctionKind());
38654514f5e3Sopenharmony_ci    os << "\n";
38664514f5e3Sopenharmony_ci    os << " - CodeEntryOrLiteral: " << std::hex << GetCodeEntryOrLiteral() << "\n";
38674514f5e3Sopenharmony_ci    os << "\n";
38684514f5e3Sopenharmony_ci}
38694514f5e3Sopenharmony_ci
38704514f5e3Sopenharmony_civoid ClassLiteral::Dump(std::ostream &os) const
38714514f5e3Sopenharmony_ci{
38724514f5e3Sopenharmony_ci    os << " - ClassLiteral: ";
38734514f5e3Sopenharmony_ci    os << "\n";
38744514f5e3Sopenharmony_ci    os << " - IsAOTUsed: " << std::boolalpha << GetIsAOTUsed();
38754514f5e3Sopenharmony_ci    os << "\n";
38764514f5e3Sopenharmony_ci    os << " - Array: ";
38774514f5e3Sopenharmony_ci    GetArray().Dump(os);
38784514f5e3Sopenharmony_ci    os << "\n";
38794514f5e3Sopenharmony_ci}
38804514f5e3Sopenharmony_ci
38814514f5e3Sopenharmony_ci// ########################################################################################
38824514f5e3Sopenharmony_ci// Dump for Snapshot
38834514f5e3Sopenharmony_ci// ########################################################################################
38844514f5e3Sopenharmony_cistatic void DumpArrayClass(const TaggedArray *arr, std::vector<Reference> &vec)
38854514f5e3Sopenharmony_ci{
38864514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
38874514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
38884514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
38894514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
38904514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
38914514f5e3Sopenharmony_ci        CString str = ToCString(i);
38924514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
38934514f5e3Sopenharmony_ci    }
38944514f5e3Sopenharmony_ci}
38954514f5e3Sopenharmony_ci
38964514f5e3Sopenharmony_cistatic void DumpMutantTaggedArrayClass(const MutantTaggedArray *arr, std::vector<Reference> &vec)
38974514f5e3Sopenharmony_ci{
38984514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
38994514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
39004514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
39014514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
39024514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
39034514f5e3Sopenharmony_ci        CString str = ToCString(i);
39044514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
39054514f5e3Sopenharmony_ci    }
39064514f5e3Sopenharmony_ci}
39074514f5e3Sopenharmony_ci
39084514f5e3Sopenharmony_cistatic void DumpCOWMutantTaggedArrayClass(const COWMutantTaggedArray *arr, std::vector<Reference> &vec)
39094514f5e3Sopenharmony_ci{
39104514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
39114514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
39124514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
39134514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
39144514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
39154514f5e3Sopenharmony_ci        CString str = ToCString(i);
39164514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
39174514f5e3Sopenharmony_ci    }
39184514f5e3Sopenharmony_ci}
39194514f5e3Sopenharmony_ci
39204514f5e3Sopenharmony_cistatic void DumpElementClass(const TaggedArray *arr, std::vector<Reference> &vec)
39214514f5e3Sopenharmony_ci{
39224514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
39234514f5e3Sopenharmony_ci    uint32_t len = arr->GetLength();
39244514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
39254514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
39264514f5e3Sopenharmony_ci        JSTaggedValue val(arr->Get(i));
39274514f5e3Sopenharmony_ci        vec.emplace_back(i, val, Reference::ReferenceType::ELEMENT);
39284514f5e3Sopenharmony_ci    }
39294514f5e3Sopenharmony_ci}
39304514f5e3Sopenharmony_ci
39314514f5e3Sopenharmony_cistatic void DumpConstantPoolClass(const ConstantPool *arr, std::vector<Reference> &vec)
39324514f5e3Sopenharmony_ci{
39334514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
39344514f5e3Sopenharmony_ci    uint32_t len = arr->GetCacheLength();
39354514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
39364514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
39374514f5e3Sopenharmony_ci        JSTaggedValue val(arr->GetObjectFromCache(i));
39384514f5e3Sopenharmony_ci        CString str = ToCString(i);
39394514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
39404514f5e3Sopenharmony_ci    }
39414514f5e3Sopenharmony_ci}
39424514f5e3Sopenharmony_ci
39434514f5e3Sopenharmony_cistatic void DumpStringClass([[maybe_unused]] const EcmaString *str, [[maybe_unused]] std::vector<Reference> &vec)
39444514f5e3Sopenharmony_ci{
39454514f5e3Sopenharmony_ci    // Before EcmaString dump self node, it need not show, so delete.
39464514f5e3Sopenharmony_ci    // If some properties need be shown, add here.
39474514f5e3Sopenharmony_ci}
39484514f5e3Sopenharmony_ci
39494514f5e3Sopenharmony_cistatic void DumpObject(TaggedObject *obj, std::vector<Reference> &vec, bool isVmMode)
39504514f5e3Sopenharmony_ci{
39514514f5e3Sopenharmony_ci    JSTaggedValue objValue(obj);
39524514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
39534514f5e3Sopenharmony_ci    auto jsHclass = obj->GetClass();
39544514f5e3Sopenharmony_ci    JSType type = jsHclass->GetObjectType();
39554514f5e3Sopenharmony_ci    vec.emplace_back("hclass", JSTaggedValue(jsHclass));
39564514f5e3Sopenharmony_ci    switch (type) {
39574514f5e3Sopenharmony_ci        case JSType::HCLASS:
39584514f5e3Sopenharmony_ci            JSHClass::Cast(obj)->DumpForSnapshot(vec);
39594514f5e3Sopenharmony_ci            break;
39604514f5e3Sopenharmony_ci        case JSType::TAGGED_ARRAY:
39614514f5e3Sopenharmony_ci        case JSType::TAGGED_DICTIONARY:
39624514f5e3Sopenharmony_ci        case JSType::LEXICAL_ENV:
39634514f5e3Sopenharmony_ci        case JSType::SENDABLE_ENV:
39644514f5e3Sopenharmony_ci        case JSType::COW_TAGGED_ARRAY:
39654514f5e3Sopenharmony_ci        case JSType::AOT_LITERAL_INFO:
39664514f5e3Sopenharmony_ci            DumpArrayClass(TaggedArray::Cast(obj), vec);
39674514f5e3Sopenharmony_ci            break;
39684514f5e3Sopenharmony_ci        case JSType::MUTANT_TAGGED_ARRAY:
39694514f5e3Sopenharmony_ci            DumpMutantTaggedArrayClass(MutantTaggedArray::Cast(obj), vec);
39704514f5e3Sopenharmony_ci            break;
39714514f5e3Sopenharmony_ci        case JSType::COW_MUTANT_TAGGED_ARRAY:
39724514f5e3Sopenharmony_ci            DumpCOWMutantTaggedArrayClass(COWMutantTaggedArray::Cast(obj), vec);
39734514f5e3Sopenharmony_ci            break;
39744514f5e3Sopenharmony_ci        case JSType::CONSTANT_POOL:
39754514f5e3Sopenharmony_ci            DumpConstantPoolClass(ConstantPool::Cast(obj), vec);
39764514f5e3Sopenharmony_ci            break;
39774514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_0:
39784514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_1:
39794514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO_CELL_N:
39804514f5e3Sopenharmony_ci            ProfileTypeInfoCell::Cast(obj)->DumpForSnapshot(vec);
39814514f5e3Sopenharmony_ci            break;
39824514f5e3Sopenharmony_ci        case JSType::FUNCTION_TEMPLATE:
39834514f5e3Sopenharmony_ci            FunctionTemplate::Cast(obj)->DumpForSnapshot(vec);
39844514f5e3Sopenharmony_ci            break;
39854514f5e3Sopenharmony_ci        case JSType::VTABLE:
39864514f5e3Sopenharmony_ci            VTable::Cast(obj)->DumpForSnapshot(vec);
39874514f5e3Sopenharmony_ci            break;
39884514f5e3Sopenharmony_ci        case JSType::PROFILE_TYPE_INFO:
39894514f5e3Sopenharmony_ci            ProfileTypeInfo::Cast(obj)->DumpForSnapshot(vec);
39904514f5e3Sopenharmony_ci            break;
39914514f5e3Sopenharmony_ci        case JSType::LINE_STRING:
39924514f5e3Sopenharmony_ci        case JSType::CONSTANT_STRING:
39934514f5e3Sopenharmony_ci        case JSType::TREE_STRING:
39944514f5e3Sopenharmony_ci        case JSType::SLICED_STRING:
39954514f5e3Sopenharmony_ci            DumpStringClass(EcmaString::Cast(obj), vec);
39964514f5e3Sopenharmony_ci            break;
39974514f5e3Sopenharmony_ci        case JSType::JS_NATIVE_POINTER:
39984514f5e3Sopenharmony_ci            break;
39994514f5e3Sopenharmony_ci        case JSType::JS_OBJECT:
40004514f5e3Sopenharmony_ci        case JSType::JS_ERROR:
40014514f5e3Sopenharmony_ci        case JSType::JS_EVAL_ERROR:
40024514f5e3Sopenharmony_ci        case JSType::JS_RANGE_ERROR:
40034514f5e3Sopenharmony_ci        case JSType::JS_TYPE_ERROR:
40044514f5e3Sopenharmony_ci        case JSType::JS_AGGREGATE_ERROR:
40054514f5e3Sopenharmony_ci        case JSType::JS_REFERENCE_ERROR:
40064514f5e3Sopenharmony_ci        case JSType::JS_URI_ERROR:
40074514f5e3Sopenharmony_ci        case JSType::JS_SYNTAX_ERROR:
40084514f5e3Sopenharmony_ci        case JSType::JS_OOM_ERROR:
40094514f5e3Sopenharmony_ci        case JSType::JS_TERMINATION_ERROR:
40104514f5e3Sopenharmony_ci        case JSType::JS_ARGUMENTS:
40114514f5e3Sopenharmony_ci        case JSType::JS_GLOBAL_OBJECT:
40124514f5e3Sopenharmony_ci        case JSType::JS_SHARED_OBJECT:
40134514f5e3Sopenharmony_ci            JSObject::Cast(obj)->DumpForSnapshot(vec);
40144514f5e3Sopenharmony_ci            break;
40154514f5e3Sopenharmony_ci        case JSType::JS_FUNCTION_BASE:
40164514f5e3Sopenharmony_ci        case JSType::JS_FUNCTION:
40174514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FUNCTION:
40184514f5e3Sopenharmony_ci            JSFunction::Cast(obj)->DumpForSnapshot(vec);
40194514f5e3Sopenharmony_ci            break;
40204514f5e3Sopenharmony_ci        case JSType::JS_BOUND_FUNCTION:
40214514f5e3Sopenharmony_ci            JSBoundFunction::Cast(obj)->DumpForSnapshot(vec);
40224514f5e3Sopenharmony_ci            break;
40234514f5e3Sopenharmony_ci        case JSType::JS_SET:
40244514f5e3Sopenharmony_ci            JSSet::Cast(obj)->DumpForSnapshot(vec);
40254514f5e3Sopenharmony_ci            break;
40264514f5e3Sopenharmony_ci        case JSType::JS_SHARED_SET:
40274514f5e3Sopenharmony_ci            JSSharedSet::Cast(obj)->DumpForSnapshot(vec);
40284514f5e3Sopenharmony_ci            break;
40294514f5e3Sopenharmony_ci        case JSType::JS_MAP:
40304514f5e3Sopenharmony_ci            JSMap::Cast(obj)->DumpForSnapshot(vec);
40314514f5e3Sopenharmony_ci            break;
40324514f5e3Sopenharmony_ci        case JSType::JS_SHARED_MAP:
40334514f5e3Sopenharmony_ci            JSSharedMap::Cast(obj)->DumpForSnapshot(vec);
40344514f5e3Sopenharmony_ci            break;
40354514f5e3Sopenharmony_ci        case JSType::JS_WEAK_SET:
40364514f5e3Sopenharmony_ci            JSWeakSet::Cast(obj)->DumpForSnapshot(vec);
40374514f5e3Sopenharmony_ci            break;
40384514f5e3Sopenharmony_ci        case JSType::JS_WEAK_MAP:
40394514f5e3Sopenharmony_ci            JSWeakMap::Cast(obj)->DumpForSnapshot(vec);
40404514f5e3Sopenharmony_ci            break;
40414514f5e3Sopenharmony_ci        case JSType::JS_WEAK_REF:
40424514f5e3Sopenharmony_ci            JSWeakRef::Cast(obj)->DumpForSnapshot(vec);
40434514f5e3Sopenharmony_ci            break;
40444514f5e3Sopenharmony_ci        case JSType::JS_FINALIZATION_REGISTRY:
40454514f5e3Sopenharmony_ci            JSFinalizationRegistry::Cast(obj)->DumpForSnapshot(vec);
40464514f5e3Sopenharmony_ci            break;
40474514f5e3Sopenharmony_ci        case JSType::CELL_RECORD:
40484514f5e3Sopenharmony_ci            CellRecord::Cast(obj)->DumpForSnapshot(vec);
40494514f5e3Sopenharmony_ci            break;
40504514f5e3Sopenharmony_ci        case JSType::JS_REG_EXP:
40514514f5e3Sopenharmony_ci            JSRegExp::Cast(obj)->DumpForSnapshot(vec);
40524514f5e3Sopenharmony_ci            break;
40534514f5e3Sopenharmony_ci        case JSType::JS_DATE:
40544514f5e3Sopenharmony_ci            JSDate::Cast(obj)->DumpForSnapshot(vec);
40554514f5e3Sopenharmony_ci            break;
40564514f5e3Sopenharmony_ci        case JSType::JS_ARRAY:
40574514f5e3Sopenharmony_ci            JSArray::Cast(obj)->DumpForSnapshot(vec);
40584514f5e3Sopenharmony_ci            break;
40594514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY:
40604514f5e3Sopenharmony_ci            JSSharedArray::Cast(obj)->DumpForSnapshot(vec);
40614514f5e3Sopenharmony_ci            break;
40624514f5e3Sopenharmony_ci        case JSType::JS_TYPED_ARRAY:
40634514f5e3Sopenharmony_ci        case JSType::JS_INT8_ARRAY:
40644514f5e3Sopenharmony_ci        case JSType::JS_UINT8_ARRAY:
40654514f5e3Sopenharmony_ci        case JSType::JS_UINT8_CLAMPED_ARRAY:
40664514f5e3Sopenharmony_ci        case JSType::JS_INT16_ARRAY:
40674514f5e3Sopenharmony_ci        case JSType::JS_UINT16_ARRAY:
40684514f5e3Sopenharmony_ci        case JSType::JS_INT32_ARRAY:
40694514f5e3Sopenharmony_ci        case JSType::JS_UINT32_ARRAY:
40704514f5e3Sopenharmony_ci        case JSType::JS_FLOAT32_ARRAY:
40714514f5e3Sopenharmony_ci        case JSType::JS_FLOAT64_ARRAY:
40724514f5e3Sopenharmony_ci        case JSType::JS_BIGINT64_ARRAY:
40734514f5e3Sopenharmony_ci        case JSType::JS_BIGUINT64_ARRAY:
40744514f5e3Sopenharmony_ci            JSTypedArray::Cast(obj)->DumpForSnapshot(vec);
40754514f5e3Sopenharmony_ci            break;
40764514f5e3Sopenharmony_ci        case JSType::JS_SHARED_TYPED_ARRAY:
40774514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT8_ARRAY:
40784514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT8_ARRAY:
40794514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT8_CLAMPED_ARRAY:
40804514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT16_ARRAY:
40814514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT16_ARRAY:
40824514f5e3Sopenharmony_ci        case JSType::JS_SHARED_INT32_ARRAY:
40834514f5e3Sopenharmony_ci        case JSType::JS_SHARED_UINT32_ARRAY:
40844514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FLOAT32_ARRAY:
40854514f5e3Sopenharmony_ci        case JSType::JS_SHARED_FLOAT64_ARRAY:
40864514f5e3Sopenharmony_ci        case JSType::JS_SHARED_BIGINT64_ARRAY:
40874514f5e3Sopenharmony_ci        case JSType::JS_SHARED_BIGUINT64_ARRAY:
40884514f5e3Sopenharmony_ci            JSSharedTypedArray::Cast(obj)->DumpForSnapshot(vec);
40894514f5e3Sopenharmony_ci            break;
40904514f5e3Sopenharmony_ci        case JSType::BIGINT:
40914514f5e3Sopenharmony_ci            BigInt::Cast(obj)->DumpForSnapshot(vec);
40924514f5e3Sopenharmony_ci            break;
40934514f5e3Sopenharmony_ci        case JSType::BYTE_ARRAY:
40944514f5e3Sopenharmony_ci            ByteArray::Cast(obj)->DumpForSnapshot(vec);
40954514f5e3Sopenharmony_ci            break;
40964514f5e3Sopenharmony_ci        case JSType::JS_PROXY:
40974514f5e3Sopenharmony_ci            JSProxy::Cast(obj)->DumpForSnapshot(vec);
40984514f5e3Sopenharmony_ci            break;
40994514f5e3Sopenharmony_ci        case JSType::JS_PRIMITIVE_REF:
41004514f5e3Sopenharmony_ci            JSPrimitiveRef::Cast(obj)->DumpForSnapshot(vec);
41014514f5e3Sopenharmony_ci            break;
41024514f5e3Sopenharmony_ci        case JSType::SYMBOL:
41034514f5e3Sopenharmony_ci            JSSymbol::Cast(obj)->DumpForSnapshot(vec);
41044514f5e3Sopenharmony_ci            break;
41054514f5e3Sopenharmony_ci        case JSType::ACCESSOR_DATA:
41064514f5e3Sopenharmony_ci        case JSType::INTERNAL_ACCESSOR:
41074514f5e3Sopenharmony_ci            AccessorData::Cast(obj)->DumpForSnapshot(vec);
41084514f5e3Sopenharmony_ci            break;
41094514f5e3Sopenharmony_ci        case JSType::JS_DATA_VIEW:
41104514f5e3Sopenharmony_ci            JSDataView::Cast(obj)->DumpForSnapshot(vec);
41114514f5e3Sopenharmony_ci            break;
41124514f5e3Sopenharmony_ci        case JSType::PROMISE_REACTIONS:
41134514f5e3Sopenharmony_ci            PromiseReaction::Cast(obj)->DumpForSnapshot(vec);
41144514f5e3Sopenharmony_ci            break;
41154514f5e3Sopenharmony_ci        case JSType::PROMISE_CAPABILITY:
41164514f5e3Sopenharmony_ci            PromiseCapability::Cast(obj)->DumpForSnapshot(vec);
41174514f5e3Sopenharmony_ci            break;
41184514f5e3Sopenharmony_ci        case JSType::PROMISE_ITERATOR_RECORD:
41194514f5e3Sopenharmony_ci            PromiseIteratorRecord::Cast(obj)->DumpForSnapshot(vec);
41204514f5e3Sopenharmony_ci            break;
41214514f5e3Sopenharmony_ci        case JSType::PROMISE_RECORD:
41224514f5e3Sopenharmony_ci            PromiseRecord::Cast(obj)->DumpForSnapshot(vec);
41234514f5e3Sopenharmony_ci            break;
41244514f5e3Sopenharmony_ci        case JSType::RESOLVING_FUNCTIONS_RECORD:
41254514f5e3Sopenharmony_ci            ResolvingFunctionsRecord::Cast(obj)->DumpForSnapshot(vec);
41264514f5e3Sopenharmony_ci            break;
41274514f5e3Sopenharmony_ci        case JSType::JS_PROMISE:
41284514f5e3Sopenharmony_ci            JSPromise::Cast(obj)->DumpForSnapshot(vec);
41294514f5e3Sopenharmony_ci            break;
41304514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_REACTIONS_FUNCTION:
41314514f5e3Sopenharmony_ci            JSPromiseReactionsFunction::Cast(obj)->DumpForSnapshot(vec);
41324514f5e3Sopenharmony_ci            break;
41334514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_EXECUTOR_FUNCTION:
41344514f5e3Sopenharmony_ci            JSPromiseExecutorFunction::Cast(obj)->DumpForSnapshot(vec);
41354514f5e3Sopenharmony_ci            break;
41364514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_MODULE_FULFILLED_FUNCTION:
41374514f5e3Sopenharmony_ci            JSAsyncModuleFulfilledFunction::Cast(obj)->DumpForSnapshot(vec);
41384514f5e3Sopenharmony_ci            break;
41394514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_MODULE_REJECTED_FUNCTION:
41404514f5e3Sopenharmony_ci            JSAsyncModuleRejectedFunction::Cast(obj)->DumpForSnapshot(vec);
41414514f5e3Sopenharmony_ci            break;
41424514f5e3Sopenharmony_ci        case JSType::ASYNC_GENERATOR_REQUEST:
41434514f5e3Sopenharmony_ci            AsyncGeneratorRequest::Cast(obj)->DumpForSnapshot(vec);
41444514f5e3Sopenharmony_ci            break;
41454514f5e3Sopenharmony_ci        case JSType::ASYNC_ITERATOR_RECORD:
41464514f5e3Sopenharmony_ci            AsyncIteratorRecord::Cast(obj)->DumpForSnapshot(vec);
41474514f5e3Sopenharmony_ci            break;
41484514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FROM_SYNC_ITERATOR:
41494514f5e3Sopenharmony_ci            JSAsyncFromSyncIterator::Cast(obj)->DumpForSnapshot(vec);
41504514f5e3Sopenharmony_ci            break;
41514514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FROM_SYNC_ITER_UNWARP_FUNCTION:
41524514f5e3Sopenharmony_ci            JSAsyncFromSyncIterUnwarpFunction::Cast(obj)->DumpForSnapshot(vec);
41534514f5e3Sopenharmony_ci            break;
41544514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ALL_RESOLVE_ELEMENT_FUNCTION:
41554514f5e3Sopenharmony_ci            JSPromiseAllResolveElementFunction::Cast(obj)->DumpForSnapshot(vec);
41564514f5e3Sopenharmony_ci            break;
41574514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ANY_REJECT_ELEMENT_FUNCTION:
41584514f5e3Sopenharmony_ci            JSPromiseAnyRejectElementFunction::Cast(obj)->DumpForSnapshot(vec);
41594514f5e3Sopenharmony_ci            break;
41604514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_ALL_SETTLED_ELEMENT_FUNCTION:
41614514f5e3Sopenharmony_ci            JSPromiseAllSettledElementFunction::Cast(obj)->DumpForSnapshot(vec);
41624514f5e3Sopenharmony_ci            break;
41634514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_FINALLY_FUNCTION:
41644514f5e3Sopenharmony_ci            JSPromiseFinallyFunction::Cast(obj)->DumpForSnapshot(vec);
41654514f5e3Sopenharmony_ci            break;
41664514f5e3Sopenharmony_ci        case JSType::JS_PROMISE_VALUE_THUNK_OR_THROWER_FUNCTION:
41674514f5e3Sopenharmony_ci            JSPromiseValueThunkOrThrowerFunction::Cast(obj)->DumpForSnapshot(vec);
41684514f5e3Sopenharmony_ci            break;
41694514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_RESUME_NEXT_RETURN_PROCESSOR_RST_FTN:
41704514f5e3Sopenharmony_ci            JSAsyncGeneratorResNextRetProRstFtn::Cast(obj)->DumpForSnapshot(vec);
41714514f5e3Sopenharmony_ci            break;
41724514f5e3Sopenharmony_ci        case JSType::MICRO_JOB_QUEUE:
41734514f5e3Sopenharmony_ci            MicroJobQueue::Cast(obj)->DumpForSnapshot(vec);
41744514f5e3Sopenharmony_ci            break;
41754514f5e3Sopenharmony_ci        case JSType::PENDING_JOB:
41764514f5e3Sopenharmony_ci            PendingJob::Cast(obj)->DumpForSnapshot(vec);
41774514f5e3Sopenharmony_ci            break;
41784514f5e3Sopenharmony_ci        case JSType::COMPLETION_RECORD:
41794514f5e3Sopenharmony_ci            CompletionRecord::Cast(obj)->DumpForSnapshot(vec);
41804514f5e3Sopenharmony_ci            break;
41814514f5e3Sopenharmony_ci        case JSType::JS_ITERATOR:
41824514f5e3Sopenharmony_ci        case JSType::JS_ASYNCITERATOR:
41834514f5e3Sopenharmony_ci        case JSType::JS_FORIN_ITERATOR:
41844514f5e3Sopenharmony_ci        case JSType::JS_MAP_ITERATOR:
41854514f5e3Sopenharmony_ci        case JSType::JS_SHARED_MAP_ITERATOR:
41864514f5e3Sopenharmony_ci        case JSType::JS_SET_ITERATOR:
41874514f5e3Sopenharmony_ci        case JSType::JS_SHARED_SET_ITERATOR:
41884514f5e3Sopenharmony_ci        case JSType::JS_ARRAY_ITERATOR:
41894514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY_ITERATOR:
41904514f5e3Sopenharmony_ci        case JSType::JS_STRING_ITERATOR:
41914514f5e3Sopenharmony_ci        case JSType::JS_REG_EXP_ITERATOR:
41924514f5e3Sopenharmony_ci        case JSType::JS_ARRAY_BUFFER:
41934514f5e3Sopenharmony_ci            JSArrayBuffer::Cast(obj)->DumpForSnapshot(vec);
41944514f5e3Sopenharmony_ci            break;
41954514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ARRAY_BUFFER:
41964514f5e3Sopenharmony_ci            JSArrayBuffer::Cast(obj)->DumpForSnapshot(vec);
41974514f5e3Sopenharmony_ci            break;
41984514f5e3Sopenharmony_ci        case JSType::JS_SENDABLE_ARRAY_BUFFER:
41994514f5e3Sopenharmony_ci            JSSendableArrayBuffer::Cast(obj)->DumpForSnapshot(vec);
42004514f5e3Sopenharmony_ci            break;
42014514f5e3Sopenharmony_ci        case JSType::JS_PROXY_REVOC_FUNCTION:
42024514f5e3Sopenharmony_ci            JSProxyRevocFunction::Cast(obj)->DumpForSnapshot(vec);
42034514f5e3Sopenharmony_ci            break;
42044514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FUNCTION:
42054514f5e3Sopenharmony_ci        case JSType::JS_SHARED_ASYNC_FUNCTION:
42064514f5e3Sopenharmony_ci            JSAsyncFunction::Cast(obj)->DumpForSnapshot(vec);
42074514f5e3Sopenharmony_ci            break;
42084514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_AWAIT_STATUS_FUNCTION:
42094514f5e3Sopenharmony_ci            JSAsyncAwaitStatusFunction::Cast(obj)->DumpForSnapshot(vec);
42104514f5e3Sopenharmony_ci            break;
42114514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_FUNCTION:
42124514f5e3Sopenharmony_ci            JSGeneratorFunction::Cast(obj)->DumpForSnapshot(vec);
42134514f5e3Sopenharmony_ci            break;
42144514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_FUNCTION:
42154514f5e3Sopenharmony_ci            JSAsyncGeneratorFunction::Cast(obj)->DumpForSnapshot(vec);
42164514f5e3Sopenharmony_ci            break;
42174514f5e3Sopenharmony_ci        case JSType::JS_INTL_BOUND_FUNCTION:
42184514f5e3Sopenharmony_ci            JSIntlBoundFunction::Cast(obj)->DumpForSnapshot(vec);
42194514f5e3Sopenharmony_ci            break;
42204514f5e3Sopenharmony_ci        case JSType::JS_REALM:
42214514f5e3Sopenharmony_ci            JSRealm::Cast(obj)->DumpForSnapshot(vec);
42224514f5e3Sopenharmony_ci            break;
42234514f5e3Sopenharmony_ci#ifdef ARK_SUPPORT_INTL
42244514f5e3Sopenharmony_ci        case JSType::JS_INTL:
42254514f5e3Sopenharmony_ci            JSIntl::Cast(obj)->DumpForSnapshot(vec);
42264514f5e3Sopenharmony_ci            break;
42274514f5e3Sopenharmony_ci        case JSType::JS_LOCALE:
42284514f5e3Sopenharmony_ci            JSLocale::Cast(obj)->DumpForSnapshot(vec);
42294514f5e3Sopenharmony_ci            break;
42304514f5e3Sopenharmony_ci        case JSType::JS_DATE_TIME_FORMAT:
42314514f5e3Sopenharmony_ci            JSDateTimeFormat::Cast(obj)->DumpForSnapshot(vec);
42324514f5e3Sopenharmony_ci            break;
42334514f5e3Sopenharmony_ci        case JSType::JS_RELATIVE_TIME_FORMAT:
42344514f5e3Sopenharmony_ci            JSRelativeTimeFormat::Cast(obj)->DumpForSnapshot(vec);
42354514f5e3Sopenharmony_ci            break;
42364514f5e3Sopenharmony_ci        case JSType::JS_NUMBER_FORMAT:
42374514f5e3Sopenharmony_ci            JSNumberFormat::Cast(obj)->DumpForSnapshot(vec);
42384514f5e3Sopenharmony_ci            break;
42394514f5e3Sopenharmony_ci        case JSType::JS_COLLATOR:
42404514f5e3Sopenharmony_ci            JSCollator::Cast(obj)->DumpForSnapshot(vec);
42414514f5e3Sopenharmony_ci            break;
42424514f5e3Sopenharmony_ci        case JSType::JS_PLURAL_RULES:
42434514f5e3Sopenharmony_ci            JSPluralRules::Cast(obj)->DumpForSnapshot(vec);
42444514f5e3Sopenharmony_ci            break;
42454514f5e3Sopenharmony_ci        case JSType::JS_DISPLAYNAMES:
42464514f5e3Sopenharmony_ci            JSDisplayNames::Cast(obj)->DumpForSnapshot(vec);
42474514f5e3Sopenharmony_ci            break;
42484514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTER:
42494514f5e3Sopenharmony_ci            JSSegmenter::Cast(obj)->DumpForSnapshot(vec);
42504514f5e3Sopenharmony_ci            break;
42514514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTS:
42524514f5e3Sopenharmony_ci            JSSegments::Cast(obj)->DumpForSnapshot(vec);
42534514f5e3Sopenharmony_ci            break;
42544514f5e3Sopenharmony_ci        case JSType::JS_SEGMENT_ITERATOR:
42554514f5e3Sopenharmony_ci            JSSegmentIterator::Cast(obj)->DumpForSnapshot(vec);
42564514f5e3Sopenharmony_ci            break;
42574514f5e3Sopenharmony_ci        case JSType::JS_LIST_FORMAT:
42584514f5e3Sopenharmony_ci            JSListFormat::Cast(obj)->DumpForSnapshot(vec);
42594514f5e3Sopenharmony_ci            break;
42604514f5e3Sopenharmony_ci#else
42614514f5e3Sopenharmony_ci        case JSType::JS_INTL:
42624514f5e3Sopenharmony_ci        case JSType::JS_LOCALE:
42634514f5e3Sopenharmony_ci        case JSType::JS_DATE_TIME_FORMAT:
42644514f5e3Sopenharmony_ci        case JSType::JS_RELATIVE_TIME_FORMAT:
42654514f5e3Sopenharmony_ci        case JSType::JS_NUMBER_FORMAT:
42664514f5e3Sopenharmony_ci        case JSType::JS_COLLATOR:
42674514f5e3Sopenharmony_ci        case JSType::JS_PLURAL_RULES:
42684514f5e3Sopenharmony_ci        case JSType::JS_DISPLAYNAMES:
42694514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTER:
42704514f5e3Sopenharmony_ci        case JSType::JS_SEGMENTS:
42714514f5e3Sopenharmony_ci        case JSType::JS_SEGMENT_ITERATOR:
42724514f5e3Sopenharmony_ci        case JSType::JS_LIST_FORMAT:
42734514f5e3Sopenharmony_ci            break;
42744514f5e3Sopenharmony_ci#endif
42754514f5e3Sopenharmony_ci        case JSType::JS_CJS_MODULE:
42764514f5e3Sopenharmony_ci            CjsModule::Cast(obj)->DumpForSnapshot(vec);
42774514f5e3Sopenharmony_ci            break;
42784514f5e3Sopenharmony_ci        case JSType::JS_CJS_EXPORTS:
42794514f5e3Sopenharmony_ci            CjsExports::Cast(obj)->DumpForSnapshot(vec);
42804514f5e3Sopenharmony_ci            break;
42814514f5e3Sopenharmony_ci        case JSType::JS_CJS_REQUIRE:
42824514f5e3Sopenharmony_ci            CjsRequire::Cast(obj)->DumpForSnapshot(vec);
42834514f5e3Sopenharmony_ci            break;
42844514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_OBJECT:
42854514f5e3Sopenharmony_ci            JSGeneratorObject::Cast(obj)->DumpForSnapshot(vec);
42864514f5e3Sopenharmony_ci            break;
42874514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_GENERATOR_OBJECT:
42884514f5e3Sopenharmony_ci            JSAsyncGeneratorObject::Cast(obj)->DumpForSnapshot(vec);
42894514f5e3Sopenharmony_ci            break;
42904514f5e3Sopenharmony_ci        case JSType::JS_ASYNC_FUNC_OBJECT:
42914514f5e3Sopenharmony_ci            JSAsyncFuncObject::Cast(obj)->DumpForSnapshot(vec);
42924514f5e3Sopenharmony_ci            break;
42934514f5e3Sopenharmony_ci        case JSType::JS_GENERATOR_CONTEXT:
42944514f5e3Sopenharmony_ci            GeneratorContext::Cast(obj)->DumpForSnapshot(vec);
42954514f5e3Sopenharmony_ci            break;
42964514f5e3Sopenharmony_ci        case JSType::JS_API_ARRAY_LIST:
42974514f5e3Sopenharmony_ci            JSAPIArrayList::Cast(obj)->DumpForSnapshot(vec);
42984514f5e3Sopenharmony_ci            break;
42994514f5e3Sopenharmony_ci        case JSType::JS_API_ARRAYLIST_ITERATOR:
43004514f5e3Sopenharmony_ci            JSAPIArrayListIterator::Cast(obj)->DumpForSnapshot(vec);
43014514f5e3Sopenharmony_ci            break;
43024514f5e3Sopenharmony_ci        case JSType::LINKED_NODE:
43034514f5e3Sopenharmony_ci            LinkedNode::Cast(obj)->DumpForSnapshot(vec);
43044514f5e3Sopenharmony_ci            break;
43054514f5e3Sopenharmony_ci        case JSType::RB_TREENODE:
43064514f5e3Sopenharmony_ci            break;
43074514f5e3Sopenharmony_ci        case JSType::JS_API_HASH_MAP:
43084514f5e3Sopenharmony_ci            JSAPIHashMap::Cast(obj)->DumpForSnapshot(vec);
43094514f5e3Sopenharmony_ci            break;
43104514f5e3Sopenharmony_ci        case JSType::JS_API_HASH_SET:
43114514f5e3Sopenharmony_ci            JSAPIHashSet::Cast(obj)->DumpForSnapshot(vec);
43124514f5e3Sopenharmony_ci            break;
43134514f5e3Sopenharmony_ci        case JSType::JS_API_HASHMAP_ITERATOR:
43144514f5e3Sopenharmony_ci            JSAPIHashMapIterator::Cast(obj)->DumpForSnapshot(vec);
43154514f5e3Sopenharmony_ci            break;
43164514f5e3Sopenharmony_ci        case JSType::JS_API_HASHSET_ITERATOR:
43174514f5e3Sopenharmony_ci            JSAPIHashSetIterator::Cast(obj)->DumpForSnapshot(vec);
43184514f5e3Sopenharmony_ci            break;
43194514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_MAP:
43204514f5e3Sopenharmony_ci            JSAPILightWeightMap::Cast(obj)->DumpForSnapshot(vec);
43214514f5e3Sopenharmony_ci            break;
43224514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_MAP_ITERATOR:
43234514f5e3Sopenharmony_ci            JSAPILightWeightMapIterator::Cast(obj)->DumpForSnapshot(vec);
43244514f5e3Sopenharmony_ci            break;
43254514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_SET:
43264514f5e3Sopenharmony_ci            JSAPILightWeightSet::Cast(obj)->DumpForSnapshot(vec);
43274514f5e3Sopenharmony_ci            break;
43284514f5e3Sopenharmony_ci        case JSType::JS_API_LIGHT_WEIGHT_SET_ITERATOR:
43294514f5e3Sopenharmony_ci            JSAPILightWeightSetIterator::Cast(obj)->DumpForSnapshot(vec);
43304514f5e3Sopenharmony_ci            break;
43314514f5e3Sopenharmony_ci        case JSType::JS_API_TREE_MAP:
43324514f5e3Sopenharmony_ci            JSAPITreeMap::Cast(obj)->DumpForSnapshot(vec);
43334514f5e3Sopenharmony_ci            break;
43344514f5e3Sopenharmony_ci        case JSType::JS_API_TREE_SET:
43354514f5e3Sopenharmony_ci            JSAPITreeSet::Cast(obj)->DumpForSnapshot(vec);
43364514f5e3Sopenharmony_ci            break;
43374514f5e3Sopenharmony_ci        case JSType::JS_API_TREEMAP_ITERATOR:
43384514f5e3Sopenharmony_ci            JSAPITreeMapIterator::Cast(obj)->DumpForSnapshot(vec);
43394514f5e3Sopenharmony_ci            break;
43404514f5e3Sopenharmony_ci        case JSType::JS_API_TREESET_ITERATOR:
43414514f5e3Sopenharmony_ci            JSAPITreeSetIterator::Cast(obj)->DumpForSnapshot(vec);
43424514f5e3Sopenharmony_ci            break;
43434514f5e3Sopenharmony_ci        case JSType::JS_API_VECTOR:
43444514f5e3Sopenharmony_ci            JSAPIVector::Cast(obj)->DumpForSnapshot(vec);
43454514f5e3Sopenharmony_ci            break;
43464514f5e3Sopenharmony_ci        case JSType::JS_API_VECTOR_ITERATOR:
43474514f5e3Sopenharmony_ci            JSAPIVectorIterator::Cast(obj)->DumpForSnapshot(vec);
43484514f5e3Sopenharmony_ci            break;
43494514f5e3Sopenharmony_ci        case JSType::JS_API_BITVECTOR:
43504514f5e3Sopenharmony_ci            JSAPIBitVector::Cast(obj)->DumpForSnapshot(vec);
43514514f5e3Sopenharmony_ci            break;
43524514f5e3Sopenharmony_ci        case JSType::JS_API_BITVECTOR_ITERATOR:
43534514f5e3Sopenharmony_ci            JSAPIBitVectorIterator::Cast(obj)->DumpForSnapshot(vec);
43544514f5e3Sopenharmony_ci            break;
43554514f5e3Sopenharmony_ci        case JSType::JS_API_QUEUE:
43564514f5e3Sopenharmony_ci            JSAPIQueue::Cast(obj)->DumpForSnapshot(vec);
43574514f5e3Sopenharmony_ci            break;
43584514f5e3Sopenharmony_ci        case JSType::JS_API_QUEUE_ITERATOR:
43594514f5e3Sopenharmony_ci            JSAPIQueueIterator::Cast(obj)->DumpForSnapshot(vec);
43604514f5e3Sopenharmony_ci            break;
43614514f5e3Sopenharmony_ci        case JSType::JS_API_DEQUE:
43624514f5e3Sopenharmony_ci            JSAPIDeque::Cast(obj)->DumpForSnapshot(vec);
43634514f5e3Sopenharmony_ci            break;
43644514f5e3Sopenharmony_ci        case JSType::JS_API_DEQUE_ITERATOR:
43654514f5e3Sopenharmony_ci            JSAPIDequeIterator::Cast(obj)->DumpForSnapshot(vec);
43664514f5e3Sopenharmony_ci            break;
43674514f5e3Sopenharmony_ci        case JSType::JS_API_STACK:
43684514f5e3Sopenharmony_ci            JSAPIStack::Cast(obj)->DumpForSnapshot(vec);
43694514f5e3Sopenharmony_ci            break;
43704514f5e3Sopenharmony_ci        case JSType::JS_API_STACK_ITERATOR:
43714514f5e3Sopenharmony_ci            JSAPIStackIterator::Cast(obj)->DumpForSnapshot(vec);
43724514f5e3Sopenharmony_ci            break;
43734514f5e3Sopenharmony_ci        case JSType::JS_API_LIST:
43744514f5e3Sopenharmony_ci            JSAPIList::Cast(obj)->DumpForSnapshot(vec);
43754514f5e3Sopenharmony_ci            break;
43764514f5e3Sopenharmony_ci        case JSType::JS_API_LINKED_LIST:
43774514f5e3Sopenharmony_ci            JSAPILinkedList::Cast(obj)->DumpForSnapshot(vec);
43784514f5e3Sopenharmony_ci            break;
43794514f5e3Sopenharmony_ci        case JSType::JS_API_LIST_ITERATOR:
43804514f5e3Sopenharmony_ci            JSAPIListIterator::Cast(obj)->DumpForSnapshot(vec);
43814514f5e3Sopenharmony_ci            break;
43824514f5e3Sopenharmony_ci        case JSType::JS_API_LINKED_LIST_ITERATOR:
43834514f5e3Sopenharmony_ci            JSAPILinkedListIterator::Cast(obj)->DumpForSnapshot(vec);
43844514f5e3Sopenharmony_ci            break;
43854514f5e3Sopenharmony_ci        case JSType::SOURCE_TEXT_MODULE_RECORD:
43864514f5e3Sopenharmony_ci            SourceTextModule::Cast(obj)->DumpForSnapshot(vec);
43874514f5e3Sopenharmony_ci            break;
43884514f5e3Sopenharmony_ci        case JSType::IMPORTENTRY_RECORD:
43894514f5e3Sopenharmony_ci            ImportEntry::Cast(obj)->DumpForSnapshot(vec);
43904514f5e3Sopenharmony_ci            break;
43914514f5e3Sopenharmony_ci        case JSType::LOCAL_EXPORTENTRY_RECORD:
43924514f5e3Sopenharmony_ci            LocalExportEntry::Cast(obj)->DumpForSnapshot(vec);
43934514f5e3Sopenharmony_ci            break;
43944514f5e3Sopenharmony_ci        case JSType::INDIRECT_EXPORTENTRY_RECORD:
43954514f5e3Sopenharmony_ci            IndirectExportEntry::Cast(obj)->DumpForSnapshot(vec);
43964514f5e3Sopenharmony_ci            break;
43974514f5e3Sopenharmony_ci        case JSType::STAR_EXPORTENTRY_RECORD:
43984514f5e3Sopenharmony_ci            StarExportEntry::Cast(obj)->DumpForSnapshot(vec);
43994514f5e3Sopenharmony_ci            break;
44004514f5e3Sopenharmony_ci        case JSType::RESOLVEDBINDING_RECORD:
44014514f5e3Sopenharmony_ci            ResolvedBinding::Cast(obj)->DumpForSnapshot(vec);
44024514f5e3Sopenharmony_ci            break;
44034514f5e3Sopenharmony_ci        case JSType::RESOLVEDINDEXBINDING_RECORD:
44044514f5e3Sopenharmony_ci            ResolvedIndexBinding::Cast(obj)->DumpForSnapshot(vec);
44054514f5e3Sopenharmony_ci            break;
44064514f5e3Sopenharmony_ci        case JSType::RESOLVEDRECORDINDEXBINDING_RECORD:
44074514f5e3Sopenharmony_ci            ResolvedRecordIndexBinding::Cast(obj)->DumpForSnapshot(vec);
44084514f5e3Sopenharmony_ci            break;
44094514f5e3Sopenharmony_ci        case JSType::RESOLVEDRECORDBINDING_RECORD:
44104514f5e3Sopenharmony_ci            ResolvedRecordBinding::Cast(obj)->DumpForSnapshot(vec);
44114514f5e3Sopenharmony_ci            break;
44124514f5e3Sopenharmony_ci        case JSType::JS_MODULE_NAMESPACE:
44134514f5e3Sopenharmony_ci            ModuleNamespace::Cast(obj)->DumpForSnapshot(vec);
44144514f5e3Sopenharmony_ci            break;
44154514f5e3Sopenharmony_ci        case JSType::NATIVE_MODULE_FAILURE_INFO:
44164514f5e3Sopenharmony_ci            NativeModuleFailureInfo::Cast(obj)->DumpForSnapshot(vec);
44174514f5e3Sopenharmony_ci            break;
44184514f5e3Sopenharmony_ci        case JSType::JS_API_PLAIN_ARRAY:
44194514f5e3Sopenharmony_ci            JSAPIPlainArray::Cast(obj)->DumpForSnapshot(vec);
44204514f5e3Sopenharmony_ci            break;
44214514f5e3Sopenharmony_ci        case JSType::JS_API_PLAIN_ARRAY_ITERATOR:
44224514f5e3Sopenharmony_ci            JSAPIPlainArrayIterator::Cast(obj)->DumpForSnapshot(vec);
44234514f5e3Sopenharmony_ci            break;
44244514f5e3Sopenharmony_ci        default:
44254514f5e3Sopenharmony_ci            break;
44264514f5e3Sopenharmony_ci    }
44274514f5e3Sopenharmony_ci    if (isVmMode) {
44284514f5e3Sopenharmony_ci        switch (type) {
44294514f5e3Sopenharmony_ci            case JSType::PROPERTY_BOX:
44304514f5e3Sopenharmony_ci                PropertyBox::Cast(obj)->DumpForSnapshot(vec);
44314514f5e3Sopenharmony_ci                break;
44324514f5e3Sopenharmony_ci            case JSType::TEMPLATE_MAP:
44334514f5e3Sopenharmony_ci                DumpArrayClass(TaggedArray::Cast(obj), vec);
44344514f5e3Sopenharmony_ci                break;
44354514f5e3Sopenharmony_ci            case JSType::GLOBAL_ENV:
44364514f5e3Sopenharmony_ci                GlobalEnv::Cast(obj)->DumpForSnapshot(vec);
44374514f5e3Sopenharmony_ci                break;
44384514f5e3Sopenharmony_ci            case JSType::PROTO_CHANGE_MARKER:
44394514f5e3Sopenharmony_ci                ProtoChangeMarker::Cast(obj)->DumpForSnapshot(vec);
44404514f5e3Sopenharmony_ci                break;
44414514f5e3Sopenharmony_ci            case JSType::MARKER_CELL:
44424514f5e3Sopenharmony_ci                MarkerCell::Cast(obj)->DumpForSnapshot(vec);
44434514f5e3Sopenharmony_ci                break;
44444514f5e3Sopenharmony_ci            case JSType::PROTOTYPE_INFO:
44454514f5e3Sopenharmony_ci                ProtoChangeDetails::Cast(obj)->DumpForSnapshot(vec);
44464514f5e3Sopenharmony_ci                break;
44474514f5e3Sopenharmony_ci            case JSType::TRACK_INFO:
44484514f5e3Sopenharmony_ci                TrackInfo::Cast(obj)->DumpForSnapshot(vec);
44494514f5e3Sopenharmony_ci                break;
44504514f5e3Sopenharmony_ci            case JSType::PROGRAM:
44514514f5e3Sopenharmony_ci                Program::Cast(obj)->DumpForSnapshot(vec);
44524514f5e3Sopenharmony_ci                break;
44534514f5e3Sopenharmony_ci            case JSType::MACHINE_CODE_OBJECT:
44544514f5e3Sopenharmony_ci                MachineCode::Cast(obj)->DumpForSnapshot(vec);
44554514f5e3Sopenharmony_ci                break;
44564514f5e3Sopenharmony_ci            case JSType::TRANSITION_HANDLER:
44574514f5e3Sopenharmony_ci                TransitionHandler::Cast(obj)->DumpForSnapshot(vec);
44584514f5e3Sopenharmony_ci                break;
44594514f5e3Sopenharmony_ci            case JSType::TRANS_WITH_PROTO_HANDLER:
44604514f5e3Sopenharmony_ci                TransWithProtoHandler::Cast(obj)->DumpForSnapshot(vec);
44614514f5e3Sopenharmony_ci                break;
44624514f5e3Sopenharmony_ci            case JSType::STORE_TS_HANDLER:
44634514f5e3Sopenharmony_ci                StoreTSHandler::Cast(obj)->DumpForSnapshot(vec);
44644514f5e3Sopenharmony_ci                break;
44654514f5e3Sopenharmony_ci            case JSType::PROTOTYPE_HANDLER:
44664514f5e3Sopenharmony_ci                PrototypeHandler::Cast(obj)->DumpForSnapshot(vec);
44674514f5e3Sopenharmony_ci                break;
44684514f5e3Sopenharmony_ci            case JSType::CLASS_INFO_EXTRACTOR:
44694514f5e3Sopenharmony_ci                ClassInfoExtractor::Cast(obj)->DumpForSnapshot(vec);
44704514f5e3Sopenharmony_ci                break;
44714514f5e3Sopenharmony_ci            case JSType::METHOD:
44724514f5e3Sopenharmony_ci                Method::Cast(obj)->DumpForSnapshot(vec);
44734514f5e3Sopenharmony_ci                break;
44744514f5e3Sopenharmony_ci            case JSType::CLASS_LITERAL:
44754514f5e3Sopenharmony_ci                ClassLiteral::Cast(obj)->DumpForSnapshot(vec);
44764514f5e3Sopenharmony_ci                break;
44774514f5e3Sopenharmony_ci            default:
44784514f5e3Sopenharmony_ci                break;
44794514f5e3Sopenharmony_ci        }
44804514f5e3Sopenharmony_ci    } else {
44814514f5e3Sopenharmony_ci        vec.pop_back();
44824514f5e3Sopenharmony_ci    }
44834514f5e3Sopenharmony_ci    AddAnonymousEdge(obj, vec);
44844514f5e3Sopenharmony_ci}
44854514f5e3Sopenharmony_ci
44864514f5e3Sopenharmony_cistatic inline void EcmaStringToStd(CString &res, EcmaString *str)
44874514f5e3Sopenharmony_ci{
44884514f5e3Sopenharmony_ci    if (EcmaStringAccessor(str).GetLength() == 0) {
44894514f5e3Sopenharmony_ci        CString emptyStr = "EmptyString";
44904514f5e3Sopenharmony_ci        res.append(emptyStr);
44914514f5e3Sopenharmony_ci    }
44924514f5e3Sopenharmony_ci
44934514f5e3Sopenharmony_ci    CString string = ConvertToString(str);
44944514f5e3Sopenharmony_ci    res.append(string);
44954514f5e3Sopenharmony_ci}
44964514f5e3Sopenharmony_ci
44974514f5e3Sopenharmony_cistatic void KeyToStd(CString &res, JSTaggedValue key)
44984514f5e3Sopenharmony_ci{
44994514f5e3Sopenharmony_ci    if (key.IsInt()) {
45004514f5e3Sopenharmony_ci        res = std::to_string(key.GetInt());
45014514f5e3Sopenharmony_ci    } else if (key.IsDouble()) {
45024514f5e3Sopenharmony_ci        res = std::to_string(key.GetDouble());
45034514f5e3Sopenharmony_ci    } else if (key.IsBoolean()) {
45044514f5e3Sopenharmony_ci        res = key.IsTrue() ? "true" : "false";
45054514f5e3Sopenharmony_ci    } else if (key.IsHeapObject()) {
45064514f5e3Sopenharmony_ci        if (key.IsWeak()) {
45074514f5e3Sopenharmony_ci            key.RemoveWeakTag();
45084514f5e3Sopenharmony_ci        }
45094514f5e3Sopenharmony_ci        if (key.IsString()) {
45104514f5e3Sopenharmony_ci            EcmaStringToStd(res, EcmaString::Cast(key.GetTaggedObject()));
45114514f5e3Sopenharmony_ci        } else if (key.IsSymbol()) {
45124514f5e3Sopenharmony_ci            JSSymbol *sym = JSSymbol::Cast(key.GetTaggedObject());
45134514f5e3Sopenharmony_ci            JSTaggedValue desc = sym->GetDescription();
45144514f5e3Sopenharmony_ci            if (desc.IsString()) {
45154514f5e3Sopenharmony_ci                EcmaStringToStd(res, EcmaString::Cast(desc.GetTaggedObject()));
45164514f5e3Sopenharmony_ci            }
45174514f5e3Sopenharmony_ci        }
45184514f5e3Sopenharmony_ci    }
45194514f5e3Sopenharmony_ci}
45204514f5e3Sopenharmony_ci
45214514f5e3Sopenharmony_civoid JSAPIPlainArray::DumpForSnapshot(std::vector<Reference> &vec) const
45224514f5e3Sopenharmony_ci{
45234514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
45244514f5e3Sopenharmony_ci    TaggedArray *keys = TaggedArray::Cast(GetKeys().GetTaggedObject());
45254514f5e3Sopenharmony_ci    TaggedArray *values = TaggedArray::Cast(GetValues().GetTaggedObject());
45264514f5e3Sopenharmony_ci    uint32_t len = static_cast<uint32_t>(GetLength());
45274514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
45284514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
45294514f5e3Sopenharmony_ci        CString str;
45304514f5e3Sopenharmony_ci        KeyToStd(str, keys->Get(i));
45314514f5e3Sopenharmony_ci        vec.emplace_back(str, values->Get(i));
45324514f5e3Sopenharmony_ci    }
45334514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
45344514f5e3Sopenharmony_ci}
45354514f5e3Sopenharmony_ci
45364514f5e3Sopenharmony_civoid JSTaggedValue::DumpForSnapshot(std::vector<Reference> &vec, bool isVmMode) const
45374514f5e3Sopenharmony_ci{
45384514f5e3Sopenharmony_ci    if (IsHeapObject()) {
45394514f5e3Sopenharmony_ci        return DumpObject(GetTaggedObject(), vec, isVmMode);
45404514f5e3Sopenharmony_ci    }
45414514f5e3Sopenharmony_ci    LOG_ECMA(FATAL) << "this branch is unreachable";
45424514f5e3Sopenharmony_ci    UNREACHABLE();
45434514f5e3Sopenharmony_ci}
45444514f5e3Sopenharmony_ci
45454514f5e3Sopenharmony_civoid NumberDictionary::DumpForSnapshot(std::vector<Reference> &vec) const
45464514f5e3Sopenharmony_ci{
45474514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
45484514f5e3Sopenharmony_ci    int size = Size();
45494514f5e3Sopenharmony_ci    vec.reserve(vec.size() + size);
45504514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
45514514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
45524514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
45534514f5e3Sopenharmony_ci            JSTaggedValue val(GetValue(hashIndex));
45544514f5e3Sopenharmony_ci            vec.emplace_back(
45554514f5e3Sopenharmony_ci                static_cast<uint32_t>(JSTaggedNumber(key).GetNumber()), val, Reference::ReferenceType::ELEMENT);
45564514f5e3Sopenharmony_ci        }
45574514f5e3Sopenharmony_ci    }
45584514f5e3Sopenharmony_ci}
45594514f5e3Sopenharmony_ci
45604514f5e3Sopenharmony_civoid NameDictionary::DumpForSnapshot(std::vector<Reference> &vec) const
45614514f5e3Sopenharmony_ci{
45624514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
45634514f5e3Sopenharmony_ci    int size = Size();
45644514f5e3Sopenharmony_ci    vec.reserve(vec.size() + size);
45654514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
45664514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
45674514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
45684514f5e3Sopenharmony_ci            JSTaggedValue val(GetValue(hashIndex));
45694514f5e3Sopenharmony_ci            CString str;
45704514f5e3Sopenharmony_ci            KeyToStd(str, key);
45714514f5e3Sopenharmony_ci            vec.emplace_back(str, val);
45724514f5e3Sopenharmony_ci        }
45734514f5e3Sopenharmony_ci    }
45744514f5e3Sopenharmony_ci}
45754514f5e3Sopenharmony_ci
45764514f5e3Sopenharmony_civoid GlobalDictionary::DumpForSnapshot(std::vector<Reference> &vec) const
45774514f5e3Sopenharmony_ci{
45784514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
45794514f5e3Sopenharmony_ci    int size = Size();
45804514f5e3Sopenharmony_ci    vec.reserve(vec.size() + size);
45814514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < size; hashIndex++) {
45824514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
45834514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
45844514f5e3Sopenharmony_ci            CString str;
45854514f5e3Sopenharmony_ci            KeyToStd(str, key);
45864514f5e3Sopenharmony_ci            JSTaggedValue val = GetValue(hashIndex);
45874514f5e3Sopenharmony_ci            vec.emplace_back(str, val);
45884514f5e3Sopenharmony_ci        }
45894514f5e3Sopenharmony_ci    }
45904514f5e3Sopenharmony_ci}
45914514f5e3Sopenharmony_ci
45924514f5e3Sopenharmony_civoid LinkedHashSet::DumpForSnapshot(std::vector<Reference> &vec) const
45934514f5e3Sopenharmony_ci{
45944514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
45954514f5e3Sopenharmony_ci    int capacity = NumberOfElements() + NumberOfDeletedElements();
45964514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
45974514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < capacity; hashIndex++) {
45984514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
45994514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
46004514f5e3Sopenharmony_ci            CString str;
46014514f5e3Sopenharmony_ci            KeyToStd(str, key);
46024514f5e3Sopenharmony_ci            vec.emplace_back(str, JSTaggedValue::Hole());
46034514f5e3Sopenharmony_ci        }
46044514f5e3Sopenharmony_ci    }
46054514f5e3Sopenharmony_ci}
46064514f5e3Sopenharmony_ci
46074514f5e3Sopenharmony_civoid LinkedHashMap::DumpForSnapshot(std::vector<Reference> &vec) const
46084514f5e3Sopenharmony_ci{
46094514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
46104514f5e3Sopenharmony_ci    int capacity = NumberOfElements() + NumberOfDeletedElements();
46114514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
46124514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < capacity; hashIndex++) {
46134514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(hashIndex));
46144514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
46154514f5e3Sopenharmony_ci            JSTaggedValue val = GetValue(hashIndex);
46164514f5e3Sopenharmony_ci            CString str;
46174514f5e3Sopenharmony_ci            KeyToStd(str, key);
46184514f5e3Sopenharmony_ci            vec.emplace_back(str, val);
46194514f5e3Sopenharmony_ci        }
46204514f5e3Sopenharmony_ci    }
46214514f5e3Sopenharmony_ci}
46224514f5e3Sopenharmony_ci
46234514f5e3Sopenharmony_civoid TaggedHashArray::Dump(std::ostream &os) const
46244514f5e3Sopenharmony_ci{
46254514f5e3Sopenharmony_ci    DumpArrayClass(this, os);
46264514f5e3Sopenharmony_ci}
46274514f5e3Sopenharmony_ci
46284514f5e3Sopenharmony_civoid TaggedHashArray::DumpForSnapshot(std::vector<Reference> &vec) const
46294514f5e3Sopenharmony_ci{
46304514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
46314514f5e3Sopenharmony_ci    int capacity = static_cast<int>(GetLength());
46324514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
46334514f5e3Sopenharmony_ci    for (int hashIndex = 0; hashIndex < capacity; hashIndex++) {
46344514f5e3Sopenharmony_ci        JSTaggedValue value = Get(hashIndex);
46354514f5e3Sopenharmony_ci        if (!value.IsUndefined() && !value.IsHole() && !value.IsNull()) {
46364514f5e3Sopenharmony_ci            LinkedNode *node = LinkedNode::Cast(value.GetTaggedObject());
46374514f5e3Sopenharmony_ci            node->DumpForSnapshot(vec);
46384514f5e3Sopenharmony_ci        }
46394514f5e3Sopenharmony_ci    }
46404514f5e3Sopenharmony_ci}
46414514f5e3Sopenharmony_ci
46424514f5e3Sopenharmony_citemplate <typename T>
46434514f5e3Sopenharmony_civoid DumpForSnapshotTaggedTreeEntry(T tree, int index, std::vector<Reference> &vec, bool isMap = false)
46444514f5e3Sopenharmony_ci{
46454514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
46464514f5e3Sopenharmony_ci    if (isMap) {
46474514f5e3Sopenharmony_ci        vec.emplace_back("key", JSTaggedValue(tree->GetKey(index)));
46484514f5e3Sopenharmony_ci    }
46494514f5e3Sopenharmony_ci    vec.emplace_back("value", JSTaggedValue(tree->GetValue(index)));
46504514f5e3Sopenharmony_ci    vec.emplace_back("parent", JSTaggedValue(tree->GetParent(index)));
46514514f5e3Sopenharmony_ci    vec.emplace_back("color", JSTaggedValue(static_cast<int>(tree->GetColor(index))));
46524514f5e3Sopenharmony_ci    vec.emplace_back("left", tree->GetLeftChild(index));
46534514f5e3Sopenharmony_ci    vec.emplace_back("right", tree->GetRightChild(index));
46544514f5e3Sopenharmony_ci}
46554514f5e3Sopenharmony_ci
46564514f5e3Sopenharmony_civoid TaggedTreeMap::DumpForSnapshot(std::vector<Reference> &vec) const
46574514f5e3Sopenharmony_ci{
46584514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
46594514f5e3Sopenharmony_ci    vec.emplace_back("Elements", TaggedArray::Get(NUMBER_OF_ELEMENTS_INDEX));
46604514f5e3Sopenharmony_ci    vec.emplace_back("Delete", TaggedArray::Get(NUMBER_OF_HOLE_ENTRIES_INDEX));
46614514f5e3Sopenharmony_ci    vec.emplace_back("Capacity", TaggedArray::Get(CAPACITY_INDEX));
46624514f5e3Sopenharmony_ci    vec.emplace_back("RootNode", TaggedArray::Get(ROOT_INDEX));
46634514f5e3Sopenharmony_ci    vec.emplace_back("CompareFunction", TaggedArray::Get(COMPARE_FUNCTION_INDEX));
46644514f5e3Sopenharmony_ci    uint32_t capacity = NumberOfElements() + NumberOfDeletedElements();
46654514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
46664514f5e3Sopenharmony_ci    for (uint32_t index = 0; index < capacity; index++) {
46674514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(index));
46684514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
46694514f5e3Sopenharmony_ci            JSTaggedValue val = GetValue(index);
46704514f5e3Sopenharmony_ci            CString str;
46714514f5e3Sopenharmony_ci            KeyToStd(str, key);
46724514f5e3Sopenharmony_ci            vec.emplace_back(str, val);
46734514f5e3Sopenharmony_ci        } else {
46744514f5e3Sopenharmony_ci            DumpForSnapshotTaggedTreeEntry(const_cast<TaggedTreeMap *>(this), index, vec, true);
46754514f5e3Sopenharmony_ci        }
46764514f5e3Sopenharmony_ci    }
46774514f5e3Sopenharmony_ci}
46784514f5e3Sopenharmony_ci
46794514f5e3Sopenharmony_civoid TaggedTreeSet::DumpForSnapshot(std::vector<Reference> &vec) const
46804514f5e3Sopenharmony_ci{
46814514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
46824514f5e3Sopenharmony_ci    vec.emplace_back("Elements", TaggedArray::Get(NUMBER_OF_ELEMENTS_INDEX));
46834514f5e3Sopenharmony_ci    vec.emplace_back("Delete", TaggedArray::Get(NUMBER_OF_HOLE_ENTRIES_INDEX));
46844514f5e3Sopenharmony_ci    vec.emplace_back("Capacity", TaggedArray::Get(CAPACITY_INDEX));
46854514f5e3Sopenharmony_ci    vec.emplace_back("RootNode", TaggedArray::Get(ROOT_INDEX));
46864514f5e3Sopenharmony_ci    vec.emplace_back("CompareFunction", TaggedArray::Get(COMPARE_FUNCTION_INDEX));
46874514f5e3Sopenharmony_ci    uint32_t capacity = NumberOfElements() + NumberOfDeletedElements();
46884514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
46894514f5e3Sopenharmony_ci    for (uint32_t index = 0; index < capacity; index++) {
46904514f5e3Sopenharmony_ci        JSTaggedValue key(GetKey(index));
46914514f5e3Sopenharmony_ci        if (!key.IsUndefined() && !key.IsHole() && !key.IsNull()) {
46924514f5e3Sopenharmony_ci            CString str;
46934514f5e3Sopenharmony_ci            KeyToStd(str, key);
46944514f5e3Sopenharmony_ci            vec.emplace_back(str, JSTaggedValue::Hole());
46954514f5e3Sopenharmony_ci        } else {
46964514f5e3Sopenharmony_ci            DumpForSnapshotTaggedTreeEntry(const_cast<TaggedTreeSet *>(this), index, vec, true);
46974514f5e3Sopenharmony_ci        }
46984514f5e3Sopenharmony_ci    }
46994514f5e3Sopenharmony_ci}
47004514f5e3Sopenharmony_ci
47014514f5e3Sopenharmony_civoid TaggedDoubleList::DumpForSnapshot(std::vector<Reference> &vec) const
47024514f5e3Sopenharmony_ci{
47034514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
47044514f5e3Sopenharmony_ci    int capacity = NumberOfNodes();
47054514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
47064514f5e3Sopenharmony_ci    for (int index = 0; index < capacity; index++) {
47074514f5e3Sopenharmony_ci        JSTaggedValue val = GetElement(index);
47084514f5e3Sopenharmony_ci        CString str;
47094514f5e3Sopenharmony_ci        KeyToStd(str, JSTaggedValue(index));
47104514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
47114514f5e3Sopenharmony_ci    }
47124514f5e3Sopenharmony_ci}
47134514f5e3Sopenharmony_ci
47144514f5e3Sopenharmony_civoid TaggedSingleList::DumpForSnapshot(std::vector<Reference> &vec) const
47154514f5e3Sopenharmony_ci{
47164514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
47174514f5e3Sopenharmony_ci    int capacity = NumberOfNodes();
47184514f5e3Sopenharmony_ci    vec.reserve(vec.size() + capacity);
47194514f5e3Sopenharmony_ci    for (int index = 0; index < capacity; index++) {
47204514f5e3Sopenharmony_ci        JSTaggedValue val = GetElement(index);
47214514f5e3Sopenharmony_ci        CString str;
47224514f5e3Sopenharmony_ci        KeyToStd(str, JSTaggedValue(index));
47234514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
47244514f5e3Sopenharmony_ci    }
47254514f5e3Sopenharmony_ci}
47264514f5e3Sopenharmony_ci
47274514f5e3Sopenharmony_civoid JSObject::DumpForSnapshot(std::vector<Reference> &vec) const
47284514f5e3Sopenharmony_ci{
47294514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
47304514f5e3Sopenharmony_ci    JSHClass *jshclass = GetJSHClass();
47314514f5e3Sopenharmony_ci    if (jshclass != nullptr) {
47324514f5e3Sopenharmony_ci        vec.emplace_back(CString("__proto__"), jshclass->GetPrototype());
47334514f5e3Sopenharmony_ci    }
47344514f5e3Sopenharmony_ci    vec.emplace_back(CString("ArkInternalHash"), JSTaggedValue(GetHash()));
47354514f5e3Sopenharmony_ci
47364514f5e3Sopenharmony_ci    TaggedArray *elements = TaggedArray::Cast(GetElements().GetTaggedObject());
47374514f5e3Sopenharmony_ci    vec.emplace_back("(object elements)", JSTaggedValue(elements));
47384514f5e3Sopenharmony_ci    if (elements->GetLength() == 0) {
47394514f5e3Sopenharmony_ci    } else if (!elements->IsDictionaryMode()) {
47404514f5e3Sopenharmony_ci        DumpElementClass(elements, vec);
47414514f5e3Sopenharmony_ci    } else {
47424514f5e3Sopenharmony_ci        NumberDictionary *dict = NumberDictionary::Cast(elements);
47434514f5e3Sopenharmony_ci        dict->DumpForSnapshot(vec);
47444514f5e3Sopenharmony_ci    }
47454514f5e3Sopenharmony_ci
47464514f5e3Sopenharmony_ci    TaggedArray *properties = TaggedArray::Cast(GetProperties().GetTaggedObject());
47474514f5e3Sopenharmony_ci    if (IsJSGlobalObject()) {
47484514f5e3Sopenharmony_ci        GlobalDictionary *dict = GlobalDictionary::Cast(properties);
47494514f5e3Sopenharmony_ci        dict->DumpForSnapshot(vec);
47504514f5e3Sopenharmony_ci        return;
47514514f5e3Sopenharmony_ci    }
47524514f5e3Sopenharmony_ci    vec.emplace_back("(object properties)", JSTaggedValue(properties));
47534514f5e3Sopenharmony_ci    if ((!properties->IsDictionaryMode()) && (jshclass != nullptr)) {
47544514f5e3Sopenharmony_ci        JSTaggedValue attrs = jshclass->GetLayout();
47554514f5e3Sopenharmony_ci        if (attrs.IsNull()) {
47564514f5e3Sopenharmony_ci            return;
47574514f5e3Sopenharmony_ci        }
47584514f5e3Sopenharmony_ci
47594514f5e3Sopenharmony_ci        LayoutInfo *layoutInfo = LayoutInfo::Cast(attrs.GetTaggedObject());
47604514f5e3Sopenharmony_ci        int propNumber = static_cast<int>(jshclass->NumberOfProps());
47614514f5e3Sopenharmony_ci        vec.reserve(vec.size() + propNumber);
47624514f5e3Sopenharmony_ci        for (int i = 0; i < propNumber; i++) {
47634514f5e3Sopenharmony_ci            JSTaggedValue key = layoutInfo->GetKey(i);
47644514f5e3Sopenharmony_ci            PropertyAttributes attr = layoutInfo->GetAttr(i);
47654514f5e3Sopenharmony_ci            ASSERT(i == static_cast<int>(attr.GetOffset()));
47664514f5e3Sopenharmony_ci            JSTaggedValue val;
47674514f5e3Sopenharmony_ci            if (attr.IsInlinedProps()) {
47684514f5e3Sopenharmony_ci                val = GetPropertyInlinedPropsWithRep(i, attr);
47694514f5e3Sopenharmony_ci            } else {
47704514f5e3Sopenharmony_ci                val = properties->Get(i - static_cast<int>(jshclass->GetInlinedProperties()));
47714514f5e3Sopenharmony_ci            }
47724514f5e3Sopenharmony_ci
47734514f5e3Sopenharmony_ci            CString str;
47744514f5e3Sopenharmony_ci            KeyToStd(str, key);
47754514f5e3Sopenharmony_ci            vec.emplace_back(str, val);
47764514f5e3Sopenharmony_ci        }
47774514f5e3Sopenharmony_ci    } else {
47784514f5e3Sopenharmony_ci        NameDictionary *dict = NameDictionary::Cast(properties);
47794514f5e3Sopenharmony_ci        dict->DumpForSnapshot(vec);
47804514f5e3Sopenharmony_ci    }
47814514f5e3Sopenharmony_ci}
47824514f5e3Sopenharmony_ci
47834514f5e3Sopenharmony_civoid JSHClass::DumpForSnapshot([[maybe_unused]] std::vector<Reference> &vec) const
47844514f5e3Sopenharmony_ci{
47854514f5e3Sopenharmony_ci    vec.emplace_back(CString("__proto__"), GetPrototype());
47864514f5e3Sopenharmony_ci    vec.emplace_back(CString("Layout"), GetLayout());
47874514f5e3Sopenharmony_ci    vec.emplace_back(CString("Transitions"), GetTransitions());
47884514f5e3Sopenharmony_ci    vec.emplace_back(CString("Parent"), GetParent());
47894514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoChangeMarker"), GetProtoChangeMarker());
47904514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoChangeDetails"), GetProtoChangeDetails());
47914514f5e3Sopenharmony_ci    vec.emplace_back(CString("EnumCache"), GetEnumCache());
47924514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
47934514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField1"), JSTaggedValue(GetBitField1()));
47944514f5e3Sopenharmony_ci}
47954514f5e3Sopenharmony_ci
47964514f5e3Sopenharmony_civoid JSFunction::DumpForSnapshot(std::vector<Reference> &vec) const
47974514f5e3Sopenharmony_ci{
47984514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoOrHClass"), GetProtoOrHClass());
47994514f5e3Sopenharmony_ci    vec.emplace_back(CString("LexicalEnv"), GetLexicalEnv());
48004514f5e3Sopenharmony_ci    vec.emplace_back(CString("RawProfileTypeInfo"), GetRawProfileTypeInfo());
48014514f5e3Sopenharmony_ci    vec.emplace_back(CString("HomeObject"), GetHomeObject());
48024514f5e3Sopenharmony_ci    vec.emplace_back(CString("Module"), GetModule());
48034514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoTransRootHClass"), GetProtoTransRootHClass());
48044514f5e3Sopenharmony_ci    vec.emplace_back(CString("Method"), GetMethod());
48054514f5e3Sopenharmony_ci    if ((!GetMethod().IsNull()) && (!GetMethod().IsUndefined())) {
48064514f5e3Sopenharmony_ci        vec.emplace_back(CString("FunctionKind"), JSTaggedValue(static_cast<int>(GetFunctionKind())));
48074514f5e3Sopenharmony_ci    }
48084514f5e3Sopenharmony_ci    vec.emplace_back(CString("FunctionExtraInfo"), GetFunctionExtraInfo());
48094514f5e3Sopenharmony_ci    vec.emplace_back(CString("Method"), GetMethod());
48104514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
48114514f5e3Sopenharmony_ci}
48124514f5e3Sopenharmony_ci
48134514f5e3Sopenharmony_civoid Method::DumpForSnapshot(std::vector<Reference> &vec) const
48144514f5e3Sopenharmony_ci{
48154514f5e3Sopenharmony_ci    vec.emplace_back(CString("MethodName"), JSTaggedValue(GetMethodName()));
48164514f5e3Sopenharmony_ci    vec.emplace_back(CString("ConstantPool"), GetConstantPool());
48174514f5e3Sopenharmony_ci}
48184514f5e3Sopenharmony_ci
48194514f5e3Sopenharmony_civoid Program::DumpForSnapshot(std::vector<Reference> &vec) const
48204514f5e3Sopenharmony_ci{
48214514f5e3Sopenharmony_ci    vec.emplace_back(CString("MainFunction"), GetMainFunction());
48224514f5e3Sopenharmony_ci}
48234514f5e3Sopenharmony_ci
48244514f5e3Sopenharmony_civoid LinkedNode::DumpForSnapshot(std::vector<Reference> &vec) const
48254514f5e3Sopenharmony_ci{
48264514f5e3Sopenharmony_ci    JSTaggedValue next = GetNext();
48274514f5e3Sopenharmony_ci    if (next.IsUndefined() && !next.IsHole() && !next.IsNull()) {
48284514f5e3Sopenharmony_ci        LinkedNode *nextNode = LinkedNode::Cast(next.GetTaggedObject());
48294514f5e3Sopenharmony_ci        nextNode->DumpForSnapshot(vec);
48304514f5e3Sopenharmony_ci    }
48314514f5e3Sopenharmony_ci    JSTaggedValue key = GetKey();
48324514f5e3Sopenharmony_ci    CString str;
48334514f5e3Sopenharmony_ci    KeyToStd(str, key);
48344514f5e3Sopenharmony_ci    vec.emplace_back(str, GetValue());
48354514f5e3Sopenharmony_ci}
48364514f5e3Sopenharmony_ci
48374514f5e3Sopenharmony_civoid ConstantPool::DumpForSnapshot(std::vector<Reference> &vec) const
48384514f5e3Sopenharmony_ci{
48394514f5e3Sopenharmony_ci    DumpArrayClass(this, vec);
48404514f5e3Sopenharmony_ci}
48414514f5e3Sopenharmony_ci
48424514f5e3Sopenharmony_civoid ProfileTypeInfoCell::DumpForSnapshot(std::vector<Reference> &vec) const
48434514f5e3Sopenharmony_ci{
48444514f5e3Sopenharmony_ci    vec.emplace_back(CString("Value"), GetValue());
48454514f5e3Sopenharmony_ci    vec.emplace_back(CString("Handle"), GetHandle());
48464514f5e3Sopenharmony_ci}
48474514f5e3Sopenharmony_ci
48484514f5e3Sopenharmony_civoid FunctionTemplate::DumpForSnapshot(std::vector<Reference> &vec) const
48494514f5e3Sopenharmony_ci{
48504514f5e3Sopenharmony_ci    vec.emplace_back(CString("Method"), GetMethod());
48514514f5e3Sopenharmony_ci    vec.emplace_back(CString("Module"), GetModule());
48524514f5e3Sopenharmony_ci    vec.emplace_back(CString("RawProfileTypeInfo"), GetRawProfileTypeInfo());
48534514f5e3Sopenharmony_ci    vec.emplace_back(CString("Length"), JSTaggedValue(GetLength()));
48544514f5e3Sopenharmony_ci}
48554514f5e3Sopenharmony_ci
48564514f5e3Sopenharmony_civoid ExtraProfileTypeInfo::DumpForSnapshot(std::vector<Reference> &vec) const
48574514f5e3Sopenharmony_ci{
48584514f5e3Sopenharmony_ci    vec.emplace_back(CString("Receiver"), GetReceiverObject());
48594514f5e3Sopenharmony_ci    vec.emplace_back(CString("Holder"), GetHolderObject());
48604514f5e3Sopenharmony_ci}
48614514f5e3Sopenharmony_ci
48624514f5e3Sopenharmony_civoid VTable::DumpForSnapshot(std::vector<Reference> &vec) const
48634514f5e3Sopenharmony_ci{
48644514f5e3Sopenharmony_ci    DumpArrayClass(this, vec);
48654514f5e3Sopenharmony_ci}
48664514f5e3Sopenharmony_ci
48674514f5e3Sopenharmony_civoid ProfileTypeInfo::DumpForSnapshot(std::vector<Reference> &vec) const
48684514f5e3Sopenharmony_ci{
48694514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
48704514f5e3Sopenharmony_ci    uint32_t len = GetIcSlotLength();
48714514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
48724514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
48734514f5e3Sopenharmony_ci        JSTaggedValue val(Get(i));
48744514f5e3Sopenharmony_ci        CString str = ToCString(i);
48754514f5e3Sopenharmony_ci        vec.emplace_back(str, val);
48764514f5e3Sopenharmony_ci    }
48774514f5e3Sopenharmony_ci}
48784514f5e3Sopenharmony_ci
48794514f5e3Sopenharmony_civoid COWTaggedArray::DumpForSnapshot(std::vector<Reference> &vec) const
48804514f5e3Sopenharmony_ci{
48814514f5e3Sopenharmony_ci    DumpArrayClass(this, vec);
48824514f5e3Sopenharmony_ci}
48834514f5e3Sopenharmony_ci
48844514f5e3Sopenharmony_civoid MutantTaggedArray::DumpForSnapshot(std::vector<Reference> &vec) const
48854514f5e3Sopenharmony_ci{
48864514f5e3Sopenharmony_ci    DumpMutantTaggedArrayClass(this, vec);
48874514f5e3Sopenharmony_ci}
48884514f5e3Sopenharmony_ci
48894514f5e3Sopenharmony_civoid COWMutantTaggedArray::DumpForSnapshot(std::vector<Reference> &vec) const
48904514f5e3Sopenharmony_ci{
48914514f5e3Sopenharmony_ci    DumpCOWMutantTaggedArrayClass(this, vec);
48924514f5e3Sopenharmony_ci}
48934514f5e3Sopenharmony_ci
48944514f5e3Sopenharmony_civoid JSBoundFunction::DumpForSnapshot(std::vector<Reference> &vec) const
48954514f5e3Sopenharmony_ci{
48964514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
48974514f5e3Sopenharmony_ci
48984514f5e3Sopenharmony_ci    vec.emplace_back(CString("BoundTarget"), GetBoundTarget());
48994514f5e3Sopenharmony_ci    vec.emplace_back(CString("BoundThis"), GetBoundThis());
49004514f5e3Sopenharmony_ci    vec.emplace_back(CString("BoundArguments"), GetBoundArguments());
49014514f5e3Sopenharmony_ci}
49024514f5e3Sopenharmony_ci
49034514f5e3Sopenharmony_civoid JSPrimitiveRef::DumpForSnapshot(std::vector<Reference> &vec) const
49044514f5e3Sopenharmony_ci{
49054514f5e3Sopenharmony_ci    vec.emplace_back(CString("subValue"), GetValue());
49064514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49074514f5e3Sopenharmony_ci}
49084514f5e3Sopenharmony_ci
49094514f5e3Sopenharmony_civoid BigInt::DumpForSnapshot(std::vector<Reference> &vec) const
49104514f5e3Sopenharmony_ci{
49114514f5e3Sopenharmony_ci    vec.emplace_back(CString("Length"), JSTaggedValue(GetLength()));
49124514f5e3Sopenharmony_ci    vec.emplace_back(CString("Sign"), JSTaggedValue(GetSign()));
49134514f5e3Sopenharmony_ci}
49144514f5e3Sopenharmony_ci
49154514f5e3Sopenharmony_civoid JSDate::DumpForSnapshot(std::vector<Reference> &vec) const
49164514f5e3Sopenharmony_ci{
49174514f5e3Sopenharmony_ci    vec.emplace_back(CString("time"), GetTime());
49184514f5e3Sopenharmony_ci    vec.emplace_back(CString("localOffset"), GetLocalOffset());
49194514f5e3Sopenharmony_ci
49204514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49214514f5e3Sopenharmony_ci}
49224514f5e3Sopenharmony_ci
49234514f5e3Sopenharmony_civoid JSMap::DumpForSnapshot(std::vector<Reference> &vec) const
49244514f5e3Sopenharmony_ci{
49254514f5e3Sopenharmony_ci    if (!(GetLinkedMap().IsInvalidValue())) {
49264514f5e3Sopenharmony_ci        LinkedHashMap *map = LinkedHashMap::Cast(GetLinkedMap().GetTaggedObject());
49274514f5e3Sopenharmony_ci        vec.emplace_back("linkedmap", GetLinkedMap());
49284514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
49294514f5e3Sopenharmony_ci    }
49304514f5e3Sopenharmony_ci
49314514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49324514f5e3Sopenharmony_ci}
49334514f5e3Sopenharmony_ci
49344514f5e3Sopenharmony_civoid JSSharedMap::DumpForSnapshot(std::vector<Reference> &vec) const
49354514f5e3Sopenharmony_ci{
49364514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(GetLinkedMap().GetTaggedObject());
49374514f5e3Sopenharmony_ci    vec.emplace_back("linkedmap", GetLinkedMap());
49384514f5e3Sopenharmony_ci    vec.emplace_back("ModRecord", JSTaggedValue(GetModRecord()));
49394514f5e3Sopenharmony_ci    map->DumpForSnapshot(vec);
49404514f5e3Sopenharmony_ci
49414514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49424514f5e3Sopenharmony_ci}
49434514f5e3Sopenharmony_ci
49444514f5e3Sopenharmony_civoid JSForInIterator::DumpForSnapshot(std::vector<Reference> &vec) const
49454514f5e3Sopenharmony_ci{
49464514f5e3Sopenharmony_ci    vec.emplace_back(CString("Object"), GetObject());
49474514f5e3Sopenharmony_ci    vec.emplace_back(CString("CachedHclass"), GetCachedHclass());
49484514f5e3Sopenharmony_ci    vec.emplace_back(CString("Keys"), GetKeys());
49494514f5e3Sopenharmony_ci    vec.emplace_back(CString("Index"), JSTaggedValue(GetIndex()));
49504514f5e3Sopenharmony_ci    vec.emplace_back(CString("Length"), JSTaggedValue(GetLength()));
49514514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49524514f5e3Sopenharmony_ci}
49534514f5e3Sopenharmony_ci
49544514f5e3Sopenharmony_civoid JSMapIterator::DumpForSnapshot(std::vector<Reference> &vec) const
49554514f5e3Sopenharmony_ci{
49564514f5e3Sopenharmony_ci    if (!(GetIteratedMap().IsInvalidValue())) {
49574514f5e3Sopenharmony_ci        LinkedHashMap *map = LinkedHashMap::Cast(GetIteratedMap().GetTaggedObject());
49584514f5e3Sopenharmony_ci        vec.emplace_back("iteratedmap", GetIteratedMap());
49594514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
49604514f5e3Sopenharmony_ci    }
49614514f5e3Sopenharmony_ci
49624514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
49634514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
49644514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49654514f5e3Sopenharmony_ci}
49664514f5e3Sopenharmony_ci
49674514f5e3Sopenharmony_civoid JSSharedMapIterator::DumpForSnapshot(std::vector<Reference> &vec) const
49684514f5e3Sopenharmony_ci{
49694514f5e3Sopenharmony_ci    JSSharedMap *iteratedMap = JSSharedMap::Cast(GetIteratedMap().GetTaggedObject());
49704514f5e3Sopenharmony_ci    LinkedHashMap *map = LinkedHashMap::Cast(iteratedMap->GetLinkedMap().GetTaggedObject());
49714514f5e3Sopenharmony_ci    vec.emplace_back("iteratedmap", GetIteratedMap());
49724514f5e3Sopenharmony_ci    map->DumpForSnapshot(vec);
49734514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
49744514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
49754514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49764514f5e3Sopenharmony_ci}
49774514f5e3Sopenharmony_ci
49784514f5e3Sopenharmony_civoid JSSet::DumpForSnapshot(std::vector<Reference> &vec) const
49794514f5e3Sopenharmony_ci{
49804514f5e3Sopenharmony_ci    if (!(GetLinkedSet().IsInvalidValue())) {
49814514f5e3Sopenharmony_ci        LinkedHashSet *set = LinkedHashSet::Cast(GetLinkedSet().GetTaggedObject());
49824514f5e3Sopenharmony_ci        vec.emplace_back("linkedset", GetLinkedSet());
49834514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
49844514f5e3Sopenharmony_ci    }
49854514f5e3Sopenharmony_ci
49864514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49874514f5e3Sopenharmony_ci}
49884514f5e3Sopenharmony_ci
49894514f5e3Sopenharmony_civoid JSSharedSet::DumpForSnapshot(std::vector<Reference> &vec) const
49904514f5e3Sopenharmony_ci{
49914514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(GetLinkedSet().GetTaggedObject());
49924514f5e3Sopenharmony_ci    vec.emplace_back("linkedset", GetLinkedSet());
49934514f5e3Sopenharmony_ci    vec.emplace_back("ModRecord", JSTaggedValue(GetModRecord()));
49944514f5e3Sopenharmony_ci    set->DumpForSnapshot(vec);
49954514f5e3Sopenharmony_ci
49964514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
49974514f5e3Sopenharmony_ci}
49984514f5e3Sopenharmony_ci
49994514f5e3Sopenharmony_civoid JSWeakMap::DumpForSnapshot(std::vector<Reference> &vec) const
50004514f5e3Sopenharmony_ci{
50014514f5e3Sopenharmony_ci    if (!(GetLinkedMap().IsInvalidValue())) {
50024514f5e3Sopenharmony_ci        LinkedHashMap *map = LinkedHashMap::Cast(GetLinkedMap().GetTaggedObject());
50034514f5e3Sopenharmony_ci        vec.emplace_back("linkedmap", GetLinkedMap());
50044514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
50054514f5e3Sopenharmony_ci    }
50064514f5e3Sopenharmony_ci
50074514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50084514f5e3Sopenharmony_ci}
50094514f5e3Sopenharmony_ci
50104514f5e3Sopenharmony_civoid JSWeakSet::DumpForSnapshot(std::vector<Reference> &vec) const
50114514f5e3Sopenharmony_ci{
50124514f5e3Sopenharmony_ci    if (!(GetLinkedSet().IsInvalidValue())) {
50134514f5e3Sopenharmony_ci        LinkedHashSet *set = LinkedHashSet::Cast(GetLinkedSet().GetTaggedObject());
50144514f5e3Sopenharmony_ci        vec.emplace_back("linkeset", GetLinkedSet());
50154514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
50164514f5e3Sopenharmony_ci    }
50174514f5e3Sopenharmony_ci
50184514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50194514f5e3Sopenharmony_ci}
50204514f5e3Sopenharmony_ci
50214514f5e3Sopenharmony_civoid JSWeakRef::DumpForSnapshot(std::vector<Reference> &vec) const
50224514f5e3Sopenharmony_ci{
50234514f5e3Sopenharmony_ci    vec.emplace_back(CString("WeakObject"), GetWeakObject());
50244514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50254514f5e3Sopenharmony_ci}
50264514f5e3Sopenharmony_ci
50274514f5e3Sopenharmony_civoid JSFinalizationRegistry::DumpForSnapshot(std::vector<Reference> &vec) const
50284514f5e3Sopenharmony_ci{
50294514f5e3Sopenharmony_ci    vec.emplace_back(CString("CleanupCallback"), GetCleanupCallback());
50304514f5e3Sopenharmony_ci    if (!(GetMaybeUnregister().IsInvalidValue())) {
50314514f5e3Sopenharmony_ci        LinkedHashMap *map = LinkedHashMap::Cast(GetMaybeUnregister().GetTaggedObject());
50324514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
50334514f5e3Sopenharmony_ci    }
50344514f5e3Sopenharmony_ci
50354514f5e3Sopenharmony_ci    vec.emplace_back(CString("MaybeUnregister"), GetMaybeUnregister());
50364514f5e3Sopenharmony_ci    vec.emplace_back(CString("Next"), GetNext());
50374514f5e3Sopenharmony_ci    vec.emplace_back(CString("Prev"), GetPrev());
50384514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50394514f5e3Sopenharmony_ci}
50404514f5e3Sopenharmony_ci
50414514f5e3Sopenharmony_civoid CellRecord::DumpForSnapshot(std::vector<Reference> &vec) const
50424514f5e3Sopenharmony_ci{
50434514f5e3Sopenharmony_ci    vec.emplace_back(CString("WeakRefTarget"), GetWeakRefTarget());
50444514f5e3Sopenharmony_ci    vec.emplace_back(CString("HeldValue"), GetHeldValue());
50454514f5e3Sopenharmony_ci}
50464514f5e3Sopenharmony_ci
50474514f5e3Sopenharmony_civoid JSSetIterator::DumpForSnapshot(std::vector<Reference> &vec) const
50484514f5e3Sopenharmony_ci{
50494514f5e3Sopenharmony_ci    if (!(GetIteratedSet().IsInvalidValue())) {
50504514f5e3Sopenharmony_ci        LinkedHashSet *set = LinkedHashSet::Cast(GetIteratedSet().GetTaggedObject());
50514514f5e3Sopenharmony_ci        vec.emplace_back("iteratedset", GetIteratedSet());
50524514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
50534514f5e3Sopenharmony_ci    }
50544514f5e3Sopenharmony_ci
50554514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
50564514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
50574514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50584514f5e3Sopenharmony_ci}
50594514f5e3Sopenharmony_ci
50604514f5e3Sopenharmony_civoid JSSharedSetIterator::DumpForSnapshot(std::vector<Reference> &vec) const
50614514f5e3Sopenharmony_ci{
50624514f5e3Sopenharmony_ci    JSSharedSet *iteratedSet = JSSharedSet::Cast(GetIteratedSet().GetTaggedObject());
50634514f5e3Sopenharmony_ci    LinkedHashSet *set = LinkedHashSet::Cast(iteratedSet->GetLinkedSet().GetTaggedObject());
50644514f5e3Sopenharmony_ci    vec.emplace_back("iteratedset", GetIteratedSet());
50654514f5e3Sopenharmony_ci    set->DumpForSnapshot(vec);
50664514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
50674514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
50684514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50694514f5e3Sopenharmony_ci}
50704514f5e3Sopenharmony_ci
50714514f5e3Sopenharmony_civoid JSArray::DumpForSnapshot(std::vector<Reference> &vec) const
50724514f5e3Sopenharmony_ci{
50734514f5e3Sopenharmony_ci    vec.emplace_back(CString("Length"), JSTaggedValue(GetLength()));
50744514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50754514f5e3Sopenharmony_ci}
50764514f5e3Sopenharmony_ci
50774514f5e3Sopenharmony_civoid JSSharedArray::DumpForSnapshot(std::vector<Reference> &vec) const
50784514f5e3Sopenharmony_ci{
50794514f5e3Sopenharmony_ci    vec.emplace_back("ModRecord: ", JSTaggedValue(GetModRecord()));
50804514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50814514f5e3Sopenharmony_ci}
50824514f5e3Sopenharmony_ci
50834514f5e3Sopenharmony_civoid JSAPIArrayList::DumpForSnapshot(std::vector<Reference> &vec) const
50844514f5e3Sopenharmony_ci{
50854514f5e3Sopenharmony_ci    vec.emplace_back(CString("Length"), JSTaggedValue(GetLength()));
50864514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50874514f5e3Sopenharmony_ci}
50884514f5e3Sopenharmony_ci
50894514f5e3Sopenharmony_civoid JSAPIArrayListIterator::DumpForSnapshot(std::vector<Reference> &vec) const
50904514f5e3Sopenharmony_ci{
50914514f5e3Sopenharmony_ci    if (!(GetIteratedArrayList().IsInvalidValue())) {
50924514f5e3Sopenharmony_ci        JSAPIArrayList *arraylist = JSAPIArrayList::Cast(GetIteratedArrayList().GetTaggedObject());
50934514f5e3Sopenharmony_ci        vec.emplace_back("iteratedlist", GetIteratedArrayList());
50944514f5e3Sopenharmony_ci        arraylist->DumpForSnapshot(vec);
50954514f5e3Sopenharmony_ci    }
50964514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
50974514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
50984514f5e3Sopenharmony_ci}
50994514f5e3Sopenharmony_ci
51004514f5e3Sopenharmony_civoid JSAPILightWeightMap::DumpForSnapshot(std::vector<Reference> &vec) const
51014514f5e3Sopenharmony_ci{
51024514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
51034514f5e3Sopenharmony_ci    vec.emplace_back("Hashes", GetHashes());
51044514f5e3Sopenharmony_ci    TaggedArray *keys = TaggedArray::Cast(GetKeys().GetTaggedObject());
51054514f5e3Sopenharmony_ci    TaggedArray *values = TaggedArray::Cast(GetValues().GetTaggedObject());
51064514f5e3Sopenharmony_ci    uint32_t len = static_cast<uint32_t>(GetLength());
51074514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
51084514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
51094514f5e3Sopenharmony_ci        CString str;
51104514f5e3Sopenharmony_ci        KeyToStd(str, keys->Get(i));
51114514f5e3Sopenharmony_ci        vec.emplace_back(str, values->Get(i));
51124514f5e3Sopenharmony_ci    }
51134514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51144514f5e3Sopenharmony_ci}
51154514f5e3Sopenharmony_ci
51164514f5e3Sopenharmony_civoid JSAPILightWeightMapIterator::DumpForSnapshot(std::vector<Reference> &vec) const
51174514f5e3Sopenharmony_ci{
51184514f5e3Sopenharmony_ci    if (!(GetIteratedLightWeightMap().IsInvalidValue())) {
51194514f5e3Sopenharmony_ci        JSAPILightWeightMap *map =
51204514f5e3Sopenharmony_ci            JSAPILightWeightMap::Cast(GetIteratedLightWeightMap().GetTaggedObject());
51214514f5e3Sopenharmony_ci        vec.emplace_back("iteratedmap", GetIteratedLightWeightMap());
51224514f5e3Sopenharmony_ci        map->DumpForSnapshot(vec);
51234514f5e3Sopenharmony_ci    }
51244514f5e3Sopenharmony_ci
51254514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
51264514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
51274514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
51284514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51294514f5e3Sopenharmony_ci}
51304514f5e3Sopenharmony_ci
51314514f5e3Sopenharmony_civoid JSAPIQueue::DumpForSnapshot(std::vector<Reference> &vec) const
51324514f5e3Sopenharmony_ci{
51334514f5e3Sopenharmony_ci    vec.emplace_back(CString("Length"), JSTaggedValue(GetLength()));
51344514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51354514f5e3Sopenharmony_ci}
51364514f5e3Sopenharmony_ci
51374514f5e3Sopenharmony_civoid JSAPIQueueIterator::DumpForSnapshot(std::vector<Reference> &vec) const
51384514f5e3Sopenharmony_ci{
51394514f5e3Sopenharmony_ci    if (!(GetIteratedQueue().IsInvalidValue())) {
51404514f5e3Sopenharmony_ci        JSAPIQueue *queue = JSAPIQueue::Cast(GetIteratedQueue().GetTaggedObject());
51414514f5e3Sopenharmony_ci        vec.emplace_back("iteratedqueue", GetIteratedQueue());
51424514f5e3Sopenharmony_ci        queue->DumpForSnapshot(vec);
51434514f5e3Sopenharmony_ci    }
51444514f5e3Sopenharmony_ci
51454514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
51464514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51474514f5e3Sopenharmony_ci}
51484514f5e3Sopenharmony_ci
51494514f5e3Sopenharmony_civoid JSAPIDeque::DumpForSnapshot(std::vector<Reference> &vec) const
51504514f5e3Sopenharmony_ci{
51514514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51524514f5e3Sopenharmony_ci}
51534514f5e3Sopenharmony_ci
51544514f5e3Sopenharmony_civoid JSAPIDequeIterator::DumpForSnapshot(std::vector<Reference> &vec) const
51554514f5e3Sopenharmony_ci{
51564514f5e3Sopenharmony_ci    if (!(GetIteratedDeque().IsInvalidValue())) {
51574514f5e3Sopenharmony_ci        JSAPIDeque *deque = JSAPIDeque::Cast(GetIteratedDeque().GetTaggedObject());
51584514f5e3Sopenharmony_ci        vec.emplace_back("iterateddeque", GetIteratedDeque());
51594514f5e3Sopenharmony_ci        deque->DumpForSnapshot(vec);
51604514f5e3Sopenharmony_ci    }
51614514f5e3Sopenharmony_ci
51624514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
51634514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51644514f5e3Sopenharmony_ci}
51654514f5e3Sopenharmony_ci
51664514f5e3Sopenharmony_civoid JSAPILightWeightSet::DumpForSnapshot(std::vector<Reference> &vec) const
51674514f5e3Sopenharmony_ci{
51684514f5e3Sopenharmony_ci    DISALLOW_GARBAGE_COLLECTION;
51694514f5e3Sopenharmony_ci    TaggedArray *hashes = TaggedArray::Cast(GetHashes().GetTaggedObject());
51704514f5e3Sopenharmony_ci    TaggedArray *values = TaggedArray::Cast(GetValues().GetTaggedObject());
51714514f5e3Sopenharmony_ci    uint32_t len = GetLength();
51724514f5e3Sopenharmony_ci    vec.reserve(vec.size() + len);
51734514f5e3Sopenharmony_ci    for (uint32_t i = 0; i < len; i++) {
51744514f5e3Sopenharmony_ci        CString str;
51754514f5e3Sopenharmony_ci        KeyToStd(str, hashes->Get(i));
51764514f5e3Sopenharmony_ci        vec.emplace_back(str, values->Get(i));
51774514f5e3Sopenharmony_ci    }
51784514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51794514f5e3Sopenharmony_ci}
51804514f5e3Sopenharmony_ci
51814514f5e3Sopenharmony_civoid JSAPILightWeightSetIterator::DumpForSnapshot(std::vector<Reference> &vec) const
51824514f5e3Sopenharmony_ci{
51834514f5e3Sopenharmony_ci    if (!(GetIteratedLightWeightSet().IsInvalidValue())) {
51844514f5e3Sopenharmony_ci        JSAPILightWeightSet *set =
51854514f5e3Sopenharmony_ci            JSAPILightWeightSet::Cast(GetIteratedLightWeightSet().GetTaggedObject());
51864514f5e3Sopenharmony_ci        vec.emplace_back("iteratedset", GetIteratedLightWeightSet());
51874514f5e3Sopenharmony_ci        set->DumpForSnapshot(vec);
51884514f5e3Sopenharmony_ci    }
51894514f5e3Sopenharmony_ci
51904514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
51914514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
51924514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51934514f5e3Sopenharmony_ci}
51944514f5e3Sopenharmony_ci
51954514f5e3Sopenharmony_civoid JSAPIStack::DumpForSnapshot(std::vector<Reference> &vec) const
51964514f5e3Sopenharmony_ci{
51974514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
51984514f5e3Sopenharmony_ci}
51994514f5e3Sopenharmony_ci
52004514f5e3Sopenharmony_civoid JSAPIStackIterator::DumpForSnapshot(std::vector<Reference> &vec) const
52014514f5e3Sopenharmony_ci{
52024514f5e3Sopenharmony_ci    if (!(GetIteratedStack().IsInvalidValue())) {
52034514f5e3Sopenharmony_ci        JSAPIStack *stack = JSAPIStack::Cast(GetIteratedStack().GetTaggedObject());
52044514f5e3Sopenharmony_ci        vec.emplace_back("iteratedstack", GetIteratedStack());
52054514f5e3Sopenharmony_ci        stack->DumpForSnapshot(vec);
52064514f5e3Sopenharmony_ci    }
52074514f5e3Sopenharmony_ci
52084514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
52094514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52104514f5e3Sopenharmony_ci}
52114514f5e3Sopenharmony_ci
52124514f5e3Sopenharmony_civoid JSArrayIterator::DumpForSnapshot(std::vector<Reference> &vec) const
52134514f5e3Sopenharmony_ci{
52144514f5e3Sopenharmony_ci    if (!(GetIteratedArray().IsInvalidValue())) {
52154514f5e3Sopenharmony_ci        JSArray *array = JSArray::Cast(GetIteratedArray().GetTaggedObject());
52164514f5e3Sopenharmony_ci        vec.emplace_back("iteratedarray", GetIteratedArray());
52174514f5e3Sopenharmony_ci        array->DumpForSnapshot(vec);
52184514f5e3Sopenharmony_ci    }
52194514f5e3Sopenharmony_ci
52204514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
52214514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
52224514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
52234514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52244514f5e3Sopenharmony_ci}
52254514f5e3Sopenharmony_ci
52264514f5e3Sopenharmony_civoid JSSharedArrayIterator::DumpForSnapshot(std::vector<Reference> &vec) const
52274514f5e3Sopenharmony_ci{
52284514f5e3Sopenharmony_ci    JSSharedArray *array = JSSharedArray::Cast(GetIteratedArray().GetTaggedObject());
52294514f5e3Sopenharmony_ci    vec.emplace_back("iteratedarray", GetIteratedArray());
52304514f5e3Sopenharmony_ci    array->DumpForSnapshot(vec);
52314514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
52324514f5e3Sopenharmony_ci    vec.emplace_back(CString("IterationKind"), JSTaggedValue(static_cast<int>(GetIterationKind())));
52334514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52344514f5e3Sopenharmony_ci}
52354514f5e3Sopenharmony_ci
52364514f5e3Sopenharmony_civoid JSAPIVector::DumpForSnapshot(std::vector<Reference> &vec) const
52374514f5e3Sopenharmony_ci{
52384514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52394514f5e3Sopenharmony_ci}
52404514f5e3Sopenharmony_ci
52414514f5e3Sopenharmony_civoid JSAPIVectorIterator::DumpForSnapshot(std::vector<Reference> &vec) const
52424514f5e3Sopenharmony_ci{
52434514f5e3Sopenharmony_ci    if (!(GetIteratedVector().IsInvalidValue())) {
52444514f5e3Sopenharmony_ci        JSAPIVector *vector = JSAPIVector::Cast(GetIteratedVector().GetTaggedObject());
52454514f5e3Sopenharmony_ci        vec.emplace_back("iteratedvector", GetIteratedVector());
52464514f5e3Sopenharmony_ci        vector->DumpForSnapshot(vec);
52474514f5e3Sopenharmony_ci    }
52484514f5e3Sopenharmony_ci
52494514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
52504514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52514514f5e3Sopenharmony_ci}
52524514f5e3Sopenharmony_ci
52534514f5e3Sopenharmony_civoid JSAPIBitVector::DumpForSnapshot(std::vector<Reference> &vec) const
52544514f5e3Sopenharmony_ci{
52554514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52564514f5e3Sopenharmony_ci}
52574514f5e3Sopenharmony_ci
52584514f5e3Sopenharmony_civoid JSAPIBitVectorIterator::DumpForSnapshot(std::vector<Reference> &vec) const
52594514f5e3Sopenharmony_ci{
52604514f5e3Sopenharmony_ci    JSAPIVector *vector = JSAPIVector::Cast(GetIteratedBitVector().GetTaggedObject());
52614514f5e3Sopenharmony_ci    vec.emplace_back("iteratedbitvector", GetIteratedBitVector());
52624514f5e3Sopenharmony_ci    vector->DumpForSnapshot(vec);
52634514f5e3Sopenharmony_ci    vec.emplace_back(CString("NextIndex"), JSTaggedValue(GetNextIndex()));
52644514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52654514f5e3Sopenharmony_ci}
52664514f5e3Sopenharmony_ci
52674514f5e3Sopenharmony_civoid JSStringIterator::DumpForSnapshot(std::vector<Reference> &vec) const
52684514f5e3Sopenharmony_ci{
52694514f5e3Sopenharmony_ci    vec.emplace_back(CString("IteratedString"), GetIteratedString());
52704514f5e3Sopenharmony_ci    vec.emplace_back(CString("StringIteratorNextIndex"), JSTaggedValue(GetStringIteratorNextIndex()));
52714514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52724514f5e3Sopenharmony_ci}
52734514f5e3Sopenharmony_ci
52744514f5e3Sopenharmony_civoid JSTypedArray::DumpForSnapshot(std::vector<Reference> &vec) const
52754514f5e3Sopenharmony_ci{
52764514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
52774514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 5;
52784514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
52794514f5e3Sopenharmony_ci    vec.emplace_back(CString("viewed-array-buffer"), GetViewedArrayBufferOrByteArray());
52804514f5e3Sopenharmony_ci    vec.emplace_back(CString("typed-array-name"), GetTypedArrayName());
52814514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-length"), JSTaggedValue(GetByteLength()));
52824514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-offset"), JSTaggedValue(GetByteOffset()));
52834514f5e3Sopenharmony_ci    vec.emplace_back(CString("array-length"), JSTaggedValue(GetArrayLength()));
52844514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52854514f5e3Sopenharmony_ci}
52864514f5e3Sopenharmony_ci
52874514f5e3Sopenharmony_civoid JSSharedTypedArray::DumpForSnapshot(std::vector<Reference> &vec) const
52884514f5e3Sopenharmony_ci{
52894514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
52904514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 5;
52914514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
52924514f5e3Sopenharmony_ci    vec.emplace_back(CString("viewed-array-buffer"), GetViewedArrayBufferOrByteArray());
52934514f5e3Sopenharmony_ci    vec.emplace_back(CString("typed-array-name"), GetTypedArrayName());
52944514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-length"), JSTaggedValue(GetByteLength()));
52954514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-offset"), JSTaggedValue(GetByteOffset()));
52964514f5e3Sopenharmony_ci    vec.emplace_back(CString("array-length"), JSTaggedValue(GetArrayLength()));
52974514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
52984514f5e3Sopenharmony_ci}
52994514f5e3Sopenharmony_ci
53004514f5e3Sopenharmony_civoid ByteArray::DumpForSnapshot(std::vector<Reference> &vec) const
53014514f5e3Sopenharmony_ci{
53024514f5e3Sopenharmony_ci    vec.emplace_back(CString("array-length"), JSTaggedValue(GetArrayLength()));
53034514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-length"), JSTaggedValue(GetByteLength()));
53044514f5e3Sopenharmony_ci}
53054514f5e3Sopenharmony_ci
53064514f5e3Sopenharmony_civoid JSRegExp::DumpForSnapshot(std::vector<Reference> &vec) const
53074514f5e3Sopenharmony_ci{
53084514f5e3Sopenharmony_ci    vec.emplace_back(CString("ByteCodeBuffer"), GetByteCodeBuffer());
53094514f5e3Sopenharmony_ci    vec.emplace_back(CString("originalSource"), GetOriginalSource());
53104514f5e3Sopenharmony_ci    vec.emplace_back(CString("originalFlags"), GetOriginalFlags());
53114514f5e3Sopenharmony_ci    vec.emplace_back(CString("groupName"), GetGroupName());
53124514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
53134514f5e3Sopenharmony_ci}
53144514f5e3Sopenharmony_ci
53154514f5e3Sopenharmony_civoid JSRegExpIterator::DumpForSnapshot(std::vector<Reference> &vec) const
53164514f5e3Sopenharmony_ci{
53174514f5e3Sopenharmony_ci    vec.emplace_back(CString("IteratingRegExp"), GetIteratingRegExp());
53184514f5e3Sopenharmony_ci    vec.emplace_back(CString("IteratedString"), GetIteratedString());
53194514f5e3Sopenharmony_ci    vec.emplace_back(CString("Global"), JSTaggedValue(GetGlobal()));
53204514f5e3Sopenharmony_ci    vec.emplace_back(CString("Unicode"), JSTaggedValue(GetUnicode()));
53214514f5e3Sopenharmony_ci    vec.emplace_back(CString("Done"), JSTaggedValue(GetDone()));
53224514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
53234514f5e3Sopenharmony_ci}
53244514f5e3Sopenharmony_ci
53254514f5e3Sopenharmony_civoid JSProxy::DumpForSnapshot(std::vector<Reference> &vec) const
53264514f5e3Sopenharmony_ci{
53274514f5e3Sopenharmony_ci    vec.emplace_back(CString("target"), GetTarget());
53284514f5e3Sopenharmony_ci    vec.emplace_back(CString("handler"), GetHandler());
53294514f5e3Sopenharmony_ci    vec.emplace_back(CString("Method"), GetMethod());
53304514f5e3Sopenharmony_ci    vec.emplace_back(CString("PrivateField"), GetPrivateField());
53314514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
53324514f5e3Sopenharmony_ci}
53334514f5e3Sopenharmony_ci
53344514f5e3Sopenharmony_civoid JSSymbol::DumpForSnapshot(std::vector<Reference> &vec) const
53354514f5e3Sopenharmony_ci{
53364514f5e3Sopenharmony_ci    vec.emplace_back(CString("hash-field"), JSTaggedValue(GetHashField()));
53374514f5e3Sopenharmony_ci    vec.emplace_back(CString("flags"), JSTaggedValue(GetFlags()));
53384514f5e3Sopenharmony_ci    vec.emplace_back(CString("description"), GetDescription());
53394514f5e3Sopenharmony_ci}
53404514f5e3Sopenharmony_ci
53414514f5e3Sopenharmony_civoid AccessorData::DumpForSnapshot(std::vector<Reference> &vec) const
53424514f5e3Sopenharmony_ci{
53434514f5e3Sopenharmony_ci    if (GetClass()->GetObjectType() == JSType::INTERNAL_ACCESSOR) {
53444514f5e3Sopenharmony_ci        vec.emplace_back(CString("getter"), JSTaggedValue(InternalAccessor::ConstCast(this)->GetGetter()));
53454514f5e3Sopenharmony_ci        vec.emplace_back(CString("setter"), JSTaggedValue(InternalAccessor::ConstCast(this)->GetSetter()));
53464514f5e3Sopenharmony_ci        return;
53474514f5e3Sopenharmony_ci    }
53484514f5e3Sopenharmony_ci
53494514f5e3Sopenharmony_ci    vec.emplace_back(CString("getter"), GetGetter());
53504514f5e3Sopenharmony_ci    vec.emplace_back(CString("setter"), GetSetter());
53514514f5e3Sopenharmony_ci}
53524514f5e3Sopenharmony_ci
53534514f5e3Sopenharmony_civoid LexicalEnv::DumpForSnapshot(std::vector<Reference> &vec) const
53544514f5e3Sopenharmony_ci{
53554514f5e3Sopenharmony_ci    DumpArrayClass(this, vec);
53564514f5e3Sopenharmony_ci}
53574514f5e3Sopenharmony_ci
53584514f5e3Sopenharmony_civoid SendableEnv::DumpForSnapshot(std::vector<Reference> &vec) const
53594514f5e3Sopenharmony_ci{
53604514f5e3Sopenharmony_ci    DumpArrayClass(this, vec);
53614514f5e3Sopenharmony_ci}
53624514f5e3Sopenharmony_ci
53634514f5e3Sopenharmony_civoid GlobalEnv::DumpForSnapshot(std::vector<Reference> &vec) const
53644514f5e3Sopenharmony_ci{
53654514f5e3Sopenharmony_ci    auto globalConst = GetJSThread()->GlobalConstants();
53664514f5e3Sopenharmony_ci#define DUMP_ENV_FIELD(type, name, _) vec.emplace_back(#name, GetRaw##name().GetTaggedValue());
53674514f5e3Sopenharmony_ci#define DUMP_CONST_FIELD(type, name, ...) vec.emplace_back(#name, globalConst->Get##name());
53684514f5e3Sopenharmony_ci#define DUMP_CONST_STRING(name, ...) vec.emplace_back(#name, globalConst->Get##name());
53694514f5e3Sopenharmony_ci
53704514f5e3Sopenharmony_ci    GLOBAL_ENV_FIELDS(DUMP_ENV_FIELD)
53714514f5e3Sopenharmony_ci
53724514f5e3Sopenharmony_ci    GLOBAL_ENV_CONSTANT_CLASS(DUMP_CONST_FIELD)
53734514f5e3Sopenharmony_ci
53744514f5e3Sopenharmony_ci    GLOBAL_ENV_CONSTANT_SPECIAL(DUMP_CONST_FIELD)
53754514f5e3Sopenharmony_ci
53764514f5e3Sopenharmony_ci    GLOBAL_ENV_CONSTANT_CONSTANT(DUMP_CONST_FIELD)
53774514f5e3Sopenharmony_ci
53784514f5e3Sopenharmony_ci    GLOBAL_ENV_CACHES(DUMP_CONST_FIELD)
53794514f5e3Sopenharmony_ci
53804514f5e3Sopenharmony_ci#undef DUMP_FIELD
53814514f5e3Sopenharmony_ci#undef DUMP_CONST_FIELD
53824514f5e3Sopenharmony_ci#undef DUMP_CONST_STRING
53834514f5e3Sopenharmony_ci}
53844514f5e3Sopenharmony_ci
53854514f5e3Sopenharmony_civoid JSDataView::DumpForSnapshot(std::vector<Reference> &vec) const
53864514f5e3Sopenharmony_ci{
53874514f5e3Sopenharmony_ci    vec.emplace_back(CString("data-view"), GetDataView());
53884514f5e3Sopenharmony_ci    vec.emplace_back(CString("buffer"), GetViewedArrayBuffer());
53894514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-length"), JSTaggedValue(GetByteLength()));
53904514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-offset"), JSTaggedValue(GetByteOffset()));
53914514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
53924514f5e3Sopenharmony_ci}
53934514f5e3Sopenharmony_ci
53944514f5e3Sopenharmony_civoid JSArrayBuffer::DumpForSnapshot(std::vector<Reference> &vec) const
53954514f5e3Sopenharmony_ci{
53964514f5e3Sopenharmony_ci    vec.emplace_back(CString("buffer-data"), GetArrayBufferData());
53974514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-length"), JSTaggedValue(GetArrayBufferByteLength()));
53984514f5e3Sopenharmony_ci    vec.emplace_back(CString("shared"), JSTaggedValue(GetShared()));
53994514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
54004514f5e3Sopenharmony_ci}
54014514f5e3Sopenharmony_ci
54024514f5e3Sopenharmony_civoid JSSendableArrayBuffer::DumpForSnapshot(std::vector<Reference> &vec) const
54034514f5e3Sopenharmony_ci{
54044514f5e3Sopenharmony_ci    vec.emplace_back(CString("buffer-data"), GetArrayBufferData());
54054514f5e3Sopenharmony_ci    vec.emplace_back(CString("byte-length"), JSTaggedValue(GetArrayBufferByteLength()));
54064514f5e3Sopenharmony_ci    vec.emplace_back(CString("shared"), JSTaggedValue(GetShared()));
54074514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
54084514f5e3Sopenharmony_ci}
54094514f5e3Sopenharmony_ci
54104514f5e3Sopenharmony_civoid PromiseReaction::DumpForSnapshot(std::vector<Reference> &vec) const
54114514f5e3Sopenharmony_ci{
54124514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-capability"), GetPromiseCapability());
54134514f5e3Sopenharmony_ci    vec.emplace_back(CString("handler"), GetHandler());
54144514f5e3Sopenharmony_ci    vec.emplace_back(CString("type"), JSTaggedValue(static_cast<int>(GetType())));
54154514f5e3Sopenharmony_ci}
54164514f5e3Sopenharmony_ci
54174514f5e3Sopenharmony_civoid PromiseCapability::DumpForSnapshot(std::vector<Reference> &vec) const
54184514f5e3Sopenharmony_ci{
54194514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise"), GetPromise());
54204514f5e3Sopenharmony_ci    vec.emplace_back(CString("resolve"), GetResolve());
54214514f5e3Sopenharmony_ci    vec.emplace_back(CString("reject"), GetReject());
54224514f5e3Sopenharmony_ci}
54234514f5e3Sopenharmony_ci
54244514f5e3Sopenharmony_civoid PromiseIteratorRecord::DumpForSnapshot(std::vector<Reference> &vec) const
54254514f5e3Sopenharmony_ci{
54264514f5e3Sopenharmony_ci    vec.emplace_back(CString("iterator"), GetIterator());
54274514f5e3Sopenharmony_ci    vec.emplace_back(CString("done"), JSTaggedValue(GetDone()));
54284514f5e3Sopenharmony_ci}
54294514f5e3Sopenharmony_ci
54304514f5e3Sopenharmony_civoid PromiseRecord::DumpForSnapshot(std::vector<Reference> &vec) const
54314514f5e3Sopenharmony_ci{
54324514f5e3Sopenharmony_ci    vec.emplace_back(CString("value"), GetValue());
54334514f5e3Sopenharmony_ci}
54344514f5e3Sopenharmony_ci
54354514f5e3Sopenharmony_civoid ResolvingFunctionsRecord::DumpForSnapshot(std::vector<Reference> &vec) const
54364514f5e3Sopenharmony_ci{
54374514f5e3Sopenharmony_ci    vec.emplace_back(CString("resolve-function"), GetResolveFunction());
54384514f5e3Sopenharmony_ci    vec.emplace_back(CString("reject-function"), GetRejectFunction());
54394514f5e3Sopenharmony_ci}
54404514f5e3Sopenharmony_ci
54414514f5e3Sopenharmony_civoid AsyncGeneratorRequest::DumpForSnapshot(std::vector<Reference> &vec) const
54424514f5e3Sopenharmony_ci{
54434514f5e3Sopenharmony_ci    vec.emplace_back(CString("completion"), GetCompletion());
54444514f5e3Sopenharmony_ci    vec.emplace_back(CString("capability"), GetCapability());
54454514f5e3Sopenharmony_ci}
54464514f5e3Sopenharmony_ci
54474514f5e3Sopenharmony_civoid AsyncIteratorRecord::DumpForSnapshot(std::vector<Reference> &vec) const
54484514f5e3Sopenharmony_ci{
54494514f5e3Sopenharmony_ci    vec.emplace_back(CString("iterator"), GetIterator());
54504514f5e3Sopenharmony_ci    vec.emplace_back(CString("nextmethod"), GetNextMethod());
54514514f5e3Sopenharmony_ci    vec.emplace_back(CString("done"), JSTaggedValue(GetDone()));
54524514f5e3Sopenharmony_ci}
54534514f5e3Sopenharmony_ci
54544514f5e3Sopenharmony_civoid JSAsyncFromSyncIterator::DumpForSnapshot(std::vector<Reference> &vec) const
54554514f5e3Sopenharmony_ci{
54564514f5e3Sopenharmony_ci    vec.emplace_back(CString("synciteratorrecord"), GetSyncIteratorRecord());
54574514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
54584514f5e3Sopenharmony_ci}
54594514f5e3Sopenharmony_ci
54604514f5e3Sopenharmony_civoid JSAsyncFromSyncIterUnwarpFunction::DumpForSnapshot(std::vector<Reference> &vec) const
54614514f5e3Sopenharmony_ci{
54624514f5e3Sopenharmony_ci    vec.emplace_back(CString("done"), JSTaggedValue(GetDone()));
54634514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
54644514f5e3Sopenharmony_ci}
54654514f5e3Sopenharmony_ci
54664514f5e3Sopenharmony_civoid JSPromise::DumpForSnapshot(std::vector<Reference> &vec) const
54674514f5e3Sopenharmony_ci{
54684514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-state"), JSTaggedValue(static_cast<int>(GetPromiseState())));
54694514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-result"), GetPromiseResult());
54704514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-fulfill-reactions"), GetPromiseFulfillReactions());
54714514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-reject-reactions"), GetPromiseRejectReactions());
54724514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-is-handled"), JSTaggedValue(GetPromiseIsHandled()));
54734514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
54744514f5e3Sopenharmony_ci}
54754514f5e3Sopenharmony_ci
54764514f5e3Sopenharmony_civoid JSPromiseReactionsFunction::DumpForSnapshot(std::vector<Reference> &vec) const
54774514f5e3Sopenharmony_ci{
54784514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise"), GetPromise());
54794514f5e3Sopenharmony_ci    vec.emplace_back(CString("already-resolved"), GetAlreadyResolved());
54804514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
54814514f5e3Sopenharmony_ci}
54824514f5e3Sopenharmony_ci
54834514f5e3Sopenharmony_civoid JSAsyncGeneratorResNextRetProRstFtn::DumpForSnapshot(std::vector<Reference> &vec) const
54844514f5e3Sopenharmony_ci{
54854514f5e3Sopenharmony_ci    vec.emplace_back(CString("async-generator-object"), GetAsyncGeneratorObject());
54864514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
54874514f5e3Sopenharmony_ci}
54884514f5e3Sopenharmony_ci
54894514f5e3Sopenharmony_civoid JSPromiseExecutorFunction::DumpForSnapshot(std::vector<Reference> &vec) const
54904514f5e3Sopenharmony_ci{
54914514f5e3Sopenharmony_ci    vec.emplace_back(CString("capability"), GetCapability());
54924514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
54934514f5e3Sopenharmony_ci}
54944514f5e3Sopenharmony_ci
54954514f5e3Sopenharmony_civoid JSAsyncModuleFulfilledFunction::DumpForSnapshot(std::vector<Reference> &vec) const
54964514f5e3Sopenharmony_ci{
54974514f5e3Sopenharmony_ci    vec.emplace_back(CString("module"), GetModule());
54984514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
54994514f5e3Sopenharmony_ci}
55004514f5e3Sopenharmony_ci
55014514f5e3Sopenharmony_civoid JSAsyncModuleRejectedFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55024514f5e3Sopenharmony_ci{
55034514f5e3Sopenharmony_ci    vec.emplace_back(CString("module"), GetModule());
55044514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55054514f5e3Sopenharmony_ci}
55064514f5e3Sopenharmony_ci
55074514f5e3Sopenharmony_civoid JSPromiseAllResolveElementFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55084514f5e3Sopenharmony_ci{
55094514f5e3Sopenharmony_ci    vec.emplace_back(CString("index"), GetIndex());
55104514f5e3Sopenharmony_ci    vec.emplace_back(CString("values"), GetValues());
55114514f5e3Sopenharmony_ci    vec.emplace_back(CString("capabilities"), GetCapabilities());
55124514f5e3Sopenharmony_ci    vec.emplace_back(CString("remaining-elements"), GetRemainingElements());
55134514f5e3Sopenharmony_ci    vec.emplace_back(CString("already-called"), GetAlreadyCalled());
55144514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55154514f5e3Sopenharmony_ci}
55164514f5e3Sopenharmony_ci
55174514f5e3Sopenharmony_civoid JSPromiseAnyRejectElementFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55184514f5e3Sopenharmony_ci{
55194514f5e3Sopenharmony_ci    vec.emplace_back(CString("index"), JSTaggedValue(GetIndex()));
55204514f5e3Sopenharmony_ci    vec.emplace_back(CString("errors"), GetErrors());
55214514f5e3Sopenharmony_ci    vec.emplace_back(CString("capability"), GetCapability());
55224514f5e3Sopenharmony_ci    vec.emplace_back(CString("remaining-elements"), GetRemainingElements());
55234514f5e3Sopenharmony_ci    vec.emplace_back(CString("already-called"), GetAlreadyCalled());
55244514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55254514f5e3Sopenharmony_ci}
55264514f5e3Sopenharmony_ci
55274514f5e3Sopenharmony_civoid JSPromiseAllSettledElementFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55284514f5e3Sopenharmony_ci{
55294514f5e3Sopenharmony_ci    vec.emplace_back(CString("already-called"), GetAlreadyCalled());
55304514f5e3Sopenharmony_ci    vec.emplace_back(CString("index"), JSTaggedValue(GetIndex()));
55314514f5e3Sopenharmony_ci    vec.emplace_back(CString("values"), GetValues());
55324514f5e3Sopenharmony_ci    vec.emplace_back(CString("capability"), GetCapability());
55334514f5e3Sopenharmony_ci    vec.emplace_back(CString("remaining-elements"), GetRemainingElements());
55344514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55354514f5e3Sopenharmony_ci}
55364514f5e3Sopenharmony_ci
55374514f5e3Sopenharmony_civoid JSPromiseFinallyFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55384514f5e3Sopenharmony_ci{
55394514f5e3Sopenharmony_ci    vec.emplace_back(CString("constructor"), GetConstructor());
55404514f5e3Sopenharmony_ci    vec.emplace_back(CString("onFinally"), GetOnFinally());
55414514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55424514f5e3Sopenharmony_ci}
55434514f5e3Sopenharmony_ci
55444514f5e3Sopenharmony_civoid JSPromiseValueThunkOrThrowerFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55454514f5e3Sopenharmony_ci{
55464514f5e3Sopenharmony_ci    vec.emplace_back(CString("result"), GetResult());
55474514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55484514f5e3Sopenharmony_ci}
55494514f5e3Sopenharmony_ci
55504514f5e3Sopenharmony_civoid MicroJobQueue::DumpForSnapshot(std::vector<Reference> &vec) const
55514514f5e3Sopenharmony_ci{
55524514f5e3Sopenharmony_ci    vec.emplace_back(CString("promise-job-queue"), GetPromiseJobQueue());
55534514f5e3Sopenharmony_ci    vec.emplace_back(CString("script-job-queue"), GetScriptJobQueue());
55544514f5e3Sopenharmony_ci}
55554514f5e3Sopenharmony_ci
55564514f5e3Sopenharmony_civoid PendingJob::DumpForSnapshot(std::vector<Reference> &vec) const
55574514f5e3Sopenharmony_ci{
55584514f5e3Sopenharmony_ci    vec.emplace_back(CString("job"), GetJob());
55594514f5e3Sopenharmony_ci    vec.emplace_back(CString("arguments"), GetArguments());
55604514f5e3Sopenharmony_ci}
55614514f5e3Sopenharmony_ci
55624514f5e3Sopenharmony_civoid CompletionRecord::DumpForSnapshot(std::vector<Reference> &vec) const
55634514f5e3Sopenharmony_ci{
55644514f5e3Sopenharmony_ci    vec.emplace_back(CString("value"), GetValue());
55654514f5e3Sopenharmony_ci    vec.emplace_back(CString("type"), JSTaggedValue(static_cast<int>(GetType())));
55664514f5e3Sopenharmony_ci}
55674514f5e3Sopenharmony_ci
55684514f5e3Sopenharmony_civoid JSProxyRevocFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55694514f5e3Sopenharmony_ci{
55704514f5e3Sopenharmony_ci    vec.emplace_back(CString("RevocableProxy"), GetRevocableProxy());
55714514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55724514f5e3Sopenharmony_ci}
55734514f5e3Sopenharmony_ci
55744514f5e3Sopenharmony_civoid JSAsyncFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55754514f5e3Sopenharmony_ci{
55764514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55774514f5e3Sopenharmony_ci}
55784514f5e3Sopenharmony_ci
55794514f5e3Sopenharmony_civoid JSAsyncAwaitStatusFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55804514f5e3Sopenharmony_ci{
55814514f5e3Sopenharmony_ci    vec.emplace_back(CString("AsyncContext"), GetAsyncContext());
55824514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55834514f5e3Sopenharmony_ci}
55844514f5e3Sopenharmony_ci
55854514f5e3Sopenharmony_civoid JSGeneratorFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55864514f5e3Sopenharmony_ci{
55874514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55884514f5e3Sopenharmony_ci}
55894514f5e3Sopenharmony_ci
55904514f5e3Sopenharmony_civoid JSAsyncGeneratorFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55914514f5e3Sopenharmony_ci{
55924514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
55934514f5e3Sopenharmony_ci}
55944514f5e3Sopenharmony_ci
55954514f5e3Sopenharmony_civoid JSIntlBoundFunction::DumpForSnapshot(std::vector<Reference> &vec) const
55964514f5e3Sopenharmony_ci{
55974514f5e3Sopenharmony_ci    vec.emplace_back(CString("NumberFormat"), GetNumberFormat());
55984514f5e3Sopenharmony_ci    vec.emplace_back(CString("DateTimeFormat"), GetDateTimeFormat());
55994514f5e3Sopenharmony_ci    vec.emplace_back(CString("Collator"), GetCollator());
56004514f5e3Sopenharmony_ci    JSFunction::DumpForSnapshot(vec);
56014514f5e3Sopenharmony_ci}
56024514f5e3Sopenharmony_ci
56034514f5e3Sopenharmony_civoid PropertyBox::DumpForSnapshot(std::vector<Reference> &vec) const
56044514f5e3Sopenharmony_ci{
56054514f5e3Sopenharmony_ci    vec.emplace_back(CString("Value"), GetValue());
56064514f5e3Sopenharmony_ci}
56074514f5e3Sopenharmony_ci
56084514f5e3Sopenharmony_civoid PrototypeHandler::DumpForSnapshot(std::vector<Reference> &vec) const
56094514f5e3Sopenharmony_ci{
56104514f5e3Sopenharmony_ci    vec.emplace_back(CString("HandlerInfo"), GetHandlerInfo());
56114514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoCell"), GetProtoCell());
56124514f5e3Sopenharmony_ci    vec.emplace_back(CString("Holder"), GetHolder());
56134514f5e3Sopenharmony_ci}
56144514f5e3Sopenharmony_ci
56154514f5e3Sopenharmony_civoid TransitionHandler::DumpForSnapshot(std::vector<Reference> &vec) const
56164514f5e3Sopenharmony_ci{
56174514f5e3Sopenharmony_ci    vec.emplace_back(CString("HandlerInfo"), GetHandlerInfo());
56184514f5e3Sopenharmony_ci    vec.emplace_back(CString("TransitionHClass"), GetTransitionHClass());
56194514f5e3Sopenharmony_ci}
56204514f5e3Sopenharmony_ci
56214514f5e3Sopenharmony_civoid TransWithProtoHandler::DumpForSnapshot(std::vector<Reference> &vec) const
56224514f5e3Sopenharmony_ci{
56234514f5e3Sopenharmony_ci    vec.emplace_back(CString("HandlerInfo"), GetHandlerInfo());
56244514f5e3Sopenharmony_ci    vec.emplace_back(CString("TransitionHClass"), GetTransitionHClass());
56254514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoCell"), GetProtoCell());
56264514f5e3Sopenharmony_ci}
56274514f5e3Sopenharmony_ci
56284514f5e3Sopenharmony_civoid StoreTSHandler::DumpForSnapshot(std::vector<Reference> &vec) const
56294514f5e3Sopenharmony_ci{
56304514f5e3Sopenharmony_ci    vec.emplace_back(CString("HandlerInfo"), GetHandlerInfo());
56314514f5e3Sopenharmony_ci    vec.emplace_back(CString("ProtoCell"), GetProtoCell());
56324514f5e3Sopenharmony_ci    vec.emplace_back(CString("Holder"), GetHolder());
56334514f5e3Sopenharmony_ci}
56344514f5e3Sopenharmony_ci
56354514f5e3Sopenharmony_civoid JSRealm::DumpForSnapshot(std::vector<Reference> &vec) const
56364514f5e3Sopenharmony_ci{
56374514f5e3Sopenharmony_ci    vec.emplace_back(CString("Value"), GetValue());
56384514f5e3Sopenharmony_ci    vec.emplace_back(CString("GLobalEnv"), GetGlobalEnv());
56394514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
56404514f5e3Sopenharmony_ci}
56414514f5e3Sopenharmony_ci#ifdef ARK_SUPPORT_INTL
56424514f5e3Sopenharmony_civoid JSIntl::DumpForSnapshot(std::vector<Reference> &vec) const
56434514f5e3Sopenharmony_ci{
56444514f5e3Sopenharmony_ci    vec.emplace_back(CString("FallbackSymbol"), GetFallbackSymbol());
56454514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
56464514f5e3Sopenharmony_ci}
56474514f5e3Sopenharmony_ci
56484514f5e3Sopenharmony_civoid JSLocale::DumpForSnapshot(std::vector<Reference> &vec) const
56494514f5e3Sopenharmony_ci{
56504514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
56514514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
56524514f5e3Sopenharmony_ci}
56534514f5e3Sopenharmony_ci
56544514f5e3Sopenharmony_civoid JSDateTimeFormat::DumpForSnapshot(std::vector<Reference> &vec) const
56554514f5e3Sopenharmony_ci{
56564514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
56574514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 11;
56584514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
56594514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
56604514f5e3Sopenharmony_ci    vec.emplace_back(CString("Calendar"), GetCalendar());
56614514f5e3Sopenharmony_ci    vec.emplace_back(CString("NumberingSystem"), GetNumberingSystem());
56624514f5e3Sopenharmony_ci    vec.emplace_back(CString("TimeZone"), GetTimeZone());
56634514f5e3Sopenharmony_ci    vec.emplace_back(CString("HourCycle"), JSTaggedValue(static_cast<int>(GetHourCycle())));
56644514f5e3Sopenharmony_ci    vec.emplace_back(CString("LocaleIcu"), GetLocaleIcu());
56654514f5e3Sopenharmony_ci    vec.emplace_back(CString("SimpleDateTimeFormatIcu"), GetSimpleDateTimeFormatIcu());
56664514f5e3Sopenharmony_ci    vec.emplace_back(CString("Iso8601"), GetIso8601());
56674514f5e3Sopenharmony_ci    vec.emplace_back(CString("DateStyle"), JSTaggedValue(static_cast<int>(GetDateStyle())));
56684514f5e3Sopenharmony_ci    vec.emplace_back(CString("TimeStyle"), JSTaggedValue(static_cast<int>(GetTimeStyle())));
56694514f5e3Sopenharmony_ci    vec.emplace_back(CString("BoundFormat"), GetBoundFormat());
56704514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
56714514f5e3Sopenharmony_ci}
56724514f5e3Sopenharmony_ci
56734514f5e3Sopenharmony_civoid JSRelativeTimeFormat::DumpForSnapshot(std::vector<Reference> &vec) const
56744514f5e3Sopenharmony_ci{
56754514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
56764514f5e3Sopenharmony_ci    vec.emplace_back(CString("NumberingSystem"), GetNumberingSystem());
56774514f5e3Sopenharmony_ci    vec.emplace_back(CString("Style"), JSTaggedValue(static_cast<int>(GetStyle())));
56784514f5e3Sopenharmony_ci    vec.emplace_back(CString("Numeric"), JSTaggedValue(static_cast<int>(GetNumeric())));
56794514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
56804514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
56814514f5e3Sopenharmony_ci}
56824514f5e3Sopenharmony_ci
56834514f5e3Sopenharmony_civoid JSNumberFormat::DumpForSnapshot(std::vector<Reference> &vec) const
56844514f5e3Sopenharmony_ci{
56854514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
56864514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 20;
56874514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
56884514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
56894514f5e3Sopenharmony_ci    vec.emplace_back(CString("NumberingSystem"), GetNumberingSystem());
56904514f5e3Sopenharmony_ci    vec.emplace_back(CString("Style"), JSTaggedValue(static_cast<int>(GetStyle())));
56914514f5e3Sopenharmony_ci    vec.emplace_back(CString("Currency"), GetCurrency());
56924514f5e3Sopenharmony_ci    vec.emplace_back(CString("CurrencyDisplay"), JSTaggedValue(static_cast<int>(GetCurrencyDisplay())));
56934514f5e3Sopenharmony_ci    vec.emplace_back(CString("CurrencySign"), JSTaggedValue(static_cast<int>(GetCurrencySign())));
56944514f5e3Sopenharmony_ci    vec.emplace_back(CString("Unit"), GetUnit());
56954514f5e3Sopenharmony_ci    vec.emplace_back(CString("UnitDisplay"), JSTaggedValue(static_cast<int>(GetUnitDisplay())));
56964514f5e3Sopenharmony_ci    vec.emplace_back(CString("MinimumIntegerDigits"), GetMinimumIntegerDigits());
56974514f5e3Sopenharmony_ci    vec.emplace_back(CString("MinimumFractionDigits"), GetMinimumFractionDigits());
56984514f5e3Sopenharmony_ci    vec.emplace_back(CString("MaximumFractionDigits"), GetMaximumFractionDigits());
56994514f5e3Sopenharmony_ci    vec.emplace_back(CString("MinimumSignificantDigits"), GetMinimumSignificantDigits());
57004514f5e3Sopenharmony_ci    vec.emplace_back(CString("MaximumSignificantDigits"), GetMaximumSignificantDigits());
57014514f5e3Sopenharmony_ci    vec.emplace_back(CString("UseGrouping"), GetUseGrouping());
57024514f5e3Sopenharmony_ci    vec.emplace_back(CString("RoundingType"), JSTaggedValue(static_cast<int>(GetRoundingType())));
57034514f5e3Sopenharmony_ci    vec.emplace_back(CString("Notation"), JSTaggedValue(static_cast<int>(GetNotation())));
57044514f5e3Sopenharmony_ci    vec.emplace_back(CString("CompactDisplay"), JSTaggedValue(static_cast<int>(GetCompactDisplay())));
57054514f5e3Sopenharmony_ci    vec.emplace_back(CString("SignDisplay"), JSTaggedValue(static_cast<int>(GetSignDisplay())));
57064514f5e3Sopenharmony_ci    vec.emplace_back(CString("BoundFormat"), GetBoundFormat());
57074514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
57084514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57094514f5e3Sopenharmony_ci}
57104514f5e3Sopenharmony_ci
57114514f5e3Sopenharmony_civoid JSCollator::DumpForSnapshot(std::vector<Reference> &vec) const
57124514f5e3Sopenharmony_ci{
57134514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
57144514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 9;
57154514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
57164514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
57174514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
57184514f5e3Sopenharmony_ci    vec.emplace_back(CString("Collation"), GetCollation());
57194514f5e3Sopenharmony_ci    vec.emplace_back(CString("BoundCompare"), GetBoundCompare());
57204514f5e3Sopenharmony_ci    vec.emplace_back(CString("CaseFirst"), JSTaggedValue(static_cast<int>(GetCaseFirst())));
57214514f5e3Sopenharmony_ci    vec.emplace_back(CString("Usage"), JSTaggedValue(static_cast<int>(GetUsage())));
57224514f5e3Sopenharmony_ci    vec.emplace_back(CString("Sensitivity"), JSTaggedValue(static_cast<int>(GetSensitivity())));
57234514f5e3Sopenharmony_ci    vec.emplace_back(CString("IgnorePunctuation"), JSTaggedValue(GetIgnorePunctuation()));
57244514f5e3Sopenharmony_ci    vec.emplace_back(CString("Numeric"), JSTaggedValue(GetNumeric()));
57254514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57264514f5e3Sopenharmony_ci}
57274514f5e3Sopenharmony_ci
57284514f5e3Sopenharmony_civoid JSPluralRules::DumpForSnapshot(std::vector<Reference> &vec) const
57294514f5e3Sopenharmony_ci{
57304514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
57314514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 10;
57324514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
57334514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
57344514f5e3Sopenharmony_ci    vec.emplace_back(CString("MinimumIntegerDigits"), GetMinimumIntegerDigits());
57354514f5e3Sopenharmony_ci    vec.emplace_back(CString("MinimumFractionDigits"), GetMinimumFractionDigits());
57364514f5e3Sopenharmony_ci    vec.emplace_back(CString("MaximumFractionDigits"), GetMaximumFractionDigits());
57374514f5e3Sopenharmony_ci    vec.emplace_back(CString("MinimumSignificantDigits"), GetMinimumSignificantDigits());
57384514f5e3Sopenharmony_ci    vec.emplace_back(CString("MaximumSignificantDigits"), GetMaximumSignificantDigits());
57394514f5e3Sopenharmony_ci    vec.emplace_back(CString("RoundingType"), JSTaggedValue(static_cast<int>(GetRoundingType())));
57404514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuPR"), GetIcuPR());
57414514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuNF"), GetIcuNF());
57424514f5e3Sopenharmony_ci    vec.emplace_back(CString("Type"), JSTaggedValue(static_cast<int>(GetType())));
57434514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57444514f5e3Sopenharmony_ci}
57454514f5e3Sopenharmony_ci
57464514f5e3Sopenharmony_civoid JSDisplayNames::DumpForSnapshot(std::vector<Reference> &vec) const
57474514f5e3Sopenharmony_ci{
57484514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
57494514f5e3Sopenharmony_ci    vec.emplace_back(CString("Type"), JSTaggedValue(static_cast<int>(GetType())));
57504514f5e3Sopenharmony_ci    vec.emplace_back(CString("Style"), JSTaggedValue(static_cast<int>(GetStyle())));
57514514f5e3Sopenharmony_ci    vec.emplace_back(CString("Fallback"), JSTaggedValue(static_cast<int>(GetFallback())));
57524514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuLDN"), GetIcuLDN());
57534514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57544514f5e3Sopenharmony_ci}
57554514f5e3Sopenharmony_ci
57564514f5e3Sopenharmony_civoid JSSegmenter::DumpForSnapshot(std::vector<Reference> &vec) const
57574514f5e3Sopenharmony_ci{
57584514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
57594514f5e3Sopenharmony_ci    vec.emplace_back(CString("Granularity"), JSTaggedValue(static_cast<int>(GetGranularity())));
57604514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
57614514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57624514f5e3Sopenharmony_ci}
57634514f5e3Sopenharmony_ci
57644514f5e3Sopenharmony_civoid JSSegments::DumpForSnapshot(std::vector<Reference> &vec) const
57654514f5e3Sopenharmony_ci{
57664514f5e3Sopenharmony_ci    vec.emplace_back(CString("SegmentsString"), GetSegmentsString());
57674514f5e3Sopenharmony_ci    vec.emplace_back(CString("UnicodeString"), GetUnicodeString());
57684514f5e3Sopenharmony_ci    vec.emplace_back(CString("Granularity"), JSTaggedValue(static_cast<int>(GetGranularity())));
57694514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
57704514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57714514f5e3Sopenharmony_ci}
57724514f5e3Sopenharmony_ci
57734514f5e3Sopenharmony_civoid JSSegmentIterator::DumpForSnapshot(std::vector<Reference> &vec) const
57744514f5e3Sopenharmony_ci{
57754514f5e3Sopenharmony_ci    vec.emplace_back(CString("IteratedString"), GetIteratedString());
57764514f5e3Sopenharmony_ci    vec.emplace_back(CString("UnicodeString"), GetUnicodeString());
57774514f5e3Sopenharmony_ci    vec.emplace_back(CString("Granularity"), JSTaggedValue(static_cast<int>(GetGranularity())));
57784514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuField"), GetIcuField());
57794514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57804514f5e3Sopenharmony_ci}
57814514f5e3Sopenharmony_ci
57824514f5e3Sopenharmony_civoid JSListFormat::DumpForSnapshot(std::vector<Reference> &vec) const
57834514f5e3Sopenharmony_ci{
57844514f5e3Sopenharmony_ci    vec.emplace_back(CString("Locale"), GetLocale());
57854514f5e3Sopenharmony_ci    vec.emplace_back(CString("Type"), JSTaggedValue(static_cast<int>(GetType())));
57864514f5e3Sopenharmony_ci    vec.emplace_back(CString("Style"), JSTaggedValue(static_cast<int>(GetStyle())));
57874514f5e3Sopenharmony_ci    vec.emplace_back(CString("IcuLF"), GetIcuLF());
57884514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57894514f5e3Sopenharmony_ci}
57904514f5e3Sopenharmony_ci#endif
57914514f5e3Sopenharmony_civoid JSGeneratorObject::DumpForSnapshot(std::vector<Reference> &vec) const
57924514f5e3Sopenharmony_ci{
57934514f5e3Sopenharmony_ci    vec.emplace_back(CString("GeneratorContext"), GetGeneratorContext());
57944514f5e3Sopenharmony_ci    vec.emplace_back(CString("ResumeResult"), GetResumeResult());
57954514f5e3Sopenharmony_ci    vec.emplace_back(CString("GeneratorState"), JSTaggedValue(static_cast<int>(GetGeneratorState())));
57964514f5e3Sopenharmony_ci    vec.emplace_back(CString("ResumeMode"), JSTaggedValue(static_cast<int>(GetResumeMode())));
57974514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
57984514f5e3Sopenharmony_ci}
57994514f5e3Sopenharmony_ci
58004514f5e3Sopenharmony_civoid JSAsyncGeneratorObject::DumpForSnapshot(std::vector<Reference> &vec) const
58014514f5e3Sopenharmony_ci{
58024514f5e3Sopenharmony_ci    vec.emplace_back(CString("GeneratorContext"), GetGeneratorContext());
58034514f5e3Sopenharmony_ci    vec.emplace_back(CString("AsyncGeneratorQueue"), GetAsyncGeneratorQueue());
58044514f5e3Sopenharmony_ci    vec.emplace_back(CString("GeneratorBrand"), GetGeneratorBrand());
58054514f5e3Sopenharmony_ci    vec.emplace_back(CString("ResumeResult"), GetResumeResult());
58064514f5e3Sopenharmony_ci    vec.emplace_back(CString("AsyncGeneratorState"), JSTaggedValue(static_cast<int>(GetAsyncGeneratorState())));
58074514f5e3Sopenharmony_ci    vec.emplace_back(CString("ResumeMode"), JSTaggedValue(static_cast<int>(GetResumeMode())));
58084514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
58094514f5e3Sopenharmony_ci}
58104514f5e3Sopenharmony_ci
58114514f5e3Sopenharmony_civoid JSAsyncFuncObject::DumpForSnapshot(std::vector<Reference> &vec) const
58124514f5e3Sopenharmony_ci{
58134514f5e3Sopenharmony_ci    vec.emplace_back(CString("Promise"), GetPromise());
58144514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
58154514f5e3Sopenharmony_ci}
58164514f5e3Sopenharmony_ci
58174514f5e3Sopenharmony_civoid GeneratorContext::DumpForSnapshot(std::vector<Reference> &vec) const
58184514f5e3Sopenharmony_ci{
58194514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
58204514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 8;
58214514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
58224514f5e3Sopenharmony_ci    vec.emplace_back(CString("RegsArray"), GetRegsArray());
58234514f5e3Sopenharmony_ci    vec.emplace_back(CString("Method"), GetMethod());
58244514f5e3Sopenharmony_ci    vec.emplace_back(CString("This"), GetThis());
58254514f5e3Sopenharmony_ci    vec.emplace_back(CString("Acc"), GetAcc());
58264514f5e3Sopenharmony_ci    vec.emplace_back(CString("GeneratorObject"), GetGeneratorObject());
58274514f5e3Sopenharmony_ci    vec.emplace_back(CString("LexicalEnv"), GetLexicalEnv());
58284514f5e3Sopenharmony_ci    vec.emplace_back(CString("NRegs"),  JSTaggedValue(GetNRegs()));
58294514f5e3Sopenharmony_ci    vec.emplace_back(CString("BCOffset"),  JSTaggedValue(GetBCOffset()));
58304514f5e3Sopenharmony_ci}
58314514f5e3Sopenharmony_ci
58324514f5e3Sopenharmony_civoid ProtoChangeMarker::DumpForSnapshot(std::vector<Reference> &vec) const
58334514f5e3Sopenharmony_ci{
58344514f5e3Sopenharmony_ci    vec.emplace_back(CString("Promise"), JSTaggedValue(GetHasChanged()));
58354514f5e3Sopenharmony_ci}
58364514f5e3Sopenharmony_ci
58374514f5e3Sopenharmony_civoid MarkerCell::DumpForSnapshot(std::vector<Reference> &vec) const
58384514f5e3Sopenharmony_ci{
58394514f5e3Sopenharmony_ci    vec.emplace_back(CString("IsDetectorInvalid"), JSTaggedValue(GetIsDetectorInvalid()));
58404514f5e3Sopenharmony_ci}
58414514f5e3Sopenharmony_ci
58424514f5e3Sopenharmony_civoid ProtoChangeDetails::DumpForSnapshot(std::vector<Reference> &vec) const
58434514f5e3Sopenharmony_ci{
58444514f5e3Sopenharmony_ci    vec.emplace_back(CString("ChangeListener"), GetChangeListener());
58454514f5e3Sopenharmony_ci    vec.emplace_back(CString("RegisterIndex"), JSTaggedValue(GetRegisterIndex()));
58464514f5e3Sopenharmony_ci}
58474514f5e3Sopenharmony_ci
58484514f5e3Sopenharmony_civoid MachineCode::DumpForSnapshot(std::vector<Reference> &vec) const
58494514f5e3Sopenharmony_ci{
58504514f5e3Sopenharmony_ci    vec.emplace_back(CString("InstructionSizeInBytes"), JSTaggedValue(GetInstructionSizeInBytes()));
58514514f5e3Sopenharmony_ci}
58524514f5e3Sopenharmony_ci
58534514f5e3Sopenharmony_civoid TrackInfo::DumpForSnapshot(std::vector<Reference> &vec) const
58544514f5e3Sopenharmony_ci{
58554514f5e3Sopenharmony_ci    vec.emplace_back("ElementsKind", JSTaggedValue(static_cast<uint32_t>(GetElementsKind())));
58564514f5e3Sopenharmony_ci
58574514f5e3Sopenharmony_ci    vec.emplace_back(CString("CachedHClass"), GetCachedHClass());
58584514f5e3Sopenharmony_ci    vec.emplace_back(CString("CachedFunc"), GetCachedFunc());
58594514f5e3Sopenharmony_ci    vec.emplace_back(CString("ArrayLength"), JSTaggedValue(GetArrayLength()));
58604514f5e3Sopenharmony_ci}
58614514f5e3Sopenharmony_ci
58624514f5e3Sopenharmony_civoid ClassInfoExtractor::DumpForSnapshot(std::vector<Reference> &vec) const
58634514f5e3Sopenharmony_ci{
58644514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
58654514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 6;
58664514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
58674514f5e3Sopenharmony_ci    vec.emplace_back(CString("NonStaticKeys"), GetNonStaticKeys());
58684514f5e3Sopenharmony_ci    vec.emplace_back(CString("NonStaticProperties"), GetNonStaticProperties());
58694514f5e3Sopenharmony_ci    vec.emplace_back(CString("NonStaticElements"), GetNonStaticElements());
58704514f5e3Sopenharmony_ci    vec.emplace_back(CString("StaticKeys"), GetStaticKeys());
58714514f5e3Sopenharmony_ci    vec.emplace_back(CString("StaticProperties"), GetStaticProperties());
58724514f5e3Sopenharmony_ci    vec.emplace_back(CString("StaticElements"), GetStaticElements());
58734514f5e3Sopenharmony_ci    vec.emplace_back(CString("ConstructorMethod"), GetConstructorMethod());
58744514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
58754514f5e3Sopenharmony_ci}
58764514f5e3Sopenharmony_ci
58774514f5e3Sopenharmony_civoid SourceTextModule::DumpForSnapshot(std::vector<Reference> &vec) const
58784514f5e3Sopenharmony_ci{
58794514f5e3Sopenharmony_ci    // please update the NUM_OF_ITEMS if you change the items below
58804514f5e3Sopenharmony_ci    constexpr int16_t NUM_OF_ITEMS = 14;
58814514f5e3Sopenharmony_ci    vec.reserve(vec.size() + NUM_OF_ITEMS);
58824514f5e3Sopenharmony_ci    vec.emplace_back(CString("Environment"), GetEnvironment());
58834514f5e3Sopenharmony_ci    vec.emplace_back(CString("Namespace"), GetNamespace());
58844514f5e3Sopenharmony_ci    vec.emplace_back(CString("RequestedModules"), GetRequestedModules());
58854514f5e3Sopenharmony_ci    vec.emplace_back(CString("ImportEntries"), GetImportEntries());
58864514f5e3Sopenharmony_ci    vec.emplace_back(CString("LocalExportEntries"), GetLocalExportEntries());
58874514f5e3Sopenharmony_ci    vec.emplace_back(CString("IndirectExportEntries"), GetIndirectExportEntries());
58884514f5e3Sopenharmony_ci    vec.emplace_back(CString("StarExportEntries"), GetStarExportEntries());
58894514f5e3Sopenharmony_ci    vec.emplace_back(CString("Status"), JSTaggedValue(static_cast<int32_t>(GetStatus())));
58904514f5e3Sopenharmony_ci    vec.emplace_back(CString("EvaluationError"), JSTaggedValue(GetEvaluationError()));
58914514f5e3Sopenharmony_ci    vec.emplace_back(CString("DFSIndex"), JSTaggedValue(GetDFSIndex()));
58924514f5e3Sopenharmony_ci    vec.emplace_back(CString("DFSAncestorIndex"), JSTaggedValue(GetDFSAncestorIndex()));
58934514f5e3Sopenharmony_ci    vec.emplace_back(CString("NameDictionary"), GetNameDictionary());
58944514f5e3Sopenharmony_ci    vec.emplace_back(CString("CycleRoot"), GetCycleRoot());
58954514f5e3Sopenharmony_ci    vec.emplace_back(CString("TopLevelCapability"), GetTopLevelCapability());
58964514f5e3Sopenharmony_ci    vec.emplace_back(CString("AsyncParentModules"), GetAsyncParentModules());
58974514f5e3Sopenharmony_ci    vec.emplace_back(CString("SendableEnv"), GetSendableEnv());
58984514f5e3Sopenharmony_ci    vec.emplace_back(CString("HasTLA"), JSTaggedValue(GetHasTLA()));
58994514f5e3Sopenharmony_ci    vec.emplace_back(CString("AsyncEvaluatingOrdinal"), JSTaggedValue(GetAsyncEvaluatingOrdinal()));
59004514f5e3Sopenharmony_ci    vec.emplace_back(CString("PendingAsyncDependencies"), JSTaggedValue(GetPendingAsyncDependencies()));
59014514f5e3Sopenharmony_ci}
59024514f5e3Sopenharmony_ci
59034514f5e3Sopenharmony_civoid ImportEntry::DumpForSnapshot(std::vector<Reference> &vec) const
59044514f5e3Sopenharmony_ci{
59054514f5e3Sopenharmony_ci    vec.emplace_back(CString("ModuleRequest"), GetModuleRequest());
59064514f5e3Sopenharmony_ci    vec.emplace_back(CString("ImportName"), GetImportName());
59074514f5e3Sopenharmony_ci    vec.emplace_back(CString("LocalName"), GetLocalName());
59084514f5e3Sopenharmony_ci}
59094514f5e3Sopenharmony_ci
59104514f5e3Sopenharmony_civoid LocalExportEntry::DumpForSnapshot(std::vector<Reference> &vec) const
59114514f5e3Sopenharmony_ci{
59124514f5e3Sopenharmony_ci    vec.emplace_back(CString("ExportName"), GetExportName());
59134514f5e3Sopenharmony_ci    vec.emplace_back(CString("LocalName"), GetLocalName());
59144514f5e3Sopenharmony_ci}
59154514f5e3Sopenharmony_ci
59164514f5e3Sopenharmony_civoid IndirectExportEntry::DumpForSnapshot(std::vector<Reference> &vec) const
59174514f5e3Sopenharmony_ci{
59184514f5e3Sopenharmony_ci    vec.emplace_back(CString("ExportName"), GetExportName());
59194514f5e3Sopenharmony_ci    vec.emplace_back(CString("ModuleRequest"), GetModuleRequest());
59204514f5e3Sopenharmony_ci    vec.emplace_back(CString("ImportName"), GetImportName());
59214514f5e3Sopenharmony_ci}
59224514f5e3Sopenharmony_ci
59234514f5e3Sopenharmony_civoid StarExportEntry::DumpForSnapshot(std::vector<Reference> &vec) const
59244514f5e3Sopenharmony_ci{
59254514f5e3Sopenharmony_ci    vec.emplace_back(CString("ModuleRequest"), GetModuleRequest());
59264514f5e3Sopenharmony_ci}
59274514f5e3Sopenharmony_ci
59284514f5e3Sopenharmony_civoid ResolvedBinding::DumpForSnapshot(std::vector<Reference> &vec) const
59294514f5e3Sopenharmony_ci{
59304514f5e3Sopenharmony_ci    vec.emplace_back(CString("Module"), GetModule());
59314514f5e3Sopenharmony_ci    vec.emplace_back(CString("BindingName"), GetBindingName());
59324514f5e3Sopenharmony_ci}
59334514f5e3Sopenharmony_ci
59344514f5e3Sopenharmony_civoid ResolvedIndexBinding::DumpForSnapshot(std::vector<Reference> &vec) const
59354514f5e3Sopenharmony_ci{
59364514f5e3Sopenharmony_ci    vec.emplace_back(CString("Module"), GetModule());
59374514f5e3Sopenharmony_ci    vec.emplace_back(CString("Index"), JSTaggedValue(GetIndex()));
59384514f5e3Sopenharmony_ci}
59394514f5e3Sopenharmony_ci
59404514f5e3Sopenharmony_civoid ResolvedRecordIndexBinding::DumpForSnapshot(std::vector<Reference> &vec) const
59414514f5e3Sopenharmony_ci{
59424514f5e3Sopenharmony_ci    vec.emplace_back(CString("ModuleRecord"), GetModuleRecord());
59434514f5e3Sopenharmony_ci    vec.emplace_back(CString("AbcFileName"), GetAbcFileName());
59444514f5e3Sopenharmony_ci    vec.emplace_back(CString("Index"), JSTaggedValue(GetIndex()));
59454514f5e3Sopenharmony_ci}
59464514f5e3Sopenharmony_ci
59474514f5e3Sopenharmony_civoid ResolvedRecordBinding::DumpForSnapshot(std::vector<Reference> &vec) const
59484514f5e3Sopenharmony_ci{
59494514f5e3Sopenharmony_ci    vec.emplace_back(CString("ModuleRecord"), GetModuleRecord());
59504514f5e3Sopenharmony_ci    vec.emplace_back(CString("BindingName"), GetBindingName());
59514514f5e3Sopenharmony_ci}
59524514f5e3Sopenharmony_ci
59534514f5e3Sopenharmony_civoid ModuleNamespace::DumpForSnapshot(std::vector<Reference> &vec) const
59544514f5e3Sopenharmony_ci{
59554514f5e3Sopenharmony_ci    vec.emplace_back(CString("Module"), GetModule());
59564514f5e3Sopenharmony_ci    vec.emplace_back(CString("Exports"), GetExports());
59574514f5e3Sopenharmony_ci    vec.emplace_back(CString("DeregisterProcession"), GetDeregisterProcession());
59584514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
59594514f5e3Sopenharmony_ci}
59604514f5e3Sopenharmony_ci
59614514f5e3Sopenharmony_civoid NativeModuleFailureInfo::DumpForSnapshot(std::vector<Reference> &vec) const
59624514f5e3Sopenharmony_ci{
59634514f5e3Sopenharmony_ci    vec.emplace_back(CString("ArkNativeModuleFailureInfo"), GetArkNativeModuleFailureInfo());
59644514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
59654514f5e3Sopenharmony_ci}
59664514f5e3Sopenharmony_ci
59674514f5e3Sopenharmony_civoid CjsModule::DumpForSnapshot(std::vector<Reference> &vec) const
59684514f5e3Sopenharmony_ci{
59694514f5e3Sopenharmony_ci    vec.emplace_back(CString("Id"), GetId());
59704514f5e3Sopenharmony_ci    vec.emplace_back(CString("Path"), GetPath());
59714514f5e3Sopenharmony_ci    vec.emplace_back(CString("Exports"), GetExports());
59724514f5e3Sopenharmony_ci    vec.emplace_back(CString("Filename"), GetFilename());
59734514f5e3Sopenharmony_ci    vec.emplace_back(CString("BitField"), JSTaggedValue(GetBitField()));
59744514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
59754514f5e3Sopenharmony_ci}
59764514f5e3Sopenharmony_ci
59774514f5e3Sopenharmony_civoid CjsExports::DumpForSnapshot(std::vector<Reference> &vec) const
59784514f5e3Sopenharmony_ci{
59794514f5e3Sopenharmony_ci    vec.emplace_back(CString("Exports"), GetExports());
59804514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
59814514f5e3Sopenharmony_ci}
59824514f5e3Sopenharmony_ci
59834514f5e3Sopenharmony_civoid CjsRequire::DumpForSnapshot(std::vector<Reference> &vec) const
59844514f5e3Sopenharmony_ci{
59854514f5e3Sopenharmony_ci    vec.emplace_back(CString("Cache"), GetCache());
59864514f5e3Sopenharmony_ci    vec.emplace_back(CString("Parent"), GetParent());
59874514f5e3Sopenharmony_ci    JSObject::DumpForSnapshot(vec);
59884514f5e3Sopenharmony_ci}
59894514f5e3Sopenharmony_ci
59904514f5e3Sopenharmony_civoid ClassLiteral::DumpForSnapshot(std::vector<Reference> &vec) const
59914514f5e3Sopenharmony_ci{
59924514f5e3Sopenharmony_ci    vec.emplace_back(CString("Array"), GetArray());
59934514f5e3Sopenharmony_ci    vec.emplace_back(CString("IsAOTUsed"), JSTaggedValue(GetIsAOTUsed()));
59944514f5e3Sopenharmony_ci    if (!GetArray().IsUndefined()) {
59954514f5e3Sopenharmony_ci        DumpArrayClass(TaggedArray::Cast(GetArray().GetTaggedObject()), vec);
59964514f5e3Sopenharmony_ci    }
59974514f5e3Sopenharmony_ci}
59984514f5e3Sopenharmony_ci}  // namespace panda::ecmascript
5999