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#ifndef ECMASCRIPT_GLOBAL_ENV_CONSTANTS_H 174514f5e3Sopenharmony_ci#define ECMASCRIPT_GLOBAL_ENV_CONSTANTS_H 184514f5e3Sopenharmony_ci 194514f5e3Sopenharmony_ci#include <cstdint> 204514f5e3Sopenharmony_ci 214514f5e3Sopenharmony_ci#include "ecmascript/js_tagged_value.h" 224514f5e3Sopenharmony_ci#include "ecmascript/mem/visitor.h" 234514f5e3Sopenharmony_ci#include "libpandabase/macros.h" 244514f5e3Sopenharmony_ci 254514f5e3Sopenharmony_cinamespace panda::ecmascript { 264514f5e3Sopenharmony_ci// Forward Declaration 274514f5e3Sopenharmony_citemplate<typename T> 284514f5e3Sopenharmony_ciclass JSHandle; 294514f5e3Sopenharmony_ciclass JSHClass; 304514f5e3Sopenharmony_ciclass JSThread; 314514f5e3Sopenharmony_ciclass ObjectFactory; 324514f5e3Sopenharmony_ci 334514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 344514f5e3Sopenharmony_ci#define SHARED_GLOBAL_ENV_CONSTANT_CLASS(V) \ 354514f5e3Sopenharmony_ci /* GC Root */ \ 364514f5e3Sopenharmony_ci V(JSTaggedValue, HClassClass, HCLASS_CLASS_INDEX, ecma_roots_class) \ 374514f5e3Sopenharmony_ci V(JSTaggedValue, FreeObjectWithNoneFieldClass, FREE_OBJECT_WITH_NONE_FIELD_CLASS_INDEX, ecma_roots_class) \ 384514f5e3Sopenharmony_ci V(JSTaggedValue, FreeObjectWithOneFieldClass, FREE_OBJECT_WITH_ONE_FIELD_CLASS_INDEX, ecma_roots_class) \ 394514f5e3Sopenharmony_ci V(JSTaggedValue, FreeObjectWithTwoFieldClass, FREE_OBJECT_WITH_TWO_FIELD_CLASS_INDEX, ecma_roots_class) \ 404514f5e3Sopenharmony_ci V(JSTaggedValue, LineStringClass, LINE_STRING_CLASS_INDEX, ecma_roots_class) \ 414514f5e3Sopenharmony_ci V(JSTaggedValue, SlicedStringClass, SLICED_STRING_CLASS_INDEX, ecma_roots_class) \ 424514f5e3Sopenharmony_ci V(JSTaggedValue, ConstantStringClass, CONSTANT_STRING_CLASS_INDEX, ecma_roots_class) \ 434514f5e3Sopenharmony_ci V(JSTaggedValue, TreeStringClass, TREE_STRING_CLASS_INDEX, ecma_roots_class) \ 444514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayClass, ARRAY_CLASS_INDEX, ecma_roots_class) \ 454514f5e3Sopenharmony_ci V(JSTaggedValue, ByteArrayClass, BYTE_ARRAY_CLASS_INDEX, ecma_roots_class) \ 464514f5e3Sopenharmony_ci V(JSTaggedValue, ConstantPoolClass, CONSTANT_POOL_CLASS_INDEX, ecma_roots_class) \ 474514f5e3Sopenharmony_ci V(JSTaggedValue, ProfileTypeInfoClass, PROFILE_TYPE_INFO_CLASS_INDEX, ecma_roots_class) \ 484514f5e3Sopenharmony_ci V(JSTaggedValue, DictionaryClass, DICTIONARY_CLASS_INDEX, ecma_roots_class) \ 494514f5e3Sopenharmony_ci V(JSTaggedValue, COWArrayClass, COW_ARRAY_CLASS_INDEX, ecma_roots_class) \ 504514f5e3Sopenharmony_ci V(JSTaggedValue, MutantTaggedArrayClass, MUTANT_TAGGED_ARRAY_CLASS_INDEX, ecma_roots_class) \ 514514f5e3Sopenharmony_ci V(JSTaggedValue, COWMutantTaggedArrayClass, COW_MUTANT_TAGGED_ARRAY_CLASS_INDEX, ecma_roots_class) \ 524514f5e3Sopenharmony_ci V(JSTaggedValue, BigIntClass, BIGINT_CLASS_INDEX, ecma_roots_class) \ 534514f5e3Sopenharmony_ci V(JSTaggedValue, JSNativePointerClass, JS_NATIVE_POINTER_CLASS_INDEX, ecma_roots_class) \ 544514f5e3Sopenharmony_ci V(JSTaggedValue, SJSNativePointerClass, SENDABLE_JS_NATIVE_POINTER_CLASS_INDEX, ecma_roots_class) \ 554514f5e3Sopenharmony_ci V(JSTaggedValue, EnvClass, ENV_CLASS_INDEX, ecma_roots_class) \ 564514f5e3Sopenharmony_ci V(JSTaggedValue, SymbolClass, SYMBOL_CLASS_INDEX, ecma_roots_class) \ 574514f5e3Sopenharmony_ci V(JSTaggedValue, AccessorDataClass, ACCESSOR_DATA_CLASS_INDEX, ecma_roots_class) \ 584514f5e3Sopenharmony_ci V(JSTaggedValue, InternalAccessorClass, INTERNAL_ACCESSOR_CLASS_INDEX, ecma_roots_class) \ 594514f5e3Sopenharmony_ci V(JSTaggedValue, CompletionRecordClass, COMPLETION_RECORD_CLASS_INDEX, ecma_roots_class) \ 604514f5e3Sopenharmony_ci V(JSTaggedValue, GeneratorContextClass, GENERATOR_CONTEST_INDEX, ecma_roots_class) \ 614514f5e3Sopenharmony_ci V(JSTaggedValue, AsyncGeneratorRequestRecordClass, ASYNC_GENERATOR_REQUEST_CLASS_INDEX, ecma_roots_class) \ 624514f5e3Sopenharmony_ci V(JSTaggedValue, AsyncIteratorRecordClass, ASYNC_ITERATOR_RECORD_CLASS_INDEX, ecma_roots_class) \ 634514f5e3Sopenharmony_ci V(JSTaggedValue, CapabilityRecordClass, CAPABILITY_RECORD_CLASS_INDEX, ecma_roots_class) \ 644514f5e3Sopenharmony_ci V(JSTaggedValue, ReactionsRecordClass, REACTIONS_RECORD_CLASS_INDEX, ecma_roots_class) \ 654514f5e3Sopenharmony_ci V(JSTaggedValue, PromiseIteratorRecordClass, PROMISE_ITERATOR_RECORD_CLASS_INDEX, ecma_roots_class) \ 664514f5e3Sopenharmony_ci V(JSTaggedValue, PromiseRecordClass, PROMISE_RECORD_CLASS_INDEX, ecma_roots_class) \ 674514f5e3Sopenharmony_ci V(JSTaggedValue, PromiseResolvingFunctionsRecordClass, PROMISE_RESOLVING_FUNCTIONS_CLASS_INDEX, ecma_roots_class) \ 684514f5e3Sopenharmony_ci V(JSTaggedValue, MicroJobQueueClass, MICRO_JOB_QUEUE_CLASS_INDEX, ecma_roots_class) \ 694514f5e3Sopenharmony_ci V(JSTaggedValue, PendingJobClass, PENDING_JOB_CLASS_INDEX, ecma_roots_class) \ 704514f5e3Sopenharmony_ci V(JSTaggedValue, ProtoChangeMarkerClass, PROTO_CHANGE_MARKER_CLASS_INDEX, ecma_roots_class) \ 714514f5e3Sopenharmony_ci V(JSTaggedValue, ProtoChangeDetailsClass, PROTO_CHANGE_DETAILS_CLASS_INDEX, ecma_roots_class) \ 724514f5e3Sopenharmony_ci V(JSTaggedValue, MarkerCellClass, MARKER_CELL_CLASS_INDEX, ecma_roots_class) \ 734514f5e3Sopenharmony_ci V(JSTaggedValue, TrackInfoClass, TRACK_INFO_CLASS_INDEX, ecma_roots_class) \ 744514f5e3Sopenharmony_ci V(JSTaggedValue, PrototypeHandlerClass, PROTOTYPE_HANDLER_CLASS_INDEX, ecma_roots_class) \ 754514f5e3Sopenharmony_ci V(JSTaggedValue, TransitionHandlerClass, TRANSITION_HANDLER_CLASS_INDEX, ecma_roots_class) \ 764514f5e3Sopenharmony_ci V(JSTaggedValue, TransWithProtoHandlerClass, TRANS_WITH_PROTO_HANDLER_CLASS_INDEX, ecma_roots_class) \ 774514f5e3Sopenharmony_ci V(JSTaggedValue, StoreTSHandlerClass, STORE_TS_HANDLER_CLASS_INDEX, ecma_roots_class) \ 784514f5e3Sopenharmony_ci V(JSTaggedValue, PropertyBoxClass, PROPERTY_BOX_CLASS_INDEX, ecma_roots_class) \ 794514f5e3Sopenharmony_ci V(JSTaggedValue, ProgramClass, PROGRAM_CLASS_INDEX, ecma_roots_class) \ 804514f5e3Sopenharmony_ci V(JSTaggedValue, ImportEntryClass, IMPORT_ENTRY_CLASS_INDEX, ecma_roots_class) \ 814514f5e3Sopenharmony_ci V(JSTaggedValue, LocalExportEntryClass, LOCAL_EXPORT_ENTRY_CLASS_INDEX, ecma_roots_class) \ 824514f5e3Sopenharmony_ci V(JSTaggedValue, IndirectExportEntryClass, INDIRECT_EXPORT_ENTRY_CLASS_INDEX, ecma_roots_class) \ 834514f5e3Sopenharmony_ci V(JSTaggedValue, StarExportEntryClass, STAR_EXPORT_ENTRY_CLASS_INDEX, ecma_roots_class) \ 844514f5e3Sopenharmony_ci V(JSTaggedValue, SourceTextModuleClass, SOURCE_TEXT_MODULE_CLASS_INDEX, ecma_roots_class) \ 854514f5e3Sopenharmony_ci V(JSTaggedValue, ResolvedBindingClass, RESOLVED_BINDING_CLASS_INDEX, ecma_roots_class) \ 864514f5e3Sopenharmony_ci V(JSTaggedValue, ResolvedIndexBindingClass, RESOLVED_INDEX_BINDING_CLASS_INDEX, ecma_roots_class) \ 874514f5e3Sopenharmony_ci V(JSTaggedValue, MachineCodeClass, MACHINE_CODE_CLASS_INDEX, ecma_roots_class) \ 884514f5e3Sopenharmony_ci V(JSTaggedValue, ClassInfoExtractorHClass, CLASS_INFO_EXTRACTOR_HCLASS_INDEX, ecma_roots_class) \ 894514f5e3Sopenharmony_ci V(JSTaggedValue, CellRecordClass, CELL_RECORD_CLASS_INDEX, ecma_roots_class) \ 904514f5e3Sopenharmony_ci V(JSTaggedValue, AOTLiteralInfoClass, AOT_LITERAL_INFO_CLASS_INDEX, ecma_roots_class) \ 914514f5e3Sopenharmony_ci V(JSTaggedValue, MethodClass, METHOD_CLASS_INDEX, ecma_roots_class) \ 924514f5e3Sopenharmony_ci V(JSTaggedValue, LinkedNode, LINKED_NODE_CLASS_INDEX, ecma_roots_class) \ 934514f5e3Sopenharmony_ci V(JSTaggedValue, RBTreeNode, RB_TREENODE_CLASS_INDEX, ecma_roots_class) \ 944514f5e3Sopenharmony_ci V(JSTaggedValue, ClassLiteralClass, CLASS_LITERAL_HCLASS_INDEX, ecma_roots_class) \ 954514f5e3Sopenharmony_ci V(JSTaggedValue, ExtraProfileTypeInfoClass, EXTRA_PROFILE_TYPE_INFO_CLASS_INDEX, ecma_roots_class) \ 964514f5e3Sopenharmony_ci V(JSTaggedValue, ProfileTypeInfoCell0Class, PROFILE_TYPE_INFO_CELL_0_CLASS_INDEX, ecma_roots_class) \ 974514f5e3Sopenharmony_ci V(JSTaggedValue, ProfileTypeInfoCell1Class, PROFILE_TYPE_INFO_CELL_1_CLASS_INDEX, ecma_roots_class) \ 984514f5e3Sopenharmony_ci V(JSTaggedValue, ProfileTypeInfoCellNClass, PROFILE_TYPE_INFO_CELL_N_CLASS_INDEX, ecma_roots_class) \ 994514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionTemplateClass, FUNCTION_TEMPLATE_CLASS_INDEX, ecma_roots_class) \ 1004514f5e3Sopenharmony_ci V(JSTaggedValue, VTableClass, VTABLE_CLASS_INDEX, ecma_roots_class) \ 1014514f5e3Sopenharmony_ci V(JSTaggedValue, ResolvedRecordIndexBindingClass, RESOLVED_RECORD_INEDX_BINDING_CLASS_INDEX, ecma_roots_class) \ 1024514f5e3Sopenharmony_ci V(JSTaggedValue, ResolvedRecordBindingClass, RESOLVED_RECORD_BINDING_CLASS_INDEX, ecma_roots_class) \ 1034514f5e3Sopenharmony_ci V(JSTaggedValue, SendableEnvClass, SENDABLE_ENV_CLASS_INDEX, ecma_roots_class) \ 1044514f5e3Sopenharmony_ci 1054514f5e3Sopenharmony_ci#define GLOBAL_ENV_CONSTANT_CLASS(V) \ 1064514f5e3Sopenharmony_ci V(JSTaggedValue, JSProxyCallableClass, JS_PROXY_CALLABLE_CLASS_INDEX, ecma_roots_class) \ 1074514f5e3Sopenharmony_ci V(JSTaggedValue, JSProxyConstructClass, JS_PROXY_CONSTRUCT_CLASS_INDEX, ecma_roots_class) \ 1084514f5e3Sopenharmony_ci V(JSTaggedValue, JSRealmClass, JS_REALM_CLASS_INDEX, ecma_roots_class) \ 1094514f5e3Sopenharmony_ci V(JSTaggedValue, JSRegExpClass, JS_REGEXP_CLASS_INDEX, ecma_roots_class) \ 1104514f5e3Sopenharmony_ci V(JSTaggedValue, JSProxyOrdinaryClass, JS_PROXY_ORDINARY_CLASS_INDEX, ecma_roots_class) \ 1114514f5e3Sopenharmony_ci V(JSTaggedValue, JSSetIteratorClass, JS_SET_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1124514f5e3Sopenharmony_ci V(JSTaggedValue, JSSharedSetIteratorClass, JS_SHARED_SET_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1134514f5e3Sopenharmony_ci V(JSTaggedValue, JSRegExpIteratorClass, JS_REGEXP_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1144514f5e3Sopenharmony_ci V(JSTaggedValue, JSMapIteratorClass, JS_MAP_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1154514f5e3Sopenharmony_ci V(JSTaggedValue, JSSharedMapIteratorClass, JS_SHARED_MAP_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1164514f5e3Sopenharmony_ci V(JSTaggedValue, JSArrayIteratorClass, JS_ARRAY_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1174514f5e3Sopenharmony_ci V(JSTaggedValue, JSSharedArrayIteratorClass, JS_SHARED_ARRAY_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1184514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIArrayListIteratorClass, JS_API_ARRAYLIST_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1194514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIDequeIteratorClass, JS_API_DEQUE_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1204514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPILightWeightMapIteratorClass, JS_API_LIGHTWEIGHTMAP_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1214514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPILightWeightSetIteratorClass, JS_API_LIGHTWEIGHTSET_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1224514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPILinkedListIteratorClass, JS_API_LINKED_LIST_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1234514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIListIteratorClass, JS_API_LIST_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1244514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIPlainArrayIteratorClass, JS_API_PLAIN_ARRAY_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1254514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIQueueIteratorClass, JS_API_QUEUE_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1264514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIStackIteratorClass, JS_API_STACK_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1274514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIVectorIteratorClass, JS_API_VECTOR_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1284514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIBitVectorIteratorClass, JS_API_BITVECTOR_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1294514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIHashMapIteratorClass, JS_API_HASH_MAP_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1304514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIHashSetIteratorClass, JS_API_HASH_SET_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1314514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPITreeMapIteratorClass, JS_API_TREE_MAP_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1324514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPITreeSetIteratorClass, JS_API_TREE_SET_ITERATOR_CLASS_INDEX, ecma_roots_class) \ 1334514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIIteratorFuncHClass, JS_API_ITERATOR_FUNC_CLASS_INDEX, ecma_roots_class) \ 1344514f5e3Sopenharmony_ci V(JSTaggedValue, JSAPIAsyncIteratorFuncHClass, JS_API_ASYNCITERATOR_FUNC_CLASS_INDEX, ecma_roots_class) \ 1354514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectClass, OBJECT_HCLASS_INDEX, initial_object_hclass) \ 1364514f5e3Sopenharmony_ci V(JSTaggedValue, IteratorResultClass, ITERATOR_RESULT_CLASS, ecma_roots_class) \ 1374514f5e3Sopenharmony_ci V(JSTaggedValue, ClassPrototypeClass, CLASS_PROTOTYPE_HCLASS_INDEX, ecma_roots_class) \ 1384514f5e3Sopenharmony_ci V(JSTaggedValue, ClassConstructorClass, CLASS_CONSTRUCTOR_HCLASS_INDEX, ecma_roots_class) \ 1394514f5e3Sopenharmony_ci V(JSTaggedValue, ElementNoneProtoClass, ELEMENT_NONE_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1404514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleProtoClass, ELEMENT_HOLE_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1414514f5e3Sopenharmony_ci V(JSTaggedValue, ElementIntProtoClass, ELEMENT_INT_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1424514f5e3Sopenharmony_ci V(JSTaggedValue, ElementNumberProtoClass, ELEMENT_NUMBER_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1434514f5e3Sopenharmony_ci V(JSTaggedValue, ElementStringProtoClass, ELEMENT_STRING_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1444514f5e3Sopenharmony_ci V(JSTaggedValue, ElementObjectProtoClass, ELEMENT_OBJECT_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1454514f5e3Sopenharmony_ci V(JSTaggedValue, ElementTaggedProtoClass, ELEMENT_TAGGED_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1464514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleIntProtoClass, ELEMENT_HOLE_INT_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1474514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleNumberProtoClass, ELEMENT_HOLE_NUMBER_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1484514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleStringProtoClass, ELEMENT_HOLE_STRING_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1494514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleObjectProtoClass, ELEMENT_HOLE_OBJECT_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1504514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleTaggedProtoClass, ELEMENT_HOLE_TAGGED_PROTO_HCLASS_INDEX, ecma_roots_class) \ 1514514f5e3Sopenharmony_ci V(JSTaggedValue, ElementNoneClass, ELEMENT_NONE_HCLASS_INDEX, ecma_roots_class) \ 1524514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleClass, ELEMENT_HOLE_HCLASS_INDEX, ecma_roots_class) \ 1534514f5e3Sopenharmony_ci V(JSTaggedValue, ElementIntClass, ELEMENT_INT_HCLASS_INDEX, ecma_roots_class) \ 1544514f5e3Sopenharmony_ci V(JSTaggedValue, ElementNumberClass, ELEMENT_NUMBER_HCLASS_INDEX, ecma_roots_class) \ 1554514f5e3Sopenharmony_ci V(JSTaggedValue, ElementStringClass, ELEMENT_STRING_HCLASS_INDEX, ecma_roots_class) \ 1564514f5e3Sopenharmony_ci V(JSTaggedValue, ElementObjectClass, ELEMENT_OBJECT_HCLASS_INDEX, ecma_roots_class) \ 1574514f5e3Sopenharmony_ci V(JSTaggedValue, ElementTaggedClass, ELEMENT_TAGGED_HCLASS_INDEX, ecma_roots_class) \ 1584514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleIntClass, ELEMENT_HOLE_INT_HCLASS_INDEX, ecma_roots_class) \ 1594514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleNumberClass, ELEMENT_HOLE_NUMBER_HCLASS_INDEX, ecma_roots_class) \ 1604514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleStringClass, ELEMENT_HOLE_STRING_HCLASS_INDEX, ecma_roots_class) \ 1614514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleObjectClass, ELEMENT_HOLE_OBJECT_HCLASS_INDEX, ecma_roots_class) \ 1624514f5e3Sopenharmony_ci V(JSTaggedValue, ElementHoleTaggedClass, ELEMENT_HOLE_TAGGED_HCLASS_INDEX, ecma_roots_class) 1634514f5e3Sopenharmony_ci 1644514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 1654514f5e3Sopenharmony_ci#define GLOBAL_ENV_CONSTANT_SPECIAL(V) \ 1664514f5e3Sopenharmony_ci V(JSTaggedValue, EmptyLayoutInfo, EMPTY_LAYOUT_INFO_OBJECT_INDEX, ecma_roots_special) \ 1674514f5e3Sopenharmony_ci V(JSTaggedValue, DefaultSupers, DEFAULT_SUPERS_INDEX, ecma_roots_special) \ 1684514f5e3Sopenharmony_ci V(JSTaggedValue, EmptyTaggedQueue, EMPTY_TAGGED_QUEUE_OBJECT_INDEX, ecma_roots_special) \ 1694514f5e3Sopenharmony_ci V(JSTaggedValue, UndefinedCompletionRecord, UNDEFINED_COMPLRTION_RECORD_INDEX, ecma_roots_special) 1704514f5e3Sopenharmony_ci 1714514f5e3Sopenharmony_ci// Use for builtins inlining 1724514f5e3Sopenharmony_ci#define GLOBAL_ENV_INLINED_BUILTINS(V) \ 1734514f5e3Sopenharmony_ci V(JSTaggedValue, MathSqrt, MATH_SQRT_INDEX, ecma_roots_builtins) \ 1744514f5e3Sopenharmony_ci V(JSTaggedValue, MathAcos, MATH_ACOS_INDEX, ecma_roots_builtins) \ 1754514f5e3Sopenharmony_ci V(JSTaggedValue, MathAcosh, MATH_ACOSH_INDEX, ecma_roots_builtins) \ 1764514f5e3Sopenharmony_ci V(JSTaggedValue, MathAsin, MATH_ASIN_INDEX, ecma_roots_builtins) \ 1774514f5e3Sopenharmony_ci V(JSTaggedValue, MathAsinh, MATH_ASINH_INDEX, ecma_roots_builtins) \ 1784514f5e3Sopenharmony_ci V(JSTaggedValue, MathAtan, MATH_ATAN_INDEX, ecma_roots_builtins) \ 1794514f5e3Sopenharmony_ci V(JSTaggedValue, MathAtan2, MATH_ATAN2_INDEX, ecma_roots_builtins) \ 1804514f5e3Sopenharmony_ci V(JSTaggedValue, MathAtanh, MATH_ATANH_INDEX, ecma_roots_builtins) \ 1814514f5e3Sopenharmony_ci V(JSTaggedValue, MathCos, MATH_COS_INDEX, ecma_roots_builtins) \ 1824514f5e3Sopenharmony_ci V(JSTaggedValue, MathCosh, MATH_COSH_INDEX, ecma_roots_builtins) \ 1834514f5e3Sopenharmony_ci V(JSTaggedValue, MathSign, MATH_SIGN_INDEX, ecma_roots_builtins) \ 1844514f5e3Sopenharmony_ci V(JSTaggedValue, MathSin, MATH_SIN_INDEX, ecma_roots_builtins) \ 1854514f5e3Sopenharmony_ci V(JSTaggedValue, MathSinh, MATH_SINH_INDEX, ecma_roots_builtins) \ 1864514f5e3Sopenharmony_ci V(JSTaggedValue, MathTan, MATH_TAN_INDEX, ecma_roots_builtins) \ 1874514f5e3Sopenharmony_ci V(JSTaggedValue, MathTanh, MATH_TANH_INDEX, ecma_roots_builtins) \ 1884514f5e3Sopenharmony_ci V(JSTaggedValue, MathTrunc, MATH_TRUNC_INDEX, ecma_roots_builtins) \ 1894514f5e3Sopenharmony_ci V(JSTaggedValue, MathLog, MATH_LOG_INDEX, ecma_roots_builtins) \ 1904514f5e3Sopenharmony_ci V(JSTaggedValue, MathLog2, MATH_LOG2_INDEX, ecma_roots_builtins) \ 1914514f5e3Sopenharmony_ci V(JSTaggedValue, MathLog10, MATH_LOG10_INDEX, ecma_roots_builtins) \ 1924514f5e3Sopenharmony_ci V(JSTaggedValue, MathLog1p, MATH_LOG1P_INDEX, ecma_roots_builtins) \ 1934514f5e3Sopenharmony_ci V(JSTaggedValue, MathExp, MATH_EXP_INDEX, ecma_roots_builtins) \ 1944514f5e3Sopenharmony_ci V(JSTaggedValue, MathExpm1, MATH_EXPM1_INDEX, ecma_roots_builtins) \ 1954514f5e3Sopenharmony_ci V(JSTaggedValue, MathClz32, MATH_CLZ32_INDEX, ecma_roots_builtins) \ 1964514f5e3Sopenharmony_ci V(JSTaggedValue, MathAbs, MATH_ABS_INDEX, ecma_roots_builtins) \ 1974514f5e3Sopenharmony_ci V(JSTaggedValue, MathPow, MATH_POW_INDEX, ecma_roots_builtins) \ 1984514f5e3Sopenharmony_ci V(JSTaggedValue, MathCbrt, MATH_CBRT_INDEX, ecma_roots_builtins) \ 1994514f5e3Sopenharmony_ci V(JSTaggedValue, MathMin, MATH_MIN_INDEX, ecma_roots_builtins) \ 2004514f5e3Sopenharmony_ci V(JSTaggedValue, MathMax, MATH_MAX_INDEX, ecma_roots_builtins) \ 2014514f5e3Sopenharmony_ci V(JSTaggedValue, MathRound, MATH_ROUND_INDEX, ecma_roots_builtins) \ 2024514f5e3Sopenharmony_ci V(JSTaggedValue, MathFRound, MATH_FROUND_INDEX, ecma_roots_builtins) \ 2034514f5e3Sopenharmony_ci V(JSTaggedValue, MathCeil, MATH_CEIL_INDEX, ecma_roots_builtins) \ 2044514f5e3Sopenharmony_ci V(JSTaggedValue, MathFloor, MATH_FLOOR_INDEX, ecma_roots_builtins) \ 2054514f5e3Sopenharmony_ci V(JSTaggedValue, MathImul, MATH_IMUL_INDEX, ecma_roots_builtins) \ 2064514f5e3Sopenharmony_ci V(JSTaggedValue, BigIntAsIntN, BIGINT_AS_INTN_INDEX, ecma_roots_builtins) \ 2074514f5e3Sopenharmony_ci V(JSTaggedValue, BigIntAsUintN, BIGINT_AS_UINTN_INDEX, ecma_roots_builtins) \ 2084514f5e3Sopenharmony_ci V(JSTaggedValue, GlobalIsFinite, GLOBAL_IS_FINITE_INDEX, ecma_roots_builtins) \ 2094514f5e3Sopenharmony_ci V(JSTaggedValue, GlobalIsNan, GLOBAL_IS_NAN_INDEX, ecma_roots_builtins) \ 2104514f5e3Sopenharmony_ci V(JSTaggedValue, MapGet, MAP_GET_INDEX, ecma_roots_builtins) \ 2114514f5e3Sopenharmony_ci V(JSTaggedValue, MapHas, MAP_HAS_INDEX, ecma_roots_builtins) \ 2124514f5e3Sopenharmony_ci V(JSTaggedValue, MapKeys, MAP_KEYS_INDEX, ecma_roots_builtins) \ 2134514f5e3Sopenharmony_ci V(JSTaggedValue, MapValues, MAP_VALUES_INDEX, ecma_roots_builtins) \ 2144514f5e3Sopenharmony_ci V(JSTaggedValue, MapEntries, MAP_ENTRIES_INDEX, ecma_roots_builtins) \ 2154514f5e3Sopenharmony_ci V(JSTaggedValue, SetHas, SET_HAS_INDEX, ecma_roots_builtins) \ 2164514f5e3Sopenharmony_ci V(JSTaggedValue, MapDelete, MAP_DELETE_INDEX, ecma_roots_builtins) \ 2174514f5e3Sopenharmony_ci V(JSTaggedValue, SetDelete, SET_DELETE_INDEX, ecma_roots_builtins) \ 2184514f5e3Sopenharmony_ci V(JSTaggedValue, SetValues, SET_VALUES_INDEX, ecma_roots_builtins) \ 2194514f5e3Sopenharmony_ci V(JSTaggedValue, SetEntries, SET_ENTRIES_INDEX, ecma_roots_builtins) \ 2204514f5e3Sopenharmony_ci V(JSTaggedValue, MapClear, MAP_CLEAR_INDEX, ecma_roots_builtins) \ 2214514f5e3Sopenharmony_ci V(JSTaggedValue, SetClear, SET_CLEAR_INDEX, ecma_roots_builtins) \ 2224514f5e3Sopenharmony_ci V(JSTaggedValue, SetAdd, SET_ADD_INDEX, ecma_roots_builtins) \ 2234514f5e3Sopenharmony_ci V(JSTaggedValue, LocaleCompareFunction, LOCALE_COMPARE_FUNCTION_INDEX, ecma_roots_builtins) \ 2244514f5e3Sopenharmony_ci V(JSTaggedValue, ArraySortFunction, ARRAY_SORT_FUNCTION_INDEX, ecma_roots_builtins) \ 2254514f5e3Sopenharmony_ci V(JSTaggedValue, JsonStringifyFunction, JSON_STRINGIFY_FUNCTION_INDEX, ecma_roots_builtins) \ 2264514f5e3Sopenharmony_ci V(JSTaggedValue, MapIteratorProtoNext, MAP_ITERATOR_PROTO_NEXT_INDEX, ecma_roots_builtins) \ 2274514f5e3Sopenharmony_ci V(JSTaggedValue, SetIteratorProtoNext, SET_ITERATOR_PROTO_NEXT_INDEX, ecma_roots_builtins) \ 2284514f5e3Sopenharmony_ci V(JSTaggedValue, StringIteratorProtoNext, STRING_ITERATOR_PROTO_NEXT_INDEX, ecma_roots_builtins) \ 2294514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayIteratorProtoNext, ARRAY_ITERATOR_PROTO_NEXT_INDEX, ecma_roots_builtins) \ 2304514f5e3Sopenharmony_ci V(JSTaggedValue, IteratorProtoReturn, ITERATOR_PROTO_RETURN_INDEX, ecma_roots_builtins) \ 2314514f5e3Sopenharmony_ci V(JSTaggedValue, StringFromCharCode, STRING_FROM_CHAR_CODE_INDEX, ecma_roots_builtins) \ 2324514f5e3Sopenharmony_ci V(JSTaggedValue, StringCharCodeAt, STRING_CHAR_CODE_AT_INDEX, ecma_roots_builtins) \ 2334514f5e3Sopenharmony_ci V(JSTaggedValue, StringSubstring, STRING_SUB_STRING_INDEX, ecma_roots_special) \ 2344514f5e3Sopenharmony_ci V(JSTaggedValue, StringSubStr, STRING_SUB_STR_INDEX, ecma_roots_special) \ 2354514f5e3Sopenharmony_ci V(JSTaggedValue, StringSlice, STRING_SLICE_INDEX, ecma_roots_special) \ 2364514f5e3Sopenharmony_ci V(JSTaggedValue, TypedArrayEntries, TYPED_ARRAY_ENTRIES_INDEX, ecma_roots_special) \ 2374514f5e3Sopenharmony_ci V(JSTaggedValue, TypedArrayKeys, TYPED_ARRAY_KEYS_INDEX, ecma_roots_special) \ 2384514f5e3Sopenharmony_ci V(JSTaggedValue, TypedArrayValues, TYPED_ARRAY_VALUES_INDEX, ecma_roots_special) \ 2394514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayBufferIsView, ARRAY_BUFFER_IS_VIEW_INDEX, ecma_roots_builtins) \ 2404514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetFloat32, DATA_VIEW_GET_FLOAT32_INDEX, ecma_roots_builtins) \ 2414514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetFloat64, DATA_VIEW_GET_FLOAT64_INDEX, ecma_roots_builtins) \ 2424514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetInt8, DATA_VIEW_GET_INT8_INDEX, ecma_roots_builtins) \ 2434514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetInt16, DATA_VIEW_GET_INT16_INDEX, ecma_roots_builtins) \ 2444514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetInt32, DATA_VIEW_GET_INT32_INDEX, ecma_roots_builtins) \ 2454514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetUint16, DATA_VIEW_GET_UINT16_INDEX, ecma_roots_builtins) \ 2464514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetUint32, DATA_VIEW_GET_UINT32_INDEX, ecma_roots_builtins) \ 2474514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewGetUint8, DATA_VIEW_GET_UINT8_INDEX, ecma_roots_builtins) \ 2484514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetFloat32, DATA_VIEW_SET_FLOAT32_INDEX, ecma_roots_builtins) \ 2494514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetFloat64, DATA_VIEW_SET_FLOAT64_INDEX, ecma_roots_builtins) \ 2504514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetInt8, DATA_VIEW_SET_INT8_INDEX, ecma_roots_builtins) \ 2514514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetInt16, DATA_VIEW_SET_INT16_INDEX, ecma_roots_builtins) \ 2524514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetInt32, DATA_VIEW_SET_INT32_INDEX, ecma_roots_builtins) \ 2534514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetUint8, DATA_VIEW_SET_UINT8_INDEX, ecma_roots_builtins) \ 2544514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetUint16, DATA_VIEW_SET_UINT16_INDEX, ecma_roots_builtins) \ 2554514f5e3Sopenharmony_ci V(JSTaggedValue, DataViewSetUint32, DATA_VIEW_SET_UINT32_INDEX, ecma_roots_builtins) \ 2564514f5e3Sopenharmony_ci V(JSTaggedValue, DateGetTime, DATE_GET_TIME_INDEX, ecma_roots_special) \ 2574514f5e3Sopenharmony_ci V(JSTaggedValue, DateNow, DATE_NOW_INDEX, ecma_roots_special) \ 2584514f5e3Sopenharmony_ci V(JSTaggedValue, NumberIsNaN, NUMBER_IS_NAN_INDEX, ecma_roots_builtins) \ 2594514f5e3Sopenharmony_ci V(JSTaggedValue, NumberIsFinite, NUMBER_IS_FINITE_INDEX, ecma_roots_builtins) \ 2604514f5e3Sopenharmony_ci V(JSTaggedValue, NumberIsInteger, NUMBER_IS_INTEGER_INDEX, ecma_roots_builtins) \ 2614514f5e3Sopenharmony_ci V(JSTaggedValue, NumberIsSafeInteger, NUMBER_IS_SAFEINTEGER_INDEX, ecma_roots_builtins) \ 2624514f5e3Sopenharmony_ci V(JSTaggedValue, NumberParseFloat, NUMBER_PARSE_FLOAT_INDEX, ecma_roots_builtins) \ 2634514f5e3Sopenharmony_ci V(JSTaggedValue, NumberParseInt, NUMBER_PARSE_INT_INDEX, ecma_roots_builtins) \ 2644514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectIs, OBJECT_IS_INDEX, ecma_roots_special) \ 2654514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectGetPrototypeOf, OBJECT_GET_PROTOTYPE_OF_INDEX, ecma_roots_special) \ 2664514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectGetPrototo, OBJECT_GET_PROTO_INDEX, ecma_roots_special) \ 2674514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectCreate, OBJECT_CREATE_INDEX, ecma_roots_special) \ 2684514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectIsPrototypeOf, OBJECT_IS_PROTOTYPE_OF_INDEX, ecma_roots_special) \ 2694514f5e3Sopenharmony_ci V(JSTaggedValue, ObjectHasOwnProperty, OBJECT_HAS_OWN_PROPERTY_INDEX, ecma_roots_special) \ 2704514f5e3Sopenharmony_ci V(JSTaggedValue, ReflectGetPrototypeOf, REFLECT_GET_PROTOTYPE_OF_INDEX, ecma_roots_special) \ 2714514f5e3Sopenharmony_ci V(JSTaggedValue, ReflectGet, REFLECT_GET_INDEX, ecma_roots_special) \ 2724514f5e3Sopenharmony_ci V(JSTaggedValue, ReflectHas, REFLECT_HAS_INDEX, ecma_roots_special) \ 2734514f5e3Sopenharmony_ci V(JSTaggedValue, ReflectConstruct, REFLECT_CONSTRUCT_INDEX, ecma_roots_special) \ 2744514f5e3Sopenharmony_ci V(JSTaggedValue, ReflectApply, REFLECT_APPLY_INDEX, ecma_roots_special) \ 2754514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionApply, FUNCTION_PROTOTYPE_APPLY_INDEX, ecma_roots_special) \ 2764514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionBind, FUNCTION_PROTOTYPE_BIND_INDEX, ecma_roots_special) \ 2774514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionCall, FUNCTION_PROTOTYPE_CALL_INDEX, ecma_roots_special) \ 2784514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionHasInstance, FUNCTION_PROTOTYPE_HAS_INSTANCE_INDEX, ecma_roots_special) \ 2794514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayIndexOf, ARRAY_INDEXOF_INDEX, ecma_roots_builtins) \ 2804514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayIncludes, ARRAY_INCLUDES_INDEX, ecma_roots_builtins) \ 2814514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayKeys, ARRAY_KEYS_INDEX, ecma_roots_builtins) \ 2824514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayEntries, ARRAY_ENTRIES_INDEX, ecma_roots_builtins) \ 2834514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayValues, ARRAY_VALUES_INDEX, ecma_roots_builtins) \ 2844514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayForEach, ARRAY_FOREACH_INDEX, ecma_roots_builtins) \ 2854514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayFind, ARRAY_FIND_INDEX, ecma_roots_builtins) \ 2864514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayFindIndex, ARRAY_FINDINDEX_INDEX, ecma_roots_builtins) \ 2874514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayFilter, ARRAY_FILTER_INDEX, ecma_roots_builtins) \ 2884514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayMap, ARRAY_MAP_INDEX, ecma_roots_builtins) \ 2894514f5e3Sopenharmony_ci V(JSTaggedValue, ArraySome, ARRAY_SOME_INDEX, ecma_roots_builtins) \ 2904514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayEvery, ARRAY_EVERY_INDEX, ecma_roots_builtins) \ 2914514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayPop, ARRAY_POP_INDEX, ecma_roots_builtins) \ 2924514f5e3Sopenharmony_ci V(JSTaggedValue, ArraySlice, ARRAY_SLICE_INDEX, ecma_roots_builtins) \ 2934514f5e3Sopenharmony_ci V(JSTaggedValue, GloablDecodeURIComponent, GLOBAL_DECODE_URI_COMPONENT, ecma_roots_builtins) 2944514f5e3Sopenharmony_ci 2954514f5e3Sopenharmony_ci// All of type JSTaggedValue 2964514f5e3Sopenharmony_ci#define SHARED_GLOBAL_ENV_CONSTANT_STRING(V) \ 2974514f5e3Sopenharmony_ci V(ConstructorString, CONSTRUCTOR_STRING_INDEX, "constructor") \ 2984514f5e3Sopenharmony_ci V(PrototypeString, PROTOTYPE_STRING_INDEX, "prototype") \ 2994514f5e3Sopenharmony_ci V(SizeString, SIZE_STRING_INDEX, "size") \ 3004514f5e3Sopenharmony_ci V(LengthString, LENGTH_STRING_INDEX, "length") \ 3014514f5e3Sopenharmony_ci V(ValueString, VALUE_STRING_INDEX, "value") \ 3024514f5e3Sopenharmony_ci V(SetString, SET_STRING_INDEX, "set") \ 3034514f5e3Sopenharmony_ci V(GetString, GET_STRING_INDEX, "get") \ 3044514f5e3Sopenharmony_ci V(SetWithSpaceString, SET_SPACE_STRING_INDEX, "set ") \ 3054514f5e3Sopenharmony_ci V(GetWithSpaceString, GET_SPACE_STRING_INDEX, "get ") \ 3064514f5e3Sopenharmony_ci V(WritableString, WRITABLE_STRING_INDEX, "writable") \ 3074514f5e3Sopenharmony_ci V(EnumerableString, ENUMERABLE_STRING_INDEX, "enumerable") \ 3084514f5e3Sopenharmony_ci V(ConfigurableString, CONFIGURABLE_STRING_INDEX, "configurable") \ 3094514f5e3Sopenharmony_ci V(NameString, NAME_STRING_INDEX, "name") \ 3104514f5e3Sopenharmony_ci /* SymbolTable * RegisterSymbols */ \ 3114514f5e3Sopenharmony_ci V(GetPrototypeOfString, GETPROTOTYPEOF_STRING_INDEX, "getPrototypeOf") \ 3124514f5e3Sopenharmony_ci V(SetPrototypeOfString, SETPROTOTYPEOF_STRING_INDEX, "setPrototypeOf") \ 3134514f5e3Sopenharmony_ci V(IsExtensibleString, ISEXTENSIBLE_STRING_INDEX, "isExtensible") \ 3144514f5e3Sopenharmony_ci V(PreventExtensionsString, PREVENTEXTENSIONS_STRING_INDEX, "preventExtensions") \ 3154514f5e3Sopenharmony_ci V(GetOwnPropertyDescriptorString, GETOWNPROPERTYDESCRIPTOR_STRING_INDEX, "getOwnPropertyDescriptor") \ 3164514f5e3Sopenharmony_ci V(DefinePropertyString, DEFINEPROPERTY_STRING_INDEX, "defineProperty") \ 3174514f5e3Sopenharmony_ci V(HasString, HAS_STRING_INDEX, "has") \ 3184514f5e3Sopenharmony_ci V(DeletePropertyString, DELETEPROPERTY_STRING_INDEX, "deleteProperty") \ 3194514f5e3Sopenharmony_ci V(EnumerateString, ENUMERATE_STRING_INDEX, "enumerate") \ 3204514f5e3Sopenharmony_ci V(OwnKeysString, OWNKEYS_STRING_INDEX, "ownKeys") \ 3214514f5e3Sopenharmony_ci V(ApplyString, APPLY_STRING_INDEX, "apply") \ 3224514f5e3Sopenharmony_ci V(NegativeZeroString, NEGATIVE_ZERO_STRING_INDEX, "-0") \ 3234514f5e3Sopenharmony_ci V(DoneString, DONE_STRING_INDEX, "done") \ 3244514f5e3Sopenharmony_ci V(ProxyString, PROXY_STRING_INDEX, "proxy") \ 3254514f5e3Sopenharmony_ci V(RevokeString, REVOKE_STRING_INDEX, "revoke") \ 3264514f5e3Sopenharmony_ci V(NextString, NEXT_STRING_INDEX, "next") \ 3274514f5e3Sopenharmony_ci V(ToStringString, TO_STRING_STRING_INDEX, "toString") \ 3284514f5e3Sopenharmony_ci V(ToLocaleStringString, TO_LOCALE_STRING_STRING_INDEX, "toLocaleString") \ 3294514f5e3Sopenharmony_ci V(ValueOfString, VALUE_OF_STRING_INDEX, "valueOf") \ 3304514f5e3Sopenharmony_ci V(UndefinedString, UNDEFINED_STRING_INDEX, "undefined") \ 3314514f5e3Sopenharmony_ci V(NullString, NULL_STRING_INDEX, "null") \ 3324514f5e3Sopenharmony_ci V(BooleanString, BOOLEAN_STRING_INDEX, "boolean") \ 3334514f5e3Sopenharmony_ci V(NumberString, NUMBER_STRING_INDEX, "number") \ 3344514f5e3Sopenharmony_ci V(BigIntString, BIGINT_STRING_INDEX, "bigint") \ 3354514f5e3Sopenharmony_ci V(FunctionString, FUNCTION_STRING_INDEX, "function") \ 3364514f5e3Sopenharmony_ci V(StringString, STRING_STRING_INDEX, "string") \ 3374514f5e3Sopenharmony_ci V(SymbolString, SYMBOL_STRING_INDEX, "symbol") \ 3384514f5e3Sopenharmony_ci V(NativeModuleFailureInfoString, NATIVE_MODULE_FAILURE_INFO_STRING_INDEX, "NativeModuleFailureInfo") \ 3394514f5e3Sopenharmony_ci V(ObjectString, OBJECT_STRING_INDEX, "object") \ 3404514f5e3Sopenharmony_ci V(TrueString, TRUE_STRING_INDEX, "true") \ 3414514f5e3Sopenharmony_ci V(FalseString, FALSE_STRING_INDEX, "false") \ 3424514f5e3Sopenharmony_ci V(ReturnString, RETURN_STRING_INDEX, "return") \ 3434514f5e3Sopenharmony_ci V(ProxyConstructString, PROXY_CONSTRUCT_STRING_INDEX, "construct") \ 3444514f5e3Sopenharmony_ci V(ProxyCallString, PROXY_CALL_STRING_INDEX, "call") \ 3454514f5e3Sopenharmony_ci V(PromiseThenString, PROMISE_THEN_STRING_INDEX, "then") \ 3464514f5e3Sopenharmony_ci V(PromiseCatchString, PROMISE_CATCH_STRING_INDEX, "catch") \ 3474514f5e3Sopenharmony_ci V(PromiseFinallyString, PROMISE_FINALLY_STRING_INDEX, "finally") \ 3484514f5e3Sopenharmony_ci V(PromiseStatusString, PROMISE_STATUS_STRING_INDEX, "status") \ 3494514f5e3Sopenharmony_ci V(PromiseFulfilledString, PROMISE_FULFILLED_STRING_INDEX, "fulfilled") \ 3504514f5e3Sopenharmony_ci V(PromiseRejectedString, PROMISE_REJECTED_STRING_INDEX, "rejected") \ 3514514f5e3Sopenharmony_ci V(PromiseReasonString, PROMISE_REASON_STRING_INDEX, "reason") \ 3524514f5e3Sopenharmony_ci V(ScriptJobString, SCRIPT_JOB_STRING_INDEX, "ScriptJobs") \ 3534514f5e3Sopenharmony_ci V(PromiseString, PROMISE_STRING_INDEX, "PrimiseJobs") \ 3544514f5e3Sopenharmony_ci V(ThrowerString, THROWER_STRING_INDEX, "Thrower") \ 3554514f5e3Sopenharmony_ci V(IdentityString, IDENTITY_STRING_INDEX, "Identity") \ 3564514f5e3Sopenharmony_ci V(CallerString, CALLER_STRING_INDEX, "caller") \ 3574514f5e3Sopenharmony_ci V(CalleeString, CALLEE_STRING_INDEX, "callee") \ 3584514f5e3Sopenharmony_ci V(Int8ArrayString, INT8_ARRAY_STRING_INDEX, "Int8Array") \ 3594514f5e3Sopenharmony_ci V(Uint8ArrayString, UINT8_ARRAY_STRING_INDEX, "Uint8Array") \ 3604514f5e3Sopenharmony_ci V(Uint8ClampedArrayString, UINT8_CLAMPED_ARRAY_STRING_INDEX, "Uint8ClampedArray") \ 3614514f5e3Sopenharmony_ci V(Int16ArrayString, INT16_ARRAY_STRING_INDEX, "Int16Array") \ 3624514f5e3Sopenharmony_ci V(Uint16ArrayString, UINT16_ARRAY_STRING_INDEX, "Uint16Array") \ 3634514f5e3Sopenharmony_ci V(Int32ArrayString, INT32_ARRAY_STRING_INDEX, "Int32Array") \ 3644514f5e3Sopenharmony_ci V(Uint32ArrayString, UINT32_ARRAY_STRING_INDEX, "Uint32Array") \ 3654514f5e3Sopenharmony_ci V(Float32ArrayString, FLOAT32_ARRAY_STRING_INDEX, "Float32Array") \ 3664514f5e3Sopenharmony_ci V(Float64ArrayString, FLOAT64_ARRAY_STRING_INDEX, "Float64Array") \ 3674514f5e3Sopenharmony_ci V(BigInt64ArrayString, BIGINT64_ARRAY_STRING_INDEX, "BigInt64Array") \ 3684514f5e3Sopenharmony_ci V(BigUint64ArrayString, BIGUINT64_ARRAY_STRING_INDEX, "BigUint64Array") \ 3694514f5e3Sopenharmony_ci V(SharedInt8ArrayString, SHARED_INT8_ARRAY_STRING_INDEX, "SharedInt8Array") \ 3704514f5e3Sopenharmony_ci V(SharedUint8ArrayString, SHARED_UINT8_ARRAY_STRING_INDEX, "SharedUint8Array") \ 3714514f5e3Sopenharmony_ci V(SharedUint8ClampedArrayString, SHARED_UINT8_CLAMPED_ARRAY_STRING_INDEX, "SharedUint8ClampedArray") \ 3724514f5e3Sopenharmony_ci V(SharedInt16ArrayString, SHARED_INT16_ARRAY_STRING_INDEX, "SharedInt16Array") \ 3734514f5e3Sopenharmony_ci V(SharedUint16ArrayString, SHARED_UINT16_ARRAY_STRING_INDEX, "SharedUint16Array") \ 3744514f5e3Sopenharmony_ci V(SharedInt32ArrayString, SHARED_INT32_ARRAY_STRING_INDEX, "SharedInt32Array") \ 3754514f5e3Sopenharmony_ci V(SharedUint32ArrayString, SHARED_UINT32_ARRAY_STRING_INDEX, "SharedUint32Array") \ 3764514f5e3Sopenharmony_ci V(SharedFloat32ArrayString, SHARED_FLOAT32_ARRAY_STRING_INDEX, "SharedFloat32Array") \ 3774514f5e3Sopenharmony_ci V(SharedFloat64ArrayString, SHARED_FLOAT64_ARRAY_STRING_INDEX, "SharedFloat64Array") \ 3784514f5e3Sopenharmony_ci V(SharedBigInt64ArrayString, SHARED_BIGINT64_ARRAY_STRING_INDEX, "SharedBigInt64Array") \ 3794514f5e3Sopenharmony_ci V(SharedBigUint64ArrayString, SHARED_BIGUINT64_ARRAY_STRING_INDEX, "SharedBigUint64Array") \ 3804514f5e3Sopenharmony_ci V(AsyncFunctionString, ASYNC_FUNCTION_STRING_INDEX, "AsyncFunction") \ 3814514f5e3Sopenharmony_ci V(PromiseResolveString, PROMISE_RESOLVE_STRING_INDEX, "resolve") \ 3824514f5e3Sopenharmony_ci V(IdString, ID_STRING_INDEX, "id") \ 3834514f5e3Sopenharmony_ci V(MethodString, METHOD_STRING_INDEX, "method") \ 3844514f5e3Sopenharmony_ci V(ParamsString, PARAMS_STRING_INDEX, "params") \ 3854514f5e3Sopenharmony_ci V(ResultString, RESULT_STRING_INDEX, "result") \ 3864514f5e3Sopenharmony_ci V(ToJsonString, TO_JSON_STRING_INDEX, "toJSON") \ 3874514f5e3Sopenharmony_ci V(GlobalString, GLOBAL_STRING_INDEX, "global") \ 3884514f5e3Sopenharmony_ci V(MessageString, MESSAGE_STRING_INDEX, "message") \ 3894514f5e3Sopenharmony_ci V(CauseString, CAUSE_STRING_INDEX, "cause") \ 3904514f5e3Sopenharmony_ci V(ErrorString, ERROR_STRING_INDEX, "Error") \ 3914514f5e3Sopenharmony_ci V(ErrorsString, ERRORS_STRING_INDEX, "errors") \ 3924514f5e3Sopenharmony_ci V(AggregateErrorString, AGGREGATE_ERROR_STRING_INDEX, "AggregateError") \ 3934514f5e3Sopenharmony_ci V(RangeErrorString, RANGE_ERROR_STRING_INDEX, "RangeError") \ 3944514f5e3Sopenharmony_ci V(ReferenceErrorString, REFERENCE_ERROR_STRING_INDEX, "ReferenceError") \ 3954514f5e3Sopenharmony_ci V(TypeErrorString, TYPE_ERROR_STRING_INDEX, "TypeError") \ 3964514f5e3Sopenharmony_ci V(URIErrorString, URI_ERROR_STRING_INDEX, "URIError") \ 3974514f5e3Sopenharmony_ci V(SyntaxErrorString, SYNTAX_ERROR_STRING_INDEX, "SyntaxError") \ 3984514f5e3Sopenharmony_ci V(EvalErrorString, EVAL_ERROR_STRING_INDEX, "EvalError") \ 3994514f5e3Sopenharmony_ci V(OOMErrorString, OOM_ERROR_STRING_INDEX, "OutOfMemoryError") \ 4004514f5e3Sopenharmony_ci V(TerminationErrorString, TERMINATION_ERROR_STRING_INDEX, "TerminationError") \ 4014514f5e3Sopenharmony_ci V(ErrorFuncString, ERROR_FUNC_STRING_INDEX, "errorfunc") \ 4024514f5e3Sopenharmony_ci V(StackString, STACK_STRING_INDEX, "stack") \ 4034514f5e3Sopenharmony_ci V(TopStackString, TOP_STACK_STRING_INDEX, "topstack") \ 4044514f5e3Sopenharmony_ci V(StackEmptyString, STACK_EMPTY_STRING_INDEX, "stackisempty") \ 4054514f5e3Sopenharmony_ci V(ObjNotCoercibleString, OBJ_NOT_COERCIBLE_STRING_INDEX, "objectnotcoercible") \ 4064514f5e3Sopenharmony_ci /* for Intl. */ \ 4074514f5e3Sopenharmony_ci V(LanguageString, LANGUAGE_STRING_CLASS_INDEX, "language") \ 4084514f5e3Sopenharmony_ci V(ScriptString, SCRIPT_STRING_CLASS_INDEX, "script") \ 4094514f5e3Sopenharmony_ci V(RegionString, REGION_STRING_CLASS_INDEX, "region") \ 4104514f5e3Sopenharmony_ci V(BaseNameString, BASE_NAME_STRING_CLASS_INDEX, "baseName") \ 4114514f5e3Sopenharmony_ci V(CalendarString, CALENDAR_STRING_CLASS_INDEX, "calendar") \ 4124514f5e3Sopenharmony_ci V(CollationString, COLLATION_STRING_CLASS_INDEX, "collation") \ 4134514f5e3Sopenharmony_ci V(HourCycleString, HOUR_CYCLE_STRING_CLASS_INDEX, "hourCycle") \ 4144514f5e3Sopenharmony_ci V(CaseFirstString, CASE_FIRST_STRING_CLASS_INDEX, "caseFirst") \ 4154514f5e3Sopenharmony_ci V(NumericString, NUMERIC_STRING_CLASS_INDEX, "numeric") \ 4164514f5e3Sopenharmony_ci V(NumberingSystemString, NUMBERING_SYSTEM_STRING_CLASS_INDEX, "numberingSystem") \ 4174514f5e3Sopenharmony_ci V(TypeString, TYPE_STRING_INDEX, "type") \ 4184514f5e3Sopenharmony_ci V(GranularityString, GRANULARITY_STRING_INDEX, "granularity") \ 4194514f5e3Sopenharmony_ci V(GraphemeString, GRAPHEME_STRING_INDEX, "grapheme") \ 4204514f5e3Sopenharmony_ci V(WordString, WORD_STRING_INDEX, "word") \ 4214514f5e3Sopenharmony_ci V(SentenceString, SENTENCE_STRING_INDEX, "sentence") \ 4224514f5e3Sopenharmony_ci V(SegmentString, SEGMENT_STRING_INDEX, "segment") \ 4234514f5e3Sopenharmony_ci V(IsWordLikeString, ISWORDLIKE_STRING_INDEX, "isWordLike") \ 4244514f5e3Sopenharmony_ci V(LocaleMatcherString, LOCALE_MATCHER_STRING_INDEX, "localeMatcher") \ 4254514f5e3Sopenharmony_ci V(LanguageDisplayString, LAUGUAGE_DISPLAY_STRING_INDEX, "languageDisplay") \ 4264514f5e3Sopenharmony_ci V(FormatMatcherString, FORMAT_MATCHER_STRING_INDEX, "formatMatcher") \ 4274514f5e3Sopenharmony_ci V(Hour12String, HOUR12_STRING_INDEX, "hour12") \ 4284514f5e3Sopenharmony_ci V(H11String, H11_STRING_INDEX, "h11") \ 4294514f5e3Sopenharmony_ci V(H12String, H12_STRING_INDEX, "h12") \ 4304514f5e3Sopenharmony_ci V(H23String, H23_STRING_INDEX, "h23") \ 4314514f5e3Sopenharmony_ci V(H24String, H24_STRING_INDEX, "h24") \ 4324514f5e3Sopenharmony_ci V(WeekdayString, WEEK_DAY_STRING_INDEX, "weekday") \ 4334514f5e3Sopenharmony_ci V(EraString, ERA_STRING_INDEX, "era") \ 4344514f5e3Sopenharmony_ci V(YearString, YEAR_STRING_INDEX, "year") \ 4354514f5e3Sopenharmony_ci V(QuarterString, QUARTER_STRING_INDEX, "quarter") \ 4364514f5e3Sopenharmony_ci V(MonthString, MONTH_STRING_INDEX, "month") \ 4374514f5e3Sopenharmony_ci V(DayString, DAY_STRING_INDEX, "day") \ 4384514f5e3Sopenharmony_ci V(HourString, HOUR_STRING_INDEX, "hour") \ 4394514f5e3Sopenharmony_ci V(MinuteString, MINUTE_STRING_INDEX, "minute") \ 4404514f5e3Sopenharmony_ci V(SecondString, SECOND_STRING_INDEX, "second") \ 4414514f5e3Sopenharmony_ci V(YearsString, YEARS_STRING_INDEX, "years") \ 4424514f5e3Sopenharmony_ci V(QuartersString, QUARTERS_STRING_INDEX, "quarters") \ 4434514f5e3Sopenharmony_ci V(MonthsString, MONTHS_STRING_INDEX, "months") \ 4444514f5e3Sopenharmony_ci V(DaysString, DAYS_STRING_INDEX, "days") \ 4454514f5e3Sopenharmony_ci V(HoursString, HOURS_STRING_INDEX, "hours") \ 4464514f5e3Sopenharmony_ci V(MinutesString, MINUTES_STRING_INDEX, "minutes") \ 4474514f5e3Sopenharmony_ci V(SecondsString, SECONDS_STRING_INDEX, "seconds") \ 4484514f5e3Sopenharmony_ci V(TimeZoneNameString, TIME_ZONE_NAME_STRING_INDEX, "timeZoneName") \ 4494514f5e3Sopenharmony_ci V(LocaleString, LOCALE_STRING_INDEX, "locale") \ 4504514f5e3Sopenharmony_ci V(TimeZoneString, TIME_ZONE_STRING_INDEX, "timeZone") \ 4514514f5e3Sopenharmony_ci V(LiteralString, LITERAL_STRING_INDEX, "literal") \ 4524514f5e3Sopenharmony_ci V(YearNameString, YEAR_NAME_STRING_INDEX, "yearName") \ 4534514f5e3Sopenharmony_ci V(DayPeriodString, DAY_PERIOD_STRING_INDEX, "dayPeriod") \ 4544514f5e3Sopenharmony_ci V(FractionalSecondDigitsString, FRACTIONAL_SECOND_DIGITS_STRING_INDEX, "fractionalSecondDigits") \ 4554514f5e3Sopenharmony_ci V(FractionalSecondString, FRACTIONAL_SECOND_STRING_INDEX, "fractionalSecond") \ 4564514f5e3Sopenharmony_ci V(RelatedYearString, RELATED_YEAR_STRING_INDEX, "relatedYear") \ 4574514f5e3Sopenharmony_ci V(LookUpString, LOOK_UP_STRING_INDEX, "lookup") \ 4584514f5e3Sopenharmony_ci V(BestFitString, BEST_FIT_STRING_INDEX, "bestfit") \ 4594514f5e3Sopenharmony_ci V(DateStyleString, DATE_STYLE_STRING_INDEX, "dateStyle") \ 4604514f5e3Sopenharmony_ci V(TimeStyleString, TIME_STYLE_STRING_INDEX, "timeStyle") \ 4614514f5e3Sopenharmony_ci V(UTCString, UTC_STRING_INDEX, "UTC") \ 4624514f5e3Sopenharmony_ci V(WeekString, WEEK_STRING_INDEX, "week") \ 4634514f5e3Sopenharmony_ci V(WeeksString, WEEKS_STRING_INDEX, "weeks") \ 4644514f5e3Sopenharmony_ci V(SourceString, SOURCE_STRING_INDEX, "source") \ 4654514f5e3Sopenharmony_ci V(FormatString, FORMAT_STRING_INDEX, "format") \ 4664514f5e3Sopenharmony_ci V(EnUsString, EN_US_STRING_INDEX, "en-US") \ 4674514f5e3Sopenharmony_ci V(UndString, UND_STRING_INDEX, "und") \ 4684514f5e3Sopenharmony_ci V(LatnString, LATN_STRING_INDEX, "latn") \ 4694514f5e3Sopenharmony_ci V(StyleString, STYLE_STRING_INDEX, "style") \ 4704514f5e3Sopenharmony_ci V(UnitString, UNIT_STRING_INDEX, "unit") \ 4714514f5e3Sopenharmony_ci V(IntegerString, INTEGER_STRING_INDEX, "integer") \ 4724514f5e3Sopenharmony_ci V(NanString, NAN_STRING_INDEX, "nan") \ 4734514f5e3Sopenharmony_ci V(InfinityString, INFINITY_STRING_INDEX, "infinity") \ 4744514f5e3Sopenharmony_ci V(InfinityCapitalString, INFINITY_CAP_STRING_INDEX, "Infinity") \ 4754514f5e3Sopenharmony_ci V(MinusInfinityCapitalString, MINUS_INFINITY_CAP_STRING_INDEX, "-Infinity") \ 4764514f5e3Sopenharmony_ci V(FractionString, FRACTION_STRING_INDEX, "fraction") \ 4774514f5e3Sopenharmony_ci V(DecimalString, DECIMAL_STRING_INDEX, "decimal") \ 4784514f5e3Sopenharmony_ci V(GroupString, GROUP_STRING_INDEX, "group") \ 4794514f5e3Sopenharmony_ci V(GroupsString, GROUPS_STRING_INDEX, "groups") \ 4804514f5e3Sopenharmony_ci V(CurrencyString, CURRENCY_STRING_INDEX, "currency") \ 4814514f5e3Sopenharmony_ci V(CurrencySignString, CURRENCY_SIGN_STRING_INDEX, "currencySign") \ 4824514f5e3Sopenharmony_ci V(CurrencyDisplayString, CURRENCY_DISPLAY_STRING_INDEX, "currencyDisplay") \ 4834514f5e3Sopenharmony_ci V(PercentSignString, PERCENT_SIGN_STRING_INDEX, "percentSign") \ 4844514f5e3Sopenharmony_ci V(PercentString, PERCENT_STRING_INDEX, "percent") \ 4854514f5e3Sopenharmony_ci V(MinusSignString, MINUS_SIGN_STRING_INDEX, "minusSign") \ 4864514f5e3Sopenharmony_ci V(PlusSignString, PLUS_SIGN_STRING_INDEX, "plusSign") \ 4874514f5e3Sopenharmony_ci V(ExponentSeparatorString, EXPONENT_SEPARATOR_STRING_INDEX, "exponentSeparator") \ 4884514f5e3Sopenharmony_ci V(ExponentMinusSignString, EXPONENT_MINUS_SIGN_INDEX, "exponentMinusSign") \ 4894514f5e3Sopenharmony_ci V(ExponentIntegerString, EXPONENT_INTEGER_STRING_INDEX, "exponentInteger") \ 4904514f5e3Sopenharmony_ci V(LongString, LONG_STRING_INDEX, "long") \ 4914514f5e3Sopenharmony_ci V(ShortString, SHORT_STRING_INDEX, "short") \ 4924514f5e3Sopenharmony_ci V(FullString, FULL_STRING_INDEX, "full") \ 4934514f5e3Sopenharmony_ci V(MediumString, MEDIUM_STRING_INDEX, "medium") \ 4944514f5e3Sopenharmony_ci V(NarrowString, NARROW_STRING_INDEX, "narrow") \ 4954514f5e3Sopenharmony_ci V(AlwaysString, ALWAYS_STRING_INDEX, "always") \ 4964514f5e3Sopenharmony_ci V(AutoString, AUTO_STRING_INDEX, "auto") \ 4974514f5e3Sopenharmony_ci V(ThrowString, THROW_STRING_INDEX, "throw") \ 4984514f5e3Sopenharmony_ci V(UnitDisplayString, UNIT_DISPLAY_INDEX, "unitDisplay") \ 4994514f5e3Sopenharmony_ci V(NotationString, NOTATION_INDEX, "notation") \ 5004514f5e3Sopenharmony_ci V(CompactDisplayString, COMPACT_DISPALY_INDEX, "compactDisplay") \ 5014514f5e3Sopenharmony_ci V(UserGroupingString, USER_GROUPING_INDEX, "useGrouping") \ 5024514f5e3Sopenharmony_ci V(SignDisplayString, SIGN_DISPLAY_INDEX, "signDisplay") \ 5034514f5e3Sopenharmony_ci V(CodeString, CODE_INDEX, "code") \ 5044514f5e3Sopenharmony_ci V(NarrowSymbolString, NARROW_SYMBOL_INDEX, "narrowSymbol") \ 5054514f5e3Sopenharmony_ci V(StandardString, STANDARD_INDEX, "standard") \ 5064514f5e3Sopenharmony_ci V(DialectString, DIALECT_INDEX, "dialect") \ 5074514f5e3Sopenharmony_ci V(AccountingString, ACCOUNTING_INDEX, "accounting") \ 5084514f5e3Sopenharmony_ci V(ScientificString, SCIENTIFIC_INDEX, "scientific") \ 5094514f5e3Sopenharmony_ci V(EngineeringString, ENGINEERING_INDEX, "engineering") \ 5104514f5e3Sopenharmony_ci V(CompactString, COMPACT_STRING_INDEX, "compact") \ 5114514f5e3Sopenharmony_ci V(NeverString, NEVER_INDEX, "never") \ 5124514f5e3Sopenharmony_ci V(ExceptZeroString, EXPECT_ZERO_INDEX, "exceptZero") \ 5134514f5e3Sopenharmony_ci V(MinimumIntegerDigitsString, MINIMUM_INTEGER_DIGITS_INDEX, "minimumIntegerDigits") \ 5144514f5e3Sopenharmony_ci V(MinimumFractionDigitsString, MINIMUM_FRACTIONDIGITS_INDEX, "minimumFractionDigits") \ 5154514f5e3Sopenharmony_ci V(MaximumFractionDigitsString, MAXIMUM_FRACTIONDIGITS_INDEX, "maximumFractionDigits") \ 5164514f5e3Sopenharmony_ci V(MinimumSignificantDigitsString, MINIMUM_SIGNIFICANTDIGITS_INDEX, "minimumSignificantDigits") \ 5174514f5e3Sopenharmony_ci V(MaximumSignificantDigitsString, MAXIMUM_SIGNIFICANTDIGITS_INDEX, "maximumSignificantDigits") \ 5184514f5e3Sopenharmony_ci V(InvalidDateString, INVALID_DATE_INDEX, "Invalid Date") \ 5194514f5e3Sopenharmony_ci V(UsageString, USAGE_INDEX, "usage") \ 5204514f5e3Sopenharmony_ci V(CompareString, COMPARE_INDEX, "compare") \ 5214514f5e3Sopenharmony_ci V(SensitivityString, SENSITIVITY_INDEX, "sensitivity") \ 5224514f5e3Sopenharmony_ci V(IgnorePunctuationString, IGNORE_PUNCTUATION_INDEX, "ignorePunctuation") \ 5234514f5e3Sopenharmony_ci V(CardinalString, CARDINAL_INDEX, "cardinal") \ 5244514f5e3Sopenharmony_ci V(OrdinalString, ORDINAL_INDEX, "ordinal") \ 5254514f5e3Sopenharmony_ci V(ExecString, EXEC_INDEX, "exec") \ 5264514f5e3Sopenharmony_ci V(LastIndexString, LAST_INDEX_INDEX, "lastIndex") \ 5274514f5e3Sopenharmony_ci V(PluralCategoriesString, PLURAL_CATEGORIES_INDEX, "pluralCategories") \ 5284514f5e3Sopenharmony_ci V(SortString, SORT_INDEX, "sort") \ 5294514f5e3Sopenharmony_ci V(SearchString, SEARCH_INDEX, "search") \ 5304514f5e3Sopenharmony_ci V(BaseString, BASE_INDEX, "base") \ 5314514f5e3Sopenharmony_ci V(AccentString, ACCENT_INDEX, "accent") \ 5324514f5e3Sopenharmony_ci V(CaseString, CASE_INDEX, "case") \ 5334514f5e3Sopenharmony_ci V(VariantString, VARIANT_INDEX, "variant") \ 5344514f5e3Sopenharmony_ci V(EnUsPosixString, EN_US_POSIX_STRING_INDEX, "en-US-POSIX") \ 5354514f5e3Sopenharmony_ci V(UpperString, UPPER_INDEX, "upper") \ 5364514f5e3Sopenharmony_ci V(LowerString, LOWER_INDEX, "lower") \ 5374514f5e3Sopenharmony_ci V(DefaultString, DEFAULT_INDEX, "default") \ 5384514f5e3Sopenharmony_ci V(SharedString, SHARED_INDEX, "shared") \ 5394514f5e3Sopenharmony_ci V(StartRangeString, START_RANGE_INDEX, "startRange") \ 5404514f5e3Sopenharmony_ci V(EndRangeString, END_RANGE_INDEX, "endRange") \ 5414514f5e3Sopenharmony_ci V(Iso8601String, ISO8601_INDEX, "iso8601") \ 5424514f5e3Sopenharmony_ci V(GregoryString, GREGORY_INDEX, "gregory") \ 5434514f5e3Sopenharmony_ci V(EthioaaString, ETHIOAA_INDEX, "ethioaa") \ 5444514f5e3Sopenharmony_ci V(StickyString, STICKY_INDEX, "sticky") \ 5454514f5e3Sopenharmony_ci V(HasIndicesString, HAS_INDICES_INDEX, "hasIndices") \ 5464514f5e3Sopenharmony_ci V(DotAllString, DOT_ALL_INDEX, "dotAll") \ 5474514f5e3Sopenharmony_ci V(MultilineString, MULTILINE_INDEX, "multiline") \ 5484514f5e3Sopenharmony_ci V(IgnoreCaseString, IGNORE_CASE_INDEX, "ignoreCase") \ 5494514f5e3Sopenharmony_ci V(IndicesString, INDICES_INDEX, "indices") \ 5504514f5e3Sopenharmony_ci V(UString, U_INDEX, "u") \ 5514514f5e3Sopenharmony_ci V(IndexString, INDEX_INDEX, "index") \ 5524514f5e3Sopenharmony_ci V(InputString, INPUT_INDEX, "input") \ 5534514f5e3Sopenharmony_ci V(UnicodeString, UNICODE_INDEX, "unicode") \ 5544514f5e3Sopenharmony_ci V(ZeroString, ZERO_INDEX, "0") \ 5554514f5e3Sopenharmony_ci V(ValuesString, VALUES_INDEX, "values") \ 5564514f5e3Sopenharmony_ci V(AddString, ADD_INDEX, "add") \ 5574514f5e3Sopenharmony_ci V(AmbiguousString, AMBIGUOUS_INDEX, "ambiguous") \ 5584514f5e3Sopenharmony_ci V(ModuleString, MODULE_INDEX, "Module") \ 5594514f5e3Sopenharmony_ci V(StarString, STAR_INDEX, "*") \ 5604514f5e3Sopenharmony_ci V(DateTimeFieldString, DATETIMEFIELD_INDEX, "dateTimeField") \ 5614514f5e3Sopenharmony_ci V(ConjunctionString, CONJUNCTION_INDEX, "conjunction") \ 5624514f5e3Sopenharmony_ci V(NoneString, NONE_INDEX, "none") \ 5634514f5e3Sopenharmony_ci V(FallbackString, FALLBACK_INDEX, "fallback") \ 5644514f5e3Sopenharmony_ci V(DisjunctionString, DISJUNCTION_INDEX, "disjunction") \ 5654514f5e3Sopenharmony_ci V(ElementString, ELEMENT_INDEX, "element") \ 5664514f5e3Sopenharmony_ci V(FlagsString, FLAGS_INDEX, "flags") \ 5674514f5e3Sopenharmony_ci V(GString, G_INDEX, "g") \ 5684514f5e3Sopenharmony_ci V(NfcString, NFC_INDEX, "NFC") \ 5694514f5e3Sopenharmony_ci V(NfdString, NFD_INDEX, "NFD") \ 5704514f5e3Sopenharmony_ci V(NfkcString, NFKC_INDEX, "NFKC") \ 5714514f5e3Sopenharmony_ci V(NfkdString, NFKD_INDEX, "NFKD") \ 5724514f5e3Sopenharmony_ci V(EntriesString, ENTRIES_INDEX, "entries") \ 5734514f5e3Sopenharmony_ci V(LeftSquareBracketString, LEFT_SQUARE_BRACKET_INDEX, "[") \ 5744514f5e3Sopenharmony_ci V(RightSquareBracketString, RIGHT_SQUARE_BRACKET_INDEX, "]") \ 5754514f5e3Sopenharmony_ci V(YString, Y_INDEX, "y") \ 5764514f5e3Sopenharmony_ci V(DollarString, DOLLAR_INDEX, "$") \ 5774514f5e3Sopenharmony_ci V(CommaString, COMMA_INDEX, ",") \ 5784514f5e3Sopenharmony_ci V(JoinString, JOIN_INDEX, "join") \ 5794514f5e3Sopenharmony_ci V(CopyWithinString, COPY_WITHIN_INDEX, "copyWithin") \ 5804514f5e3Sopenharmony_ci V(FillString, FILL_INDEX, "fill") \ 5814514f5e3Sopenharmony_ci V(FindString, FIND_INDEX, "find") \ 5824514f5e3Sopenharmony_ci V(FindIndexString, FIND_INDEX_INDEX, "findIndex") \ 5834514f5e3Sopenharmony_ci V(FlatString, FLAT_INDEX, "flat") \ 5844514f5e3Sopenharmony_ci V(FlatMapString, FLATMAP_INDEX, "flatMap") \ 5854514f5e3Sopenharmony_ci V(IncludesString, INCLUDES_INDEX, "includes") \ 5864514f5e3Sopenharmony_ci V(KeysString, KEYS_INDEX, "keys") \ 5874514f5e3Sopenharmony_ci V(BoundString, BOUND_INDEX, "bound") \ 5884514f5e3Sopenharmony_ci V(TrimLeftString, TRIMLEFT_INDEX, "trimLeft") \ 5894514f5e3Sopenharmony_ci V(TrimStartString, TRIMSTART_INDEX, "trimStart") \ 5904514f5e3Sopenharmony_ci V(TrimRightString, TRIMRIGHT_INDEX, "trimRight") \ 5914514f5e3Sopenharmony_ci V(TrimEndString, TRIMEND_INDEX, "trimEnd") \ 5924514f5e3Sopenharmony_ci V(BackslashString, BACKSLASH_INDEX, "/") \ 5934514f5e3Sopenharmony_ci V(SpaceString, SPACE_INDEX, " ") \ 5944514f5e3Sopenharmony_ci V(NanCapitalString, NAN_INDEX, "NaN") \ 5954514f5e3Sopenharmony_ci V(NotEqualString, NOT_EQUAL_INDEX, "not-equal") \ 5964514f5e3Sopenharmony_ci V(OkString, OK_INDEX, "ok") \ 5974514f5e3Sopenharmony_ci V(TimeoutString, TIMEOUT_INDEX, "timed-out") \ 5984514f5e3Sopenharmony_ci V(CjsExportsString, CJS_EXPORTS_INDEX, "exports") \ 5994514f5e3Sopenharmony_ci V(CjsCacheString, CJS_CACHE_INDEX, "_cache") \ 6004514f5e3Sopenharmony_ci V(NapiWrapperString, NAPI_WRAPPER_INDEX, "_napiwrapper") \ 6014514f5e3Sopenharmony_ci /* for require native module */ \ 6024514f5e3Sopenharmony_ci V(RequireNativeModuleString, REQUIRE_NATIVE_MOUDULE_FUNC_INDEX, "requireNativeModule") \ 6034514f5e3Sopenharmony_ci V(RequireNapiString, REQUIRE_NAPI_FUNC_INDEX, "requireNapi") \ 6044514f5e3Sopenharmony_ci V(DollarStringOne, DOLLAR_STRING_ONE_INDEX, "$1") \ 6054514f5e3Sopenharmony_ci V(DollarStringTwo, DOLLAR_STRING_TWO_INDEX, "$2") \ 6064514f5e3Sopenharmony_ci V(DollarStringThree, DOLLAR_STRING_THREE_INDEX, "$3") \ 6074514f5e3Sopenharmony_ci V(DollarStringFour, DOLLAR_STRING_FOUR_INDEX, "$4") \ 6084514f5e3Sopenharmony_ci V(DollarStringFive, DOLLAR_STRING_FIVE_INDEX, "$5") \ 6094514f5e3Sopenharmony_ci V(DollarStringSix, DOLLAR_STRING_SIX_INDEX, "$6") \ 6104514f5e3Sopenharmony_ci V(DollarStringSeven, DOLLAR_STRING_SEVEN_INDEX, "$7") \ 6114514f5e3Sopenharmony_ci V(DollarStringEight, DOLLAR_STRING_EIGHT_INDEX, "$8") \ 6124514f5e3Sopenharmony_ci V(DollarStringNine, DOLLAR_STRING_NINE_INDEX, "$9") \ 6134514f5e3Sopenharmony_ci /* for object to string */ \ 6144514f5e3Sopenharmony_ci V(UndefinedToString, UNDEFINED_TO_STRING_INDEX, "[object Undefined]") \ 6154514f5e3Sopenharmony_ci V(NullToString, NULL_TO_STRING_INDEX, "[object Null]") \ 6164514f5e3Sopenharmony_ci V(ObjectToString, OBJECT_TO_STRING_INDEX, "[object Object]") \ 6174514f5e3Sopenharmony_ci V(ArrayToString, ARRAY_TO_STRING_INDEX, "[object Array]") \ 6184514f5e3Sopenharmony_ci V(StringToString, STRING_TO_STRING_INDEX, "[object String]") \ 6194514f5e3Sopenharmony_ci V(BooleanToString, BOOLEAN_TO_STRING_INDEX, "[object Boolean]") \ 6204514f5e3Sopenharmony_ci V(NumberToString, NUMBER_TO_STRING_INDEX, "[object Number]") \ 6214514f5e3Sopenharmony_ci V(ArgumentsToString, ARGUMENTS_TO_STRING_INDEX, "[object Arguments]") \ 6224514f5e3Sopenharmony_ci V(FunctionToString, FUNCTION_TO_STRING_INDEX, "[object Function]") \ 6234514f5e3Sopenharmony_ci V(DateToString, DATE_TO_STRING_INDEX, "[object Date]") \ 6244514f5e3Sopenharmony_ci V(ErrorToString, ERROR_TO_STRING_INDEX, "[object Error]") \ 6254514f5e3Sopenharmony_ci V(RegExpToString, REGEXP_TO_STRING_INDEX, "[object RegExp]") \ 6264514f5e3Sopenharmony_ci V(EdenGcCause, EDEN_GC_CAUSE, "eden") \ 6274514f5e3Sopenharmony_ci V(YoungGcCause, YOUNG_GC_CAUSE, "young") \ 6284514f5e3Sopenharmony_ci V(OldGcCause, OLD_GC_CAUSE, "old") \ 6294514f5e3Sopenharmony_ci V(FullGcCause, FULL_GC_CAUSE, "full") \ 6304514f5e3Sopenharmony_ci V(AppSpawnFullGcCause, APP_SPAWN_FULL_GC_CAUSE, "app_spawn_full") \ 6314514f5e3Sopenharmony_ci V(SharedGcCause, SHARED_GC_CAUSE, "shared") \ 6324514f5e3Sopenharmony_ci V(SharedFullGcCause, SHARED_FULL_GC_CAUSE, "shared_full") \ 6334514f5e3Sopenharmony_ci V(AppSpawnSharedFullGcCause, APP_SPAWN_SHARED_FULL_GC_CAUSE, "app_spawn_shared_full") \ 6344514f5e3Sopenharmony_ci V(SymbolLeftParentheses, SYMBOL_LEFT_PARENTHESES, "Symbol(") 6354514f5e3Sopenharmony_ci 6364514f5e3Sopenharmony_ci/* GlobalConstant */ 6374514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 6384514f5e3Sopenharmony_ci#define GLOBAL_ENV_CONSTANT_CONSTANT(V) \ 6394514f5e3Sopenharmony_ci /* non ECMA standard jsapi containers iterators */ \ 6404514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayListFunction, ARRAYLIST_FUNCTION_INDEX, ArrayListFunction) \ 6414514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayListIteratorPrototype, ARRAYLIST_ITERATOR_PROTOTYPE_INDEX, ArrayListIterator) \ 6424514f5e3Sopenharmony_ci V(JSTaggedValue, HashMapIteratorPrototype, HASHMAP_ITERATOR_PROTOTYPE_INDEX, HashMapIterator) \ 6434514f5e3Sopenharmony_ci V(JSTaggedValue, HashSetIteratorPrototype, HASHSET_ITERATOR_PROTOTYPE_INDEX, HashSetIterator) \ 6444514f5e3Sopenharmony_ci V(JSTaggedValue, LightWeightMapIteratorPrototype, \ 6454514f5e3Sopenharmony_ci LIGHTWEIGHTMAP_ITERATOR_PROTOTYPE_INDEX, LightWeightMapIterator) \ 6464514f5e3Sopenharmony_ci V(JSTaggedValue, LightWeightSetIteratorPrototype, \ 6474514f5e3Sopenharmony_ci LIGHTWEIGHTSET_ITERATOR_PROTOTYPE_INDEX, LightWeightSetIterator) \ 6484514f5e3Sopenharmony_ci V(JSTaggedValue, TreeMapIteratorPrototype, TREEMAP_ITERATOR_PROTOTYPE_INDEX, TreeMapIterator) \ 6494514f5e3Sopenharmony_ci V(JSTaggedValue, TreeSetIteratorPrototype, TREESET_ITERATOR_PROTOTYPE_INDEX, TreeSetIterator) \ 6504514f5e3Sopenharmony_ci V(JSTaggedValue, VectorFunction, VECTOR_FUNCTION_INDEX, VectorFunction) \ 6514514f5e3Sopenharmony_ci V(JSTaggedValue, VectorIteratorPrototype, VECTOR_ITERATOR_PROTOTYPE_INDEX, VectorIterator) \ 6524514f5e3Sopenharmony_ci V(JSTaggedValue, BitVectorFunction, BITVECTOR_FUNCTION_INDEX, BitVectorFunction) \ 6534514f5e3Sopenharmony_ci V(JSTaggedValue, BitVectorIteratorPrototype, BITVECTOR_ITERATOR_PROTOTYPE_INDEX, BitVectorIterator) \ 6544514f5e3Sopenharmony_ci V(JSTaggedValue, QueueIteratorPrototype, QUEUE_ITERATOR_PROTOTYPE_INDEX, QueueIterator) \ 6554514f5e3Sopenharmony_ci V(JSTaggedValue, PlainArrayIteratorPrototype, PLAIN_ARRAY_ITERATOR_PROTOTYPE_INDEX, PlainArrayIterator) \ 6564514f5e3Sopenharmony_ci V(JSTaggedValue, PlainArrayFunction, PLAIN_ARRAY_FUNCTION_INDEX, PlainArrayFunction) \ 6574514f5e3Sopenharmony_ci V(JSTaggedValue, DequeIteratorPrototype, DEQUE_ITERATOR_PROTOTYPE_INDEX, DequeIterator) \ 6584514f5e3Sopenharmony_ci V(JSTaggedValue, StackIteratorPrototype, STACK_ITERATOR_PROTOTYPE_INDEX, StackIterator) \ 6594514f5e3Sopenharmony_ci V(JSTaggedValue, ListFunction, LIST_FUNCTION_INDEX, ListFunction) \ 6604514f5e3Sopenharmony_ci V(JSTaggedValue, LinkedListFunction, LINKED_LIST_FUNCTION_INDEX, LinkedListFunction) \ 6614514f5e3Sopenharmony_ci V(JSTaggedValue, ListIteratorPrototype, LIST_ITERATOR_PROTOTYPE_INDEX, ListIterator) \ 6624514f5e3Sopenharmony_ci V(JSTaggedValue, UndefinedIterResult, UNDEFINED_INTERATOR_RESULT_INDEX, UndefinedIterResult) \ 6634514f5e3Sopenharmony_ci V(JSTaggedValue, LinkedListIteratorPrototype, LINKED_LIST_ITERATOR_PROTOTYPE_INDEX, LinkedListIterator) 6644514f5e3Sopenharmony_ci 6654514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 6664514f5e3Sopenharmony_ci#define SHARED_GLOBAL_ENV_CONSTANT_ACCESSOR(V) \ 6674514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionPrototypeAccessor, FUNCTION_PROTOTYPE_ACCESSOR, ecma_roots_accessor) \ 6684514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionNameAccessor, FUNCTION_NAME_ACCESSOR, ecma_roots_accessor) \ 6694514f5e3Sopenharmony_ci V(JSTaggedValue, FunctionLengthAccessor, FUNCTION_LENGTH_ACCESSOR, ecma_roots_accessor) \ 6704514f5e3Sopenharmony_ci V(JSTaggedValue, ArrayLengthAccessor, ARRAY_LENGTH_ACCESSOR, ecma_roots_accessor) \ 6714514f5e3Sopenharmony_ci V(JSTaggedValue, SharedArrayLengthAccessor, SHARED_ARRAY_LENGTH_ACCESSOR, ecma_roots_accessor) 6724514f5e3Sopenharmony_ci 6734514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 6744514f5e3Sopenharmony_ci#define SHARED_GLOBAL_ENV_CONSTANT_SPECIAL(V) \ 6754514f5e3Sopenharmony_ci V(JSTaggedValue, Undefined, UNDEFINED_INDEX, ecma_roots_special) \ 6764514f5e3Sopenharmony_ci V(JSTaggedValue, Null, NULL_INDEX, ecma_roots_special) \ 6774514f5e3Sopenharmony_ci V(JSTaggedValue, Hole, HOLE_INDEX, ecma_roots_special) \ 6784514f5e3Sopenharmony_ci V(JSTaggedValue, True, TRUE_INDEX, ecma_roots_special) \ 6794514f5e3Sopenharmony_ci V(JSTaggedValue, False, FALSE_INDEX, ecma_roots_special) \ 6804514f5e3Sopenharmony_ci V(JSTaggedValue, EmptyString, EMPTY_STRING_OBJECT_INDEX, ecma_roots_special) \ 6814514f5e3Sopenharmony_ci V(JSTaggedValue, SingleCharTable, SINGLE_CHAR_TABLE_INDEX, ecma_roots_special) \ 6824514f5e3Sopenharmony_ci V(JSTaggedValue, EmptySLayoutInfo, EMPTY_SLAYOUT_INFO_OBJECT_INDEX, ecma_roots_special) \ 6834514f5e3Sopenharmony_ci V(JSTaggedValue, EmptyArray, EMPTY_ARRAY_OBJECT_INDEX, ecma_roots_special) \ 6844514f5e3Sopenharmony_ci V(JSTaggedValue, EmptyMutantArray, EMPTY_MUTANT_ARRAY_OBJECT_INDEX, ecma_roots_special) \ 6854514f5e3Sopenharmony_ci V(JSTaggedValue, ProxyMethod, PROXY_METHOD_INDEX, ecma_roots_special) \ 6864514f5e3Sopenharmony_ci V(JSTaggedValue, Uint64MaxBigInt, UINT64_MAX_BIGINT_INDEX, ecma_roots_special) \ 6874514f5e3Sopenharmony_ci V(JSTaggedValue, Int64MaxBigInt, INT64_MAX_BIGINT_INDEX, ecma_roots_special) \ 6884514f5e3Sopenharmony_ci V(JSTaggedValue, EmptyProfileTypeInfoCell, EMPTY_PROFILE_TYPE_INFO_CELL_INDEX, ecma_roots_special) \ 6894514f5e3Sopenharmony_ci V(JSTaggedValue, BoundFunctionMethod, BOUND_FUNCTION_METHOD_INDEX, ecma_roots_special) 6904514f5e3Sopenharmony_ci 6914514f5e3Sopenharmony_ci#define GLOBAL_ENV_CACHES(V) \ 6924514f5e3Sopenharmony_ci V(JSTaggedValue, CachedJSCollatorLocales, CACHED_JSCOLLATOR_LOCALES_INDEX, cachedCollatorLocales) 6934514f5e3Sopenharmony_ci 6944514f5e3Sopenharmony_ci// ConstantIndex used for explicit visit each constant. 6954514f5e3Sopenharmony_cienum class ConstantIndex : size_t { 6964514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 6974514f5e3Sopenharmony_ci#define INDEX_FILTER_COMMON(Index) Index, 6984514f5e3Sopenharmony_ci#define INDEX_FILTER_WITH_TYPE(Type, Name, Index, Desc) INDEX_FILTER_COMMON(Index) 6994514f5e3Sopenharmony_ci#define INDEX_FILTER_STRING(Name, Index, Token) INDEX_FILTER_COMMON(Index) 7004514f5e3Sopenharmony_ci // Caveats: make sure shareds starts from 0 and placed before non-shareds. 7014514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_CLASS(INDEX_FILTER_WITH_TYPE) 7024514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_STRING(INDEX_FILTER_STRING) 7034514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_ACCESSOR(INDEX_FILTER_WITH_TYPE) 7044514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_SPECIAL(INDEX_FILTER_WITH_TYPE) 7054514f5e3Sopenharmony_ci GLOBAL_ENV_CONSTANT_CLASS(INDEX_FILTER_WITH_TYPE) 7064514f5e3Sopenharmony_ci GLOBAL_ENV_CONSTANT_SPECIAL(INDEX_FILTER_WITH_TYPE) 7074514f5e3Sopenharmony_ci GLOBAL_ENV_INLINED_BUILTINS(INDEX_FILTER_WITH_TYPE) 7084514f5e3Sopenharmony_ci GLOBAL_ENV_CONSTANT_CONSTANT(INDEX_FILTER_WITH_TYPE) 7094514f5e3Sopenharmony_ci GLOBAL_ENV_CACHES(INDEX_FILTER_WITH_TYPE) 7104514f5e3Sopenharmony_ci#undef INDEX_FILTER_STRING 7114514f5e3Sopenharmony_ci#undef INDEX_FILTER_WITH_TYPE 7124514f5e3Sopenharmony_ci#undef INDEX_FILTER_COMMON 7134514f5e3Sopenharmony_ci 7144514f5e3Sopenharmony_ci CONSTANT_COUNT, 7154514f5e3Sopenharmony_ci 7164514f5e3Sopenharmony_ci CONSTANT_BEGIN = 0, 7174514f5e3Sopenharmony_ci CONSTANT_END = CONSTANT_COUNT, 7184514f5e3Sopenharmony_ci 7194514f5e3Sopenharmony_ci SHARED_BEGIN = HCLASS_CLASS_INDEX, 7204514f5e3Sopenharmony_ci SHARED_END = BOUND_FUNCTION_METHOD_INDEX, 7214514f5e3Sopenharmony_ci 7224514f5e3Sopenharmony_ci SHARED_HCLASS_BEGIN = HCLASS_CLASS_INDEX, 7234514f5e3Sopenharmony_ci SHARED_HCLASS_END = VTABLE_CLASS_INDEX, 7244514f5e3Sopenharmony_ci NON_SHARED_HCLASS_BEGIN = JS_PROXY_CALLABLE_CLASS_INDEX, 7254514f5e3Sopenharmony_ci NON_SHARED_HCLASS_END = ELEMENT_HOLE_TAGGED_HCLASS_INDEX, 7264514f5e3Sopenharmony_ci READ_ONLY_CONSTANT_BEGIN = CONSTANT_BEGIN, 7274514f5e3Sopenharmony_ci READ_ONLY_CONSTANT_END = CONSTANT_END, 7284514f5e3Sopenharmony_ci JSAPI_CONTAINERS_BEGIN = ARRAYLIST_FUNCTION_INDEX, 7294514f5e3Sopenharmony_ci JSAPI_CONTAINERS_END = LINKED_LIST_ITERATOR_PROTOTYPE_INDEX, 7304514f5e3Sopenharmony_ci 7314514f5e3Sopenharmony_ci INVALID = -1, 7324514f5e3Sopenharmony_ci // ... 7334514f5e3Sopenharmony_ci}; 7344514f5e3Sopenharmony_ci// clang-format on 7354514f5e3Sopenharmony_ci 7364514f5e3Sopenharmony_ciclass GlobalEnvConstants { 7374514f5e3Sopenharmony_cipublic: 7384514f5e3Sopenharmony_ci GlobalEnvConstants() = default; 7394514f5e3Sopenharmony_ci ~GlobalEnvConstants() = default; 7404514f5e3Sopenharmony_ci 7414514f5e3Sopenharmony_ci DEFAULT_MOVE_SEMANTIC(GlobalEnvConstants); 7424514f5e3Sopenharmony_ci DEFAULT_COPY_SEMANTIC(GlobalEnvConstants); 7434514f5e3Sopenharmony_ci 7444514f5e3Sopenharmony_ci const JSTaggedValue *BeginSlot() const; 7454514f5e3Sopenharmony_ci 7464514f5e3Sopenharmony_ci const JSTaggedValue *EndSlot() const; 7474514f5e3Sopenharmony_ci 7484514f5e3Sopenharmony_ci void Init(JSThread *thread); 7494514f5e3Sopenharmony_ci 7504514f5e3Sopenharmony_ci void CopySharedConstantsFrom(const GlobalEnvConstants *src); 7514514f5e3Sopenharmony_ci 7524514f5e3Sopenharmony_ci void InitSpecialForSnapshot(); 7534514f5e3Sopenharmony_ci 7544514f5e3Sopenharmony_ci void InitElementKindHClass(const JSThread *thread, JSHandle<JSHClass> originHClass); 7554514f5e3Sopenharmony_ci 7564514f5e3Sopenharmony_ci void SetCachedLocales(JSTaggedValue value); 7574514f5e3Sopenharmony_ci 7584514f5e3Sopenharmony_ci void SetConstant(ConstantIndex index, JSTaggedValue value); 7594514f5e3Sopenharmony_ci 7604514f5e3Sopenharmony_ci template<typename T> 7614514f5e3Sopenharmony_ci void SetConstant(ConstantIndex index, JSHandle<T> value); 7624514f5e3Sopenharmony_ci 7634514f5e3Sopenharmony_ci uintptr_t GetGlobalConstantAddr(ConstantIndex index) const; 7644514f5e3Sopenharmony_ci 7654514f5e3Sopenharmony_ci// NOLINTNEXTLINE(cppcoreguidelines-macro-usage) 7664514f5e3Sopenharmony_ci#define DECL_GET_COMMON(Type, Name) \ 7674514f5e3Sopenharmony_ci const Type Get##Name() const; \ 7684514f5e3Sopenharmony_ci const JSHandle<Type> GetHandled##Name() const; \ 7694514f5e3Sopenharmony_ci static size_t GetOffsetOf##Name(); 7704514f5e3Sopenharmony_ci#define DECL_GET_WITH_TYPE(Type, Name, Index, Desc) DECL_GET_COMMON(Type, Name) 7714514f5e3Sopenharmony_ci#define DECL_GET_STRING(Name, Index, Token) DECL_GET_COMMON(JSTaggedValue, Name) 7724514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_CLASS(DECL_GET_WITH_TYPE) 7734514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_STRING(DECL_GET_STRING) 7744514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_ACCESSOR(DECL_GET_WITH_TYPE) 7754514f5e3Sopenharmony_ci SHARED_GLOBAL_ENV_CONSTANT_SPECIAL(DECL_GET_WITH_TYPE) 7764514f5e3Sopenharmony_ci GLOBAL_ENV_CONSTANT_CLASS(DECL_GET_WITH_TYPE) 7774514f5e3Sopenharmony_ci GLOBAL_ENV_CONSTANT_SPECIAL(DECL_GET_WITH_TYPE) 7784514f5e3Sopenharmony_ci GLOBAL_ENV_INLINED_BUILTINS(DECL_GET_WITH_TYPE) 7794514f5e3Sopenharmony_ci GLOBAL_ENV_CONSTANT_CONSTANT(DECL_GET_WITH_TYPE) 7804514f5e3Sopenharmony_ci GLOBAL_ENV_CACHES(DECL_GET_WITH_TYPE) 7814514f5e3Sopenharmony_ci#undef DECL_GET_STRING 7824514f5e3Sopenharmony_ci#undef DECL_GET_WITH_TYPE 7834514f5e3Sopenharmony_ci#undef DECL_GET_COMMON 7844514f5e3Sopenharmony_ci 7854514f5e3Sopenharmony_ci void VisitRangeSlot(const RootRangeVisitor &visitor) 7864514f5e3Sopenharmony_ci { 7874514f5e3Sopenharmony_ci visitor(ecmascript::Root::ROOT_VM, ObjectSlot(ToUintPtr(BeginSlot())), ObjectSlot(ToUintPtr(EndSlot()))); 7884514f5e3Sopenharmony_ci } 7894514f5e3Sopenharmony_ci 7904514f5e3Sopenharmony_ci JSTaggedValue GetGlobalConstantObject(size_t index) const 7914514f5e3Sopenharmony_ci { 7924514f5e3Sopenharmony_ci ASSERT(static_cast<ConstantIndex>(index) < ConstantIndex::CONSTANT_COUNT); 7934514f5e3Sopenharmony_ci return constants_[index]; 7944514f5e3Sopenharmony_ci } 7954514f5e3Sopenharmony_ci 7964514f5e3Sopenharmony_ci size_t GetConstantCount() const 7974514f5e3Sopenharmony_ci { 7984514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::CONSTANT_COUNT); 7994514f5e3Sopenharmony_ci } 8004514f5e3Sopenharmony_ci 8014514f5e3Sopenharmony_ci size_t GetEmptyArrayIndex() const 8024514f5e3Sopenharmony_ci { 8034514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::EMPTY_ARRAY_OBJECT_INDEX); 8044514f5e3Sopenharmony_ci } 8054514f5e3Sopenharmony_ci 8064514f5e3Sopenharmony_ci size_t GetEmptyMutantArrayIndex() const 8074514f5e3Sopenharmony_ci { 8084514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::EMPTY_MUTANT_ARRAY_OBJECT_INDEX); 8094514f5e3Sopenharmony_ci } 8104514f5e3Sopenharmony_ci 8114514f5e3Sopenharmony_ci size_t GetJSAPIContainersBegin() const 8124514f5e3Sopenharmony_ci { 8134514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::JSAPI_CONTAINERS_BEGIN); 8144514f5e3Sopenharmony_ci } 8154514f5e3Sopenharmony_ci 8164514f5e3Sopenharmony_ci size_t GetJSAPIContainersEnd() const 8174514f5e3Sopenharmony_ci { 8184514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::JSAPI_CONTAINERS_END); 8194514f5e3Sopenharmony_ci } 8204514f5e3Sopenharmony_ci 8214514f5e3Sopenharmony_ci size_t GetLineStringClassIndex() const 8224514f5e3Sopenharmony_ci { 8234514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::LINE_STRING_CLASS_INDEX); 8244514f5e3Sopenharmony_ci } 8254514f5e3Sopenharmony_ci 8264514f5e3Sopenharmony_ci size_t GetConstStringClassIndex() const 8274514f5e3Sopenharmony_ci { 8284514f5e3Sopenharmony_ci return static_cast<size_t>(ConstantIndex::CONSTANT_STRING_CLASS_INDEX); 8294514f5e3Sopenharmony_ci } 8304514f5e3Sopenharmony_ci 8314514f5e3Sopenharmony_ci bool IsSpecialOrUndefined(size_t index) const 8324514f5e3Sopenharmony_ci { 8334514f5e3Sopenharmony_ci size_t specialBegin = static_cast<size_t>(ConstantIndex::UNDEFINED_INDEX); 8344514f5e3Sopenharmony_ci size_t specialEnd = static_cast<size_t>(ConstantIndex::NULL_INDEX); 8354514f5e3Sopenharmony_ci size_t undefinedBegin = GetJSAPIContainersBegin(); 8364514f5e3Sopenharmony_ci size_t undefinedEnd = GetJSAPIContainersEnd(); 8374514f5e3Sopenharmony_ci return (index >= specialBegin && index <= specialEnd) || (index >= undefinedBegin && index <= undefinedEnd); 8384514f5e3Sopenharmony_ci } 8394514f5e3Sopenharmony_ci 8404514f5e3Sopenharmony_ci static constexpr size_t SizeArch32 = 8414514f5e3Sopenharmony_ci JSTaggedValue::TaggedTypeSize() * static_cast<size_t>(ConstantIndex::CONSTANT_COUNT); 8424514f5e3Sopenharmony_ci static constexpr size_t SizeArch64 = 8434514f5e3Sopenharmony_ci JSTaggedValue::TaggedTypeSize() * static_cast<size_t>(ConstantIndex::CONSTANT_COUNT); 8444514f5e3Sopenharmony_ci 8454514f5e3Sopenharmony_ciprivate: 8464514f5e3Sopenharmony_ci void InitSharedStrings(ObjectFactory *factory); 8474514f5e3Sopenharmony_ci void InitSharedRootsClasses(ObjectFactory *factory); 8484514f5e3Sopenharmony_ci void InitSharedMiscellanious(JSThread *thread, ObjectFactory *factory); 8494514f5e3Sopenharmony_ci void InitRootsClasses(ObjectFactory *factory); 8504514f5e3Sopenharmony_ci void InitRootsClassesPartOne(JSHClass *hClass, ObjectFactory *factory); 8514514f5e3Sopenharmony_ci void InitRootsClassesPartTwo(JSHClass *hClass, ObjectFactory *factory); 8524514f5e3Sopenharmony_ci void InitMiscellanious(JSThread *thread, ObjectFactory *factory); 8534514f5e3Sopenharmony_ci void InitGlobalCaches(); 8544514f5e3Sopenharmony_ci void InitJSAPIContainers(); 8554514f5e3Sopenharmony_ci 8564514f5e3Sopenharmony_ci JSTaggedValue constants_[static_cast<int>(ConstantIndex::CONSTANT_COUNT)]; // NOLINT(modernize-avoid-c-arrays) 8574514f5e3Sopenharmony_ci}; 8584514f5e3Sopenharmony_ciSTATIC_ASSERT_EQ_ARCH(sizeof(GlobalEnvConstants), GlobalEnvConstants::SizeArch32, GlobalEnvConstants::SizeArch64); 8594514f5e3Sopenharmony_ci} // namespace panda::ecmascript 8604514f5e3Sopenharmony_ci#endif // ECMASCRIPT_GLOBAL_ENV_CONSTANTS_H 861