1 /*
2  * Copyright (c) 2021-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef ECMASCRIPT_RUNTIME_CALL_ID_H
17 #define ECMASCRIPT_RUNTIME_CALL_ID_H
18 
19 #include "ecmascript/base/config.h"
20 #include "ecmascript/dfx/vmstat/runtime_stat.h"
21 #include "ecmascript/ecma_context.h"
22 
23 namespace panda::ecmascript {
24 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
25 #define INTERPRETER_CALLER_LIST(V)   \
26     V(RunInternal)                   \
27     V(Ldnan)                         \
28     V(Ldinfinity)                    \
29     V(Ldundefined)                   \
30     V(Ldboolean)                     \
31     V(Ldnumber)                      \
32     V(Ldstring)                      \
33     V(Ldnull)                        \
34     V(Ldsymbol)                      \
35     V(Ldfunction)                    \
36     V(Ldglobal)                      \
37     V(Ldtrue)                        \
38     V(Ldfalse)                       \
39     V(Tonumber)                      \
40     V(Toboolean)                     \
41     V(Add2)                          \
42     V(Sub2)                          \
43     V(Mul2)                          \
44     V(Div2)                          \
45     V(Mod2)                          \
46     V(Eq)                            \
47     V(NotEq)                         \
48     V(Less)                          \
49     V(LessEq)                        \
50     V(Greater)                       \
51     V(GreaterEq)                     \
52     V(StrictNotEq)                   \
53     V(StrictEq)                      \
54     V(Shl2)                          \
55     V(Shr2)                          \
56     V(Ashr2)                         \
57     V(And2)                          \
58     V(Or2)                           \
59     V(Xor2)                          \
60     V(Neg)                           \
61     V(Not)                           \
62     V(Inc)                           \
63     V(Dec)                           \
64     V(Exp)                           \
65     V(Throw)                         \
66     V(LdObjByIndex)                  \
67     V(StObjByIndex)                  \
68     V(LdObjByName)                   \
69     V(StObjByName)                   \
70     V(LdObjByValue)                  \
71     V(StObjByValue)                  \
72     V(StOwnByName)                   \
73     V(StOwnById)                     \
74     V(StOwnByValue)                  \
75     V(Trygetobjprop)                 \
76     V(Delobjprop)                    \
77     V(Defineglobalvar)               \
78     V(Definelocalvar)                \
79     V(Definefuncexpr)                \
80     V(DefineFunc)                    \
81     V(SetPatchModule)                \
82     V(NewobjRange)                   \
83     V(Refeq)                         \
84     V(Typeof)                        \
85     V(Ldnewobjrange)                 \
86     V(IsIn)                          \
87     V(Instanceof)                    \
88     V(InstanceofByHandler)           \
89     V(NewObjApply)                   \
90     V(CallArg0)                      \
91     V(CallArg1)                      \
92     V(CallArg2)                      \
93     V(CallArg3)                      \
94     V(CallThisRange)                 \
95     V(CallRange)                     \
96     V(CallSpread)                    \
97     V(Newlexenv)                     \
98     V(NewlexenvwithName)             \
99     V(NewSendableEnv)                \
100     V(Stlexvar)                      \
101     V(Ldlexvar)                      \
102     V(Ldlexenv)                      \
103     V(GetPropIterator)               \
104     V(GetPropIteratorSlowpath)       \
105     V(PrimitiveStringCreate)         \
106     V(CreateIterResultObj)           \
107     V(SuspendGenerator)              \
108     V(ResumeGenerator)               \
109     V(GetResumeMode)                 \
110     V(CreateGeneratorObj)            \
111     V(DefineGetterSetterByValue)     \
112     V(AsyncFunctionEnter)            \
113     V(AsyncFunctionAwaitUncaught)    \
114     V(AsyncFunctionResolveOrReject ) \
115     V(ThrowUndefined)                \
116     V(ThrowConstAssignment)          \
117     V(ThrowUndefinedIfHole)          \
118     V(Copyrestargs)                  \
119     V(Trystobjprop)                  \
120     V(GetTemplateObject)             \
121     V(CreateStringIterator)          \
122     V(NewJSArrayIterator)            \
123     V(NewJSTypedArrayIterator)       \
124     V(MapIteratorNext)               \
125     V(SetIteratorNext)               \
126     V(StringIteratorNext)            \
127     V(ArrayIteratorNext)             \
128     V(GetIterator)                   \
129     V(GetAsyncIterator)              \
130     V(ThrowIfNotObject)              \
131     V(ThrowThrowNotExists)           \
132     V(CreateObjectWithExcludedKeys ) \
133     V(ThrowPatternNonCoercible)      \
134     V(IterNext)                      \
135     V(CloseIterator)                 \
136     V(StArraySpread)                 \
137     V(GetCallSpreadArgs)             \
138     V(TryLoadICByName)               \
139     V(LoadICByName)                  \
140     V(GetPropertyByName)             \
141     V(TryLoadICByValue)              \
142     V(LoadICByValue)                 \
143     V(TryStoreICByName)              \
144     V(StoreOwnICByValue)             \
145     V(StoreICByName)                 \
146     V(TryStoreICByValue)             \
147     V(StoreICByValue)                \
148     V(NotifyInlineCache)             \
149     V(LoadGlobalICByName)            \
150     V(StoreGlobalICByName)           \
151     V(StoreICWithHandler)            \
152     V(StorePrototype)                \
153     V(StoreWithTransition)           \
154     V(StoreTransWithProto)           \
155     V(StoreWithAOT)                  \
156     V(StoreField)                    \
157     V(StoreGlobal)                   \
158     V(LoadPrototype)                 \
159     V(LoadICWithHandler)             \
160     V(StoreElement)                  \
161     V(CallGetter)                    \
162     V(CallSetter)                    \
163     V(AddPropertyByName)             \
164     V(AddPropertyByIndex)            \
165     V(GetPropertyByIndex)            \
166     V(GetPropertyByValue)            \
167     V(SetPropertyByIndex)            \
168     V(SetPropertyByValue)            \
169     V(FastTypeOf)                    \
170     V(FastSetPropertyByIndex)        \
171     V(FastSetPropertyByValue)        \
172     V(FastGetPropertyByName)         \
173     V(FastGetPropertyByValue)        \
174     V(FastGetPropertyByIndex)        \
175     V(NewLexicalEnv)                 \
176     V(ExecuteNative)                 \
177     V(Execute)                       \
178     V(AsmExecute)                    \
179     V(ExecuteAot)                    \
180     V(ToJSTaggedValueWithInt32)      \
181     V(ToJSTaggedValueWithUint32)     \
182     V(ThrowIfSuperNotCorrectCall)    \
183     V(CreateEmptyArray)              \
184     V(CreateEmptyObject)             \
185     V(CreateObjectWithBuffer)        \
186     V(CreateObjectHavingMethod)      \
187     V(SetObjectWithProto)            \
188     V(getmodulenamespace)            \
189     V(StModuleVar)                   \
190     V(LdModuleVar)                   \
191     V(CreateRegExpWithLiteral)       \
192     V(CreateArrayWithBuffer)         \
193     V(GetNextPropName)               \
194     V(GetNextPropNameSlowpath)       \
195     V(CopyDataProperties)            \
196     V(GetUnmapedArgs)                \
197     V(TryStGlobalByName)             \
198     V(LdGlobalVar)                   \
199     V(StGlobalVar)                   \
200     V(TryUpdateGlobalRecord)         \
201     V(LdGlobalRecord)                \
202     V(StGlobalRecord)                \
203     V(ThrowReferenceError)           \
204     V(ThrowTypeError)                \
205     V(MismatchError)                 \
206     V(ThrowSyntaxError)              \
207     V(NewClassFunc)                  \
208     V(DefineClass)                   \
209     V(SuperCall)                     \
210     V(SuperCallSpread)               \
211     V(DefineMethod)                  \
212     V(LdSuperByValue)                \
213     V(StSuperByValue)                \
214     V(ThrowDeleteSuperProperty)      \
215     V(ModWithTSType)                 \
216     V(MulWithTSType)                 \
217     V(SubWithTSType)                 \
218     V(DivWithTSType)                 \
219     V(AddWithTSType)                 \
220     V(GetBitOPDate)                  \
221     V(ShlWithTSType)                 \
222     V(ShrWithTSType)                 \
223     V(AshrWithTSType)                \
224     V(AndWithTSType)                 \
225     V(OrWithTSType)                  \
226     V(XorWithTSType)                 \
227     V(EqualWithIC)                   \
228     V(NotEqualWithIC)                \
229     V(Compare)                       \
230     V(LessWithIC)                    \
231     V(LessEqWithIC)                  \
232     V(GreaterWithIC)                 \
233     V(SetPropertyByName)             \
234     V(GreaterEqWithIC)               \
235     V(LdBigInt)                      \
236     V(Tonumeric)                     \
237     V(CreateAsyncGeneratorObj)       \
238     V(AsyncGeneratorResolve)         \
239     V(GetSuperConstructor)           \
240     V(DynamicImport)                 \
241     V(LdPatchVar)                    \
242     V(StPatchVar)                    \
243     V(AsyncGeneratorReject)          \
244     V(LdPrivateProperty)             \
245     V(StPrivateProperty)             \
246     V(TestIn)                        \
247     V(NotifyConcurrentResult)        \
248     V(DefineField)                   \
249     V(ToPropertyKey)                 \
250     V(CreatePrivateProperty)         \
251     V(DefinePrivateProperty)         \
252     V(CreateSharedClass)             \
253     V(LdSendableClass)               \
254     V(UpdateAOTHClass)               \
255     V(SetGeneratorState)
256 
257 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
258 #define BUILTINS_API_LIST(V)                   \
259     V(Array, Constructor)                     \
260     V(Array, From)                            \
261     V(Array, Of)                              \
262     V(Array, IsArray)                         \
263     V(Array, Entries)                         \
264     V(Array, Species)                         \
265     V(Array, Concat)                          \
266     V(Array, CopyWithin)                      \
267     V(Array, Every)                           \
268     V(Array, Fill)                            \
269     V(Array, Filter)                          \
270     V(Array, Find)                            \
271     V(Array, FindIndex)                       \
272     V(Array, FindLast)                        \
273     V(Array, FindLastIndex)                   \
274     V(Array, ForEach)                         \
275     V(Array, IndexOf)                         \
276     V(Array, Join)                            \
277     V(Array, Keys)                            \
278     V(Array, LastIndexOf)                     \
279     V(Array, Map)                             \
280     V(Array, Pop)                             \
281     V(Array, Push)                            \
282     V(Array, Reduce)                          \
283     V(Array, ReduceRight)                     \
284     V(Array, Reverse)                         \
285     V(Array, Shift)                           \
286     V(Array, Slice)                           \
287     V(Array, Some)                            \
288     V(Array, Sort)                            \
289     V(Array, Splice)                          \
290     V(Array, ToLocaleString)                  \
291     V(Array, ToString)                        \
292     V(Array, Unscopables)                     \
293     V(Array, Unshift)                         \
294     V(Array, Values)                          \
295     V(Array, Includes)                        \
296     V(Array, Flat)                            \
297     V(Array, FlatMap)                         \
298     V(Array, At)                              \
299     V(Array, ToReversed)                      \
300     V(Array, With)                            \
301     V(Array, ToSorted)                        \
302     V(Array, ToSpliced)                       \
303     V(SharedArray, Constructor)               \
304     V(SharedArray, From)                      \
305     V(SharedArray, Create)                    \
306     V(SharedArray, IsArray)                   \
307     V(SharedArray, Entries)                   \
308     V(SharedArray, Species)                   \
309     V(SharedArray, Concat)                    \
310     V(SharedArray, Fill)                      \
311     V(SharedArray, Filter)                    \
312     V(SharedArray, Find)                      \
313     V(SharedArray, FindIndex)                 \
314     V(SharedArray, ForEach)                   \
315     V(SharedArray, IndexOf)                   \
316     V(SharedArray, Join)                      \
317     V(SharedArray, Keys)                      \
318     V(SharedArray, Map)                       \
319     V(SharedArray, Pop)                       \
320     V(SharedArray, Push)                      \
321     V(SharedArray, Reduce)                    \
322     V(SharedArray, Shift)                     \
323     V(SharedArray, Slice)                     \
324     V(SharedArray, Sort)                      \
325     V(SharedArray, Splice)                    \
326     V(SharedArray, ToString)                  \
327     V(SharedArray, Unscopables)               \
328     V(SharedArray, Unshift)                   \
329     V(SharedArray, Values)                    \
330     V(SharedArray, Includes)                  \
331     V(SharedArray, Flat)                      \
332     V(SharedArray, FlatMap)                   \
333     V(SharedArray, At)                        \
334     V(SharedArray, With)                      \
335     V(SharedArray, ShrinkTo)                  \
336     V(SharedArray, ExtendTo)                  \
337     V(SharedArray, Every)                     \
338     V(SharedArray, Some)                      \
339     V(SharedArray, LastIndexOf)               \
340     V(ArrayBuffer, Constructor)               \
341     V(ArrayBuffer, Slice)                     \
342     V(ArrayBuffer, Species)                   \
343     V(ArrayBuffer, GetByteLength)             \
344     V(ArrayBuffer, GetValueFromBuffer)        \
345     V(ArrayBuffer, SetValueInBuffer)          \
346     V(ArrayBuffer, CloneArrayBuffer)          \
347     V(ArrayBuffer, AllocateArrayBuffer)       \
348     V(ArrayBuffer, IsView)                    \
349     V(SharedArrayBuffer, Constructor)         \
350     V(SharedArrayBuffer, Slice)               \
351     V(SharedArrayBuffer, AllocateSharedArrayBuffer) \
352     V(SharedArrayBuffer, IsSharedArrayBuffer) \
353     V(SharedArrayBuffer, IsView)              \
354     V(SharedArrayBuffer, Species)             \
355     V(SharedArrayBuffer, GetByteLength)       \
356     V(SendableArrayBuffer, Constructor)       \
357     V(SendableArrayBuffer, Slice)             \
358     V(SendableArrayBuffer, Species)           \
359     V(SendableArrayBuffer, GetByteLength)     \
360     V(SendableArrayBuffer, GetValueFromBuffer)  \
361     V(SendableArrayBuffer, SetValueInBuffer)  \
362     V(SendableArrayBuffer, CloneArrayBuffer)  \
363     V(SendableArrayBuffer, AllocateSendableArrayBuffer) \
364     V(SendableArrayBuffer, IsView)            \
365     V(AsyncFromSyncIterator, Next)            \
366     V(AsyncFromSyncIterator, Throw)           \
367     V(AsyncFromSyncIterator, Return)          \
368     V(AsyncFunction, Constructor)             \
369     V(SharedAsyncFunction, Constructor)       \
370     V(Boolean, BooleanPrototypeToString)      \
371     V(Boolean, BooleanPrototypeValueOf)       \
372     V(Boolean, Constructor)                   \
373     V(Boolean, ThisBooleanValue)              \
374     V(CjsExports, CjsExportsConstructor)      \
375     V(CjsModule, CjsModuleConstructor)        \
376     V(CjsModule, Compiler)                    \
377     V(CjsModule, Load)                        \
378     V(CjsModule, ResolveFilename)             \
379     V(CjsModule, Require)                     \
380     V(CjsModule, GetExportsForCircularRequire) \
381     V(CjsModule, UpdateChildren)              \
382     V(CjsRequire, CjsRequireConstructor)      \
383     V(CjsRequire, Main)                       \
384     V(CjsRequire, Resolve)                    \
385     V(Collator, CollatorConstructor)          \
386     V(Collator, SupportedLocalesOf)           \
387     V(Collator, Compare)                      \
388     V(Collator, AnonymousCollator)            \
389     V(Collator, ResolvedOptions)              \
390     V(DataView, Constructor)                  \
391     V(DataView, GetBuffer)                    \
392     V(DataView, GetByteLength)                \
393     V(DataView, GetOffset)                    \
394     V(DataView, GetViewValue)                 \
395     V(DataView, SetViewValue)                 \
396     V(DataView, GetFloat32)                   \
397     V(DataView, GetFloat64)                   \
398     V(DataView, GetInt8)                      \
399     V(DataView, GetInt16)                     \
400     V(DataView, GetInt32)                     \
401     V(DataView, GetUint8)                     \
402     V(DataView, GetUint16)                    \
403     V(DataView, GetUint32)                    \
404     V(DataView, GetBigInt64)                  \
405     V(DataView, GetBigUint64)                 \
406     V(DataView, SetFloat32)                   \
407     V(DataView, SetFloat64)                   \
408     V(DataView, SetInt8)                      \
409     V(DataView, SetInt16)                     \
410     V(DataView, SetInt32)                     \
411     V(DataView, SetUint8)                     \
412     V(DataView, SetUint16)                    \
413     V(DataView, SetUint32)                    \
414     V(DataView, SetBigInt64)                  \
415     V(DataView, SetBigUint64)                 \
416     V(DataView, GetTypedValue)                \
417     V(DataView, SetTypedValue)                \
418     V(Date, Constructor)                      \
419     V(Date, Now)                              \
420     V(Date, UTC)                              \
421     V(Date, Parse)                            \
422     V(Date, GetDateField)                     \
423     V(Date, GetTime)                          \
424     V(Date, SetTime)                          \
425     V(Date, ToJSON)                           \
426     V(Date, ValueOf)                          \
427     V(Date, ToPrimitive)                      \
428     V(Date, ToLocaleString)                   \
429     V(Date, ToLocaleDateString)               \
430     V(Date, ToLocaleTimeString)               \
431     V(DateTimeFormat, Constructor)            \
432     V(DateTimeFormat, SupportedLocalesOf)     \
433     V(DateTimeFormat, Format)                 \
434     V(DateTimeFormat, AnonymousDateTimeFormat) \
435     V(DateTimeFormat, FormatToParts)          \
436     V(DateTimeFormat, ResolvedOptions)        \
437     V(DateTimeFormat, FormatRange)            \
438     V(DateTimeFormat, FormatRangeToParts)     \
439     V(DisplayNames, Constructor)              \
440     V(DisplayNames, SupportedLocalesOf)       \
441     V(DisplayNames, Of)                       \
442     V(DisplayNames, ResolvedOptions)          \
443     V(Segmenter, Constructor)                 \
444     V(Segmenter, SupportedLocalesOf)          \
445     V(Segmenter, ResolvedOptions)             \
446     V(Segmenter, Segment)                     \
447     V(Segments, Containing)                   \
448     V(Segments, GetSegmentIterator)           \
449     V(SegmentIterator, Next)                  \
450     V(Error, ErrorConstructor)                \
451     V(Error, ErrorToString)                   \
452     V(Error, RangeErrorConstructor)           \
453     V(Error, RangeErrorToString)              \
454     V(Error, ReferenceErrorConstructor)       \
455     V(Error, ReferenceErrorToString)          \
456     V(Error, TypeErrorConstructor)            \
457     V(Error, TypeErrorToString)               \
458     V(Error, ThrowTypeError)                  \
459     V(Error, URIErrorConstructor)             \
460     V(Error, URIErrorToString)                \
461     V(Error, SyntaxErrorConstructor)          \
462     V(Error, SyntaxErrorToString)             \
463     V(Error, EvalErrorConstructor)            \
464     V(Error, EvalErrorToString)               \
465     V(Error, AggregateErrorConstructor)       \
466     V(Error, AggregateErrorToString)          \
467     V(Error, OOMErrorConstructor)             \
468     V(Error, OOMErrorToString)                \
469     V(Error, TerminationErrorConstructor)     \
470     V(Error, TerminationErrorToString)        \
471     V(Function, Constructor)                  \
472     V(Function, PrototypeApply)               \
473     V(Function, PrototypeBind)                \
474     V(Function, PrototypeCall)                \
475     V(Function, PrototypeToString)            \
476     V(Function, PrototypeHasInstance)         \
477     V(Function, PrototypeInvokeSelf)          \
478     V(Generator, Constructor)                 \
479     V(Generator, PrototypeNext)               \
480     V(Generator, PrototypeReturn)             \
481     V(Generator, PrototypeThrow)              \
482     V(Global, IsFinite)                       \
483     V(Global, NotSupportEval)                 \
484     V(Global, Encode)                         \
485     V(Global, IsNaN)                          \
486     V(Global, PrintEntryPoint)                \
487     V(Global, NewobjRange)                    \
488     V(Global, Decode)                         \
489     V(Global, PrintString)                    \
490     V(Global, StartRuntimeStat)               \
491     V(Global, StopRuntimeStat)                \
492     V(Global, PrintOptStat)                   \
493     V(Global, PrintFunctionCallStat)          \
494     V(Global, CallJsBoundFunction)            \
495     V(Global, CallJsProxy)                    \
496     V(Global, DecodeURI)                      \
497     V(Global, EncodeURI)                      \
498     V(Global, DecodeURIComponent)             \
499     V(Global, EncodeURIComponent)             \
500     V(Global, Escape)                         \
501     V(Global, Unescape)                       \
502     V(Global, GetCurrentModuleName)           \
503     V(Global, GetCurrentBundleName)           \
504     V(Intl, GetCanonicalLocales)              \
505     V(Iterator, Constructor)                  \
506     V(Iterator, Next)                         \
507     V(Iterator, Throw)                        \
508     V(Iterator, Return)                       \
509     V(Iterator, GetObj)                       \
510     V(Locale, Constructor)                    \
511     V(Locale, Maximize)                       \
512     V(Locale, Minimize)                       \
513     V(Locale, ToString)                       \
514     V(Locale, GetBaseName)                    \
515     V(Locale, GetCalendar)                    \
516     V(Locale, GetCaseFirst)                   \
517     V(Locale, GetCollation)                   \
518     V(Locale, GetHourCycle)                   \
519     V(Locale, GetNumeric)                     \
520     V(Locale, GetNumberingSystem)             \
521     V(Locale, GetLanguage)                    \
522     V(Locale, GetScript)                      \
523     V(Locale, GetRegion)                      \
524     V(AsyncIterator, Constructor)             \
525     V(AsyncIterator, Next)                    \
526     V(AsyncIterator, Throw)                   \
527     V(AsyncIterator, Return)                  \
528     V(AsyncIterator, GetObj)                  \
529     V(Json, Parse)                            \
530     V(Json, Stringify)                        \
531     V(Map, Constructor)                       \
532     V(Map, Species)                           \
533     V(Map, Clear)                             \
534     V(Map, Delete)                            \
535     V(Map, Entries)                           \
536     V(Map, Get)                               \
537     V(Map, Has)                               \
538     V(Map, Keys)                              \
539     V(Map, Set)                               \
540     V(Map, GetSize)                           \
541     V(Map, Values)                            \
542     V(Map, ForEach)                           \
543     V(Map, AddEntriesFromIterable)            \
544     V(SharedMap, Constructor)               \
545     V(SharedMap, Species)                   \
546     V(SharedMap, Clear)                     \
547     V(SharedMap, Delete)                    \
548     V(SharedMap, Entries)                   \
549     V(SharedMap, Get)                       \
550     V(SharedMap, Has)                       \
551     V(SharedMap, Keys)                      \
552     V(SharedMap, Set)                       \
553     V(SharedMap, GetSize)                   \
554     V(SharedMap, Values)                    \
555     V(SharedMap, ForEach)                   \
556     V(SharedMap, AddEntriesFromIterable)    \
557     V(Math, Abs)                              \
558     V(Math, Acos)                             \
559     V(Math, Acosh)                            \
560     V(Math, Asin)                             \
561     V(Math, Asinh)                            \
562     V(Math, Atan)                             \
563     V(Math, Atanh)                            \
564     V(Math, Atan2)                            \
565     V(Math, Cbrt)                             \
566     V(Math, Ceil)                             \
567     V(Math, Clz32)                            \
568     V(Math, Cos)                              \
569     V(Math, Cosh)                             \
570     V(Math, Exp)                              \
571     V(Math, Expm1)                            \
572     V(Math, Floor)                            \
573     V(Math, Fround)                           \
574     V(Math, Hypot)                            \
575     V(Math, Imul)                             \
576     V(Math, Log)                              \
577     V(Math, Log1p)                            \
578     V(Math, Log10)                            \
579     V(Math, Log2)                             \
580     V(Math, Max)                              \
581     V(Math, Min)                              \
582     V(Math, Pow)                              \
583     V(Math, Random)                           \
584     V(Math, Round)                            \
585     V(Math, Sign)                             \
586     V(Math, Sin)                              \
587     V(Math, Sinh)                             \
588     V(Math, Sqrt)                             \
589     V(Math, Tan)                              \
590     V(Math, Tanh)                             \
591     V(Math, Trunc)                            \
592     V(NumberFormat, Constructor)              \
593     V(NumberFormat, SupportedLocalesOf)       \
594     V(NumberFormat, Format)                   \
595     V(NumberFormat, FormatToParts)            \
596     V(NumberFormat, ResolvedOptions)          \
597     V(Atomics, AtomicReadModifyWrite)         \
598     V(Atomics, AtomicReadModifyWriteCase)     \
599     V(Atomics, Add)                           \
600     V(Atomics, And)                           \
601     V(Atomics, DoWait)                        \
602     V(Atomics, HandleWithUint8)               \
603     V(Atomics, HandleWithInt8)                \
604     V(Atomics, HandleWithUint16)              \
605     V(Atomics, HandleWithInt16)               \
606     V(Atomics, HandleWithUint32)              \
607     V(Atomics, HandleWithInt32)               \
608     V(Atomics, HandleWithBigInt64)            \
609     V(Atomics, HandleWithBigUint64)           \
610     V(Atomics, Or)                            \
611     V(Atomics, Xor)                           \
612     V(Atomics, Sub)                           \
613     V(Atomics, Exchange)                      \
614     V(Atomics, CompareExchange)               \
615     V(Atomics, Store)                         \
616     V(Atomics, Load)                          \
617     V(Atomics, IsLockFree)                    \
618     V(Atomics, Wait)                          \
619     V(Atomics, Notify)                        \
620     V(Number, Constructor)                    \
621     V(Number, IsFinite)                       \
622     V(Number, IsInteger)                      \
623     V(Number, IsNaN)                          \
624     V(Number, IsSafeInteger)                  \
625     V(Number, ParseFloat)                     \
626     V(Number, ParseInt)                       \
627     V(Number, ToExponential)                  \
628     V(Number, ToFixed)                        \
629     V(Number, ToLocaleString)                 \
630     V(Number, ToPrecision)                    \
631     V(Number, ToString)                       \
632     V(Number, ValueOf)                        \
633     V(Number, ThisNumberValue)                \
634     V(BigInt, Constructor)                    \
635     V(BigInt, AsUintN)                        \
636     V(BigInt, AsIntN)                         \
637     V(BigInt, ToLocaleString)                 \
638     V(BigInt, ToString)                       \
639     V(BigInt, ValueOf)                        \
640     V(BigInt, ThisBigIntValue)                \
641     V(AsyncGenerator, Constructor)            \
642     V(AsyncGenerator, PrototypeNext)          \
643     V(AsyncGenerator, PrototypeReturn)        \
644     V(AsyncGenerator, PrototypeThrow)         \
645     V(Object, Constructor)                    \
646     V(Object, Assign)                         \
647     V(Object, Create)                         \
648     V(Object, CreateDataPropertyOnObjectFunctions) \
649     V(Object, DefineProperties)               \
650     V(Object, DefineProperty)                 \
651     V(Object, Freeze)                         \
652     V(Object, FromEntries)                    \
653     V(Object, GetOwnPropertyDescriptor)       \
654     V(Object, GetOwnPropertyDescriptors)      \
655     V(Object, GetOwnPropertyKeys)             \
656     V(Object, GetOwnPropertyNames)            \
657     V(Object, GetOwnPropertySymbols)          \
658     V(Object, GetPrototypeOf)                 \
659     V(Object, Is)                             \
660     V(Object, IsExtensible)                   \
661     V(Object, IsFrozen)                       \
662     V(Object, IsSealed)                       \
663     V(Object, PropertyIsEnumerable)           \
664     V(Object, CreateRealm)                    \
665     V(Object, Keys)                           \
666     V(Object, Values)                         \
667     V(Object, PreventExtensions)              \
668     V(Object, Seal)                           \
669     V(Object, SetPrototypeOf)                 \
670     V(Object, HasOwnProperty)                 \
671     V(Object, HasOwn)                         \
672     V(Object, IsPrototypeOf)                  \
673     V(Object, ToLocaleString)                 \
674     V(Object, GetBuiltinObjectToString)       \
675     V(Object, ToString)                       \
676     V(Object, ValueOf)                        \
677     V(Object, ProtoGetter)                    \
678     V(Object, ProtoSetter)                    \
679     V(PluralRules, Constructor)               \
680     V(PluralRules, SupportedLocalesOf)        \
681     V(PluralRules, Select)                    \
682     V(PluralRules, ResolvedOptions)           \
683     V(PromiseHandler, Resolve)                \
684     V(PromiseHandler, Reject)                 \
685     V(PromiseHandler, Executor)               \
686     V(PromiseHandler, ResolveElementFunction) \
687     V(PromiseHandler, AllSettledResolveElementFunction) \
688     V(PromiseHandler, AllSettledRejectElementFunction) \
689     V(PromiseHandler, AnyRejectElementFunction) \
690     V(PromiseHandler, AsyncAwaitRejected)     \
691     V(PromiseHandler, AsyncAwaitFulfilled)    \
692     V(PromiseHandler, valueThunkFunction)     \
693     V(PromiseHandler, throwerFunction)        \
694     V(PromiseHandler, ThenFinally)            \
695     V(PromiseHandler, CatchFinally)           \
696     V(PromiseHandler, PromiseResolve)         \
697     V(PromiseJob, Reaction)                   \
698     V(PromiseJob, ResolveThenableJob)         \
699     V(PromiseJob, DynamicImportJob)           \
700     V(PromiseJob, CatchException)             \
701     V(Promise, Constructor)                   \
702     V(Promise, All)                           \
703     V(Promise, Race)                          \
704     V(Promise, Reject)                        \
705     V(Promise, Resolve)                       \
706     V(Promise, GetSpecies)                    \
707     V(Promise, GetPromiseResolve)             \
708     V(Promise, Catch)                         \
709     V(Promise, Then)                          \
710     V(Promise, PerformPromiseThen)            \
711     V(Promise, Finally)                       \
712     V(Promise, Any)                           \
713     V(Promise, PerformPromiseAny)             \
714     V(Promise, AllSettled)                    \
715     V(Promise, PerformPromiseRace)            \
716     V(Promise, PerformPromiseAll)             \
717     V(Promise, PerformPromiseAllSettled)      \
718     V(Proxy, Constructor)                     \
719     V(Proxy, Revocable)                       \
720     V(Proxy, InvalidateProxyFunction)         \
721     V(Reflect, Apply)                         \
722     V(Reflect, Constructor)                   \
723     V(Reflect, DefineProperty)                \
724     V(Reflect, DeleteProperty)                \
725     V(Reflect, Get)                           \
726     V(Reflect, GetOwnPropertyDescriptor)      \
727     V(Reflect, GetPrototypeOf)                \
728     V(Reflect, Has)                           \
729     V(Reflect, OwnKeys)                       \
730     V(Reflect, PreventExtensions)             \
731     V(Reflect, Set)                           \
732     V(Reflect, SetPrototypeOf)                \
733     V(RegExp, Constructor)                    \
734     V(RegExp, Exec)                           \
735     V(RegExp, Test)                           \
736     V(RegExp, ToString)                       \
737     V(RegExp, GetFlags)                       \
738     V(RegExp, GetSpecies)                     \
739     V(RegExp, Match)                          \
740     V(RegExp, MatchAll)                       \
741     V(RegExp, Replace)                        \
742     V(RegExp, Search)                         \
743     V(RegExp, Split)                          \
744     V(RegExp, Create)                         \
745     V(RegExp, GetGlobal)                      \
746     V(RegExp, GetHasIndices)                  \
747     V(RegExp, GetIgnoreCase)                  \
748     V(RegExp, GetMultiline)                   \
749     V(RegExp, GetDotAll)                      \
750     V(RegExp, GetSource)                      \
751     V(RegExp, GetSticky)                      \
752     V(RegExp, GetUnicode)                     \
753     V(RegExp, RegExpReplaceFast)              \
754     V(RegExp, Matcher)                        \
755     V(RegExp, GetFlagsInternal)               \
756     V(RegExp, RegExpBuiltinExec)              \
757     V(RegExp, RegExpExec)                     \
758     V(RegExp, UpdateExpressionFlags)          \
759     V(RegExp, RegExpAlloc)                    \
760     V(RegExp, GetDollarString)                \
761     V(RegExp, RegExpInitialize)               \
762     V(RegExp, EscapeRegExpPattern)            \
763     V(RegExp, FlagsBitsToString)              \
764     V(RelativeTimeFormat, Constructor)        \
765     V(RelativeTimeFormat, SupportedLocalesOf) \
766     V(RelativeTimeFormat, Format)             \
767     V(RelativeTimeFormat, FormatToParts)      \
768     V(RelativeTimeFormat, ResolvedOptions)    \
769     V(Set, Constructor)                       \
770     V(Set, Species)                           \
771     V(Set, Add)                               \
772     V(Set, Clear)                             \
773     V(Set, Delete)                            \
774     V(Set, Entries)                           \
775     V(Set, Has)                               \
776     V(Set, GetSize)                           \
777     V(Set, Values)                            \
778     V(Set, ForEach)                           \
779     V(SharedSet, Constructor)                 \
780     V(SharedSet, Species)                     \
781     V(SharedSet, Add)                         \
782     V(SharedSet, Clear)                       \
783     V(SharedSet, Delete)                      \
784     V(SharedSet, Entries)                     \
785     V(SharedSet, Has)                         \
786     V(SharedSet, GetSize)                     \
787     V(SharedSet, Values)                      \
788     V(SharedSet, ForEach)                     \
789     V(StringIterator, Next)                   \
790     V(String, Constructor)                    \
791     V(String, FromCharCode)                   \
792     V(String, FromCodePoint)                  \
793     V(String, Raw)                            \
794     V(String, GetSubstitution)                \
795     V(String, At)                             \
796     V(String, CharAt)                         \
797     V(String, CharCodeAt)                     \
798     V(String, IsWellFormed)                   \
799     V(String, ToWellFormed)                   \
800     V(String, CodePointAt)                    \
801     V(String, Concat)                         \
802     V(String, EndsWith)                       \
803     V(String, Includes)                       \
804     V(String, IndexOf)                        \
805     V(String, LastIndexOf)                    \
806     V(String, LocaleCompare)                  \
807     V(String, Match)                          \
808     V(String, MatchAll)                       \
809     V(String, Normalize)                      \
810     V(String, PadStart)                       \
811     V(String, PadEnd)                         \
812     V(String, Repeat)                         \
813     V(String, Replace)                        \
814     V(String, ReplaceAll)                     \
815     V(String, Search)                         \
816     V(String, Slice)                          \
817     V(String, Split)                          \
818     V(String, StartsWith)                     \
819     V(String, Substring)                      \
820     V(String, ToLocaleLowerCase)              \
821     V(String, ToLocaleUpperCase)              \
822     V(String, ToLowerCase)                    \
823     V(String, ToString)                       \
824     V(String, ToUpperCase)                    \
825     V(String, Trim)                           \
826     V(String, TrimStart)                      \
827     V(String, TrimEnd)                        \
828     V(String, TrimLeft)                       \
829     V(String, TrimRight)                      \
830     V(String, GetStringIterator)              \
831     V(String, SubStr)                         \
832     V(String, GetLength)                      \
833     V(String, ThisStringValue)                \
834     V(String, Pad)                            \
835     V(Symbol, Constructor)                    \
836     V(Symbol, ToString)                       \
837     V(Symbol, ValueOf)                        \
838     V(Symbol, For)                            \
839     V(Symbol, KeyFor)                         \
840     V(Symbol, DescriptionGetter)              \
841     V(Symbol, ThisSymbolValue)                \
842     V(Symbol, ToPrimitive)                    \
843     V(Symbol, SymbolDescriptiveString)        \
844     V(TypedArray, BaseConstructor)            \
845     V(TypedArray, Int8ArrayConstructor)       \
846     V(TypedArray, Uint8ArrayConstructor)      \
847     V(TypedArray, Uint8ClampedArrayConstructor) \
848     V(TypedArray, Int16ArrayConstructor)      \
849     V(TypedArray, Uint16ArrayConstructor)     \
850     V(TypedArray, Int32ArrayConstructor)      \
851     V(TypedArray, Uint32ArrayConstructor)     \
852     V(TypedArray, Float32ArrayConstructor)    \
853     V(TypedArray, Float64ArrayConstructor)    \
854     V(TypedArray, BigInt64ArrayConstructor)   \
855     V(TypedArray, BigUint64ArrayConstructor)  \
856     V(TypedArray, Fill)                       \
857     V(TypedArray, Find)                       \
858     V(TypedArray, FindIndex)                  \
859     V(TypedArray, FindLast)                   \
860     V(TypedArray, FindLastIndex)              \
861     V(TypedArray, IndexOf)                    \
862     V(TypedArray, LastIndexOf)                \
863     V(TypedArray, Reduce)                     \
864     V(TypedArray, ReduceRight)                \
865     V(TypedArray, Reverse)                    \
866     V(TypedArray, Some)                       \
867     V(TypedArray, ToLocaleString)             \
868     V(TypedArray, ToString)                   \
869     V(TypedArray, Includes)                   \
870     V(TypedArray, From)                       \
871     V(TypedArray, Of)                         \
872     V(TypedArray, Species)                    \
873     V(TypedArray, GetBuffer)                  \
874     V(TypedArray, GetByteLength)              \
875     V(TypedArray, GetByteOffset)              \
876     V(TypedArray, CopyWithin)                 \
877     V(TypedArray, Entries)                    \
878     V(TypedArray, Every)                      \
879     V(TypedArray, Filter)                     \
880     V(TypedArray, ForEach)                    \
881     V(TypedArray, Join)                       \
882     V(TypedArray, Keys)                       \
883     V(TypedArray, GetLength)                  \
884     V(TypedArray, Map)                        \
885     V(TypedArray, Set)                        \
886     V(TypedArray, Slice)                      \
887     V(TypedArray, Sort)                       \
888     V(TypedArray, ToSorted)                   \
889     V(TypedArray, Subarray)                   \
890     V(TypedArray, Values)                     \
891     V(TypedArray, With)                       \
892     V(TypedArray, ToStringTag)                \
893     V(TypedArray, At)                         \
894     V(TypedArray, ToReversed)                 \
895     V(SharedTypedArray, BaseConstructor)              \
896     V(SharedTypedArray, Int8ArrayConstructor)         \
897     V(SharedTypedArray, Uint8ArrayConstructor)        \
898     V(SharedTypedArray, Uint8ClampedArrayConstructor) \
899     V(SharedTypedArray, Int16ArrayConstructor)        \
900     V(SharedTypedArray, Uint16ArrayConstructor)       \
901     V(SharedTypedArray, Int32ArrayConstructor)        \
902     V(SharedTypedArray, Uint32ArrayConstructor)       \
903     V(SharedTypedArray, Float32ArrayConstructor)      \
904     V(SharedTypedArray, Float64ArrayConstructor)      \
905     V(SharedTypedArray, BigInt64ArrayConstructor)     \
906     V(SharedTypedArray, BigUint64ArrayConstructor)    \
907     V(SharedTypedArray, Fill)                 \
908     V(SharedTypedArray, Find)                 \
909     V(SharedTypedArray, FindIndex)            \
910     V(SharedTypedArray, IndexOf)              \
911     V(SharedTypedArray, Reduce)               \
912     V(SharedTypedArray, Reverse)              \
913     V(SharedTypedArray, Some)                 \
914     V(SharedTypedArray, ToLocaleString)       \
915     V(SharedTypedArray, ToString)             \
916     V(SharedTypedArray, Includes)             \
917     V(SharedTypedArray, From)                 \
918     V(SharedTypedArray, Of)                   \
919     V(SharedTypedArray, Species)              \
920     V(SharedTypedArray, GetBuffer)            \
921     V(SharedTypedArray, GetByteLength)        \
922     V(SharedTypedArray, GetByteOffset)        \
923     V(SharedTypedArray, GetLength)            \
924     V(SharedTypedArray, CopyWithin)           \
925     V(SharedTypedArray, Entries)              \
926     V(SharedTypedArray, Every)                \
927     V(SharedTypedArray, Filter)               \
928     V(SharedTypedArray, ForEach)              \
929     V(SharedTypedArray, Join)                 \
930     V(SharedTypedArray, Keys)                 \
931     V(SharedTypedArray, Map)                  \
932     V(SharedTypedArray, Set)                  \
933     V(SharedTypedArray, Slice)                \
934     V(SharedTypedArray, Sort)                 \
935     V(SharedTypedArray, Subarray)             \
936     V(SharedTypedArray, Values)               \
937     V(SharedTypedArray, ToStringTag)          \
938     V(SharedTypedArray, At)                   \
939     V(WeakMap, Constructor)                   \
940     V(WeakMap, Delete)                        \
941     V(WeakMap, Get)                           \
942     V(WeakMap, Has)                           \
943     V(WeakMap, Set)                           \
944     V(WeakSet, Constructor)                   \
945     V(WeakSet, Delete)                        \
946     V(WeakSet, Add)                           \
947     V(WeakSet, Has)                           \
948     V(WeakRef, Constructor)                   \
949     V(WeakRef, Deref)                         \
950     V(FinalizationRegistry, Constructor)      \
951     V(FinalizationRegistry, Register)         \
952     V(FinalizationRegistry, Unregister)       \
953     V(ArrayList, Constructor)                 \
954     V(ArrayList, Add)                         \
955     V(ArrayList, Insert)                      \
956     V(ArrayList, Clear)                       \
957     V(ArrayList, Clone)                       \
958     V(ArrayList, Has)                         \
959     V(ArrayList, GetCapacity)                 \
960     V(ArrayList, IncreaseCapacityTo)          \
961     V(ArrayList, TrimToCurrentLength)         \
962     V(ArrayList, GetIndexOf)                  \
963     V(ArrayList, IsEmpty)                     \
964     V(ArrayList, GetLastIndexOf)              \
965     V(ArrayList, RemoveByIndex)               \
966     V(ArrayList, Remove)                      \
967     V(ArrayList, RemoveByRange)               \
968     V(ArrayList, ReplaceAllElements)          \
969     V(ArrayList, Sort)                        \
970     V(ArrayList, SubArrayList)                \
971     V(ArrayList, ConvertToArray)              \
972     V(ArrayList, ForEach)                     \
973     V(ArrayList, GetIteratorObj)              \
974     V(ArrayList, Get)                         \
975     V(ArrayList, Set)                         \
976     V(ArrayList, GetSize)                     \
977     V(BitVector, Constructor)                 \
978     V(BitVector, Push)                        \
979     V(BitVector, Pop)                         \
980     V(BitVector, Has)                         \
981     V(BitVector, SetBitsByRange)              \
982     V(BitVector, GetBitsByRange)              \
983     V(BitVector, Resize)                      \
984     V(BitVector, SetAllBits)                  \
985     V(BitVector, GetBitCountByRange)          \
986     V(BitVector, GetIndexOf)                  \
987     V(BitVector, GetLastIndexOf)              \
988     V(BitVector, FlipBitByIndex)              \
989     V(BitVector, FlipBitsByRange)             \
990     V(BitVector, GetSize)                     \
991     V(BitVector, GetIteratorObj)              \
992     V(ListFormat, Constructor)                \
993     V(ListFormat, SupportedLocalesOf)         \
994     V(ListFormat, Format)                     \
995     V(ListFormat, FormatToParts)              \
996     V(ListFormat, ResolvedOptions)            \
997     V(LightWeightMap, Constructor)            \
998     V(LightWeightMap, HasAll)                 \
999     V(LightWeightMap, HasKey)                 \
1000     V(LightWeightMap, HasValue)               \
1001     V(LightWeightMap, IncreaseCapacityTo)     \
1002     V(LightWeightMap, Entries)                \
1003     V(LightWeightMap, Get)                    \
1004     V(LightWeightMap, GetIndexOfKey)          \
1005     V(LightWeightMap, GetIndexOfValue)        \
1006     V(LightWeightMap, IsEmpty)                \
1007     V(LightWeightMap, GetKeyAt)               \
1008     V(LightWeightMap, Keys)                   \
1009     V(LightWeightMap, SetAll)                 \
1010     V(LightWeightMap, Set)                    \
1011     V(LightWeightMap, Remove)                 \
1012     V(LightWeightMap, RemoveAt)               \
1013     V(LightWeightMap, Clear)                  \
1014     V(LightWeightMap, SetValueAt)             \
1015     V(LightWeightMap, ForEach)                \
1016     V(LightWeightMap, ToString)               \
1017     V(LightWeightMap, GetValueAt)             \
1018     V(LightWeightMap, Length)                 \
1019     V(LightWeightSet, Constructor)            \
1020     V(LightWeightSet, Add)                    \
1021     V(LightWeightSet, AddAll)                 \
1022     V(LightWeightSet, IsEmpty)                \
1023     V(LightWeightSet, GetValueAt)             \
1024     V(LightWeightSet, HasAll)                 \
1025     V(LightWeightSet, Has)                    \
1026     V(LightWeightSet, HasHash)                \
1027     V(LightWeightSet, Equal)                  \
1028     V(LightWeightSet, IncreaseCapacityTo)     \
1029     V(LightWeightSet, GetIteratorObj)         \
1030     V(LightWeightSet, Values)                 \
1031     V(LightWeightSet, Entries)                \
1032     V(LightWeightSet, ForEach)                \
1033     V(LightWeightSet, GetIndexOf)             \
1034     V(LightWeightSet, Remove)                 \
1035     V(LightWeightSet, RemoveAt)               \
1036     V(LightWeightSet, Clear)                  \
1037     V(LightWeightSet, ToString)               \
1038     V(LightWeightSet, ToArray)                \
1039     V(LightWeightSet, GetSize)                \
1040     V(PlainArray, Constructor)                \
1041     V(PlainArray, Add)                        \
1042     V(PlainArray, Clear)                      \
1043     V(PlainArray, Clone)                      \
1044     V(PlainArray, Has)                        \
1045     V(PlainArray, Get)                        \
1046     V(PlainArray, GetIteratorObj)             \
1047     V(PlainArray, ForEach)                    \
1048     V(PlainArray, ToString)                   \
1049     V(PlainArray, GetIndexOfKey)              \
1050     V(PlainArray, GetIndexOfValue)            \
1051     V(PlainArray, IsEmpty)                    \
1052     V(PlainArray, GetKeyAt)                   \
1053     V(PlainArray, Remove)                     \
1054     V(PlainArray, RemoveAt)                   \
1055     V(PlainArray, RemoveRangeFrom)            \
1056     V(PlainArray, SetValueAt)                 \
1057     V(PlainArray, GetValueAt)                 \
1058     V(PlainArray, GetSize)                    \
1059     V(HashMap, Constructor)                   \
1060     V(HashMap, HasKey)                        \
1061     V(HashMap, HasValue)                      \
1062     V(HashMap, Replace)                       \
1063     V(HashMap, Keys)                          \
1064     V(HashMap, Values)                        \
1065     V(HashMap, GetIteratorObj)                \
1066     V(HashMap, Entries)                       \
1067     V(HashMap, ForEach)                       \
1068     V(HashMap, Set)                           \
1069     V(HashMap, SetAll)                        \
1070     V(HashMap, Remove)                        \
1071     V(HashMap, Get)                           \
1072     V(HashMap, Clear)                         \
1073     V(HashMap, GetLength)                     \
1074     V(HashMap, IsEmpty)                       \
1075     V(HashSet, Constructor)                   \
1076     V(HashSet, IsEmpty)                       \
1077     V(HashSet, Has)                           \
1078     V(HashSet, Add)                           \
1079     V(HashSet, Remove)                        \
1080     V(HashSet, Clear)                         \
1081     V(HashSet, GetLength)                     \
1082     V(HashSet, GetIteratorObj)                \
1083     V(HashSet, Values)                        \
1084     V(HashSet, Entries)                       \
1085     V(HashSet, ForEach)                       \
1086     V(TreeMap, Constructor)                   \
1087     V(TreeMap, HasKey)                        \
1088     V(TreeMap, HasValue)                      \
1089     V(TreeMap, GetFirstKey)                   \
1090     V(TreeMap, GetLastKey)                    \
1091     V(TreeMap, Set)                           \
1092     V(TreeMap, Get)                           \
1093     V(TreeMap, SetAll)                        \
1094     V(TreeMap, Remove)                        \
1095     V(TreeMap, Clear)                         \
1096     V(TreeMap, GetLowerKey)                   \
1097     V(TreeMap, GetHigherKey)                  \
1098     V(TreeMap, Replace)                       \
1099     V(TreeMap, IsEmpty)                       \
1100     V(TreeMap, GetLength)                     \
1101     V(TreeMap, Keys)                          \
1102     V(TreeMap, Values)                        \
1103     V(TreeMap, Entries)                       \
1104     V(TreeMap, ForEach)                       \
1105     V(TreeSet, Constructor)                   \
1106     V(TreeSet, Add)                           \
1107     V(TreeSet, Remove)                        \
1108     V(TreeSet, Clear)                         \
1109     V(TreeSet, Has)                           \
1110     V(TreeSet, GetFirstValue)                 \
1111     V(TreeSet, GetLastValue)                  \
1112     V(TreeSet, GetLowerValue)                 \
1113     V(TreeSet, GetHigherValue)                \
1114     V(TreeSet, PopFirst)                      \
1115     V(TreeSet, PopLast)                       \
1116     V(TreeSet, IsEmpty)                       \
1117     V(TreeSet, GetLength)                     \
1118     V(TreeSet, Values)                        \
1119     V(TreeSet, ForEach)                       \
1120     V(TreeSet, Entries)                       \
1121     V(Deque, Constructor)                     \
1122     V(Deque, InsertFront)                     \
1123     V(Deque, InsertEnd)                       \
1124     V(Deque, GetFirst)                        \
1125     V(Deque, GetLast)                         \
1126     V(Deque, GetFront)                        \
1127     V(Deque, GetTail)                         \
1128     V(Deque, Has)                             \
1129     V(Deque, PopFirst)                        \
1130     V(Deque, PopLast)                         \
1131     V(Deque, ForEach)                         \
1132     V(Deque, GetIteratorObj)                  \
1133     V(Deque, GetSize)                         \
1134     V(Stack, Constructor)                     \
1135     V(Stack, Iterator)                        \
1136     V(Stack, IsEmpty)                         \
1137     V(Stack, Push)                            \
1138     V(Stack, Peek)                            \
1139     V(Stack, Pop)                             \
1140     V(Stack, Locate)                          \
1141     V(Stack, ForEach)                         \
1142     V(Stack, GetLength)                       \
1143     V(Vector, Constructor)                    \
1144     V(Vector, Add)                            \
1145     V(Vector, Insert)                         \
1146     V(Vector, SetLength)                      \
1147     V(Vector, GetCapacity)                    \
1148     V(Vector, IncreaseCapacityTo)             \
1149     V(Vector, Get)                            \
1150     V(Vector, GetIndexOf)                     \
1151     V(Vector, GetIndexFrom)                   \
1152     V(Vector, IsEmpty)                        \
1153     V(Vector, GetLastElement)                 \
1154     V(Vector, GetLastIndexOf)                 \
1155     V(Vector, GetLastIndexFrom)               \
1156     V(Vector, Remove)                         \
1157     V(Vector, RemoveByIndex)                  \
1158     V(Vector, RemoveByRange)                  \
1159     V(Vector, Set)                            \
1160     V(Vector, SubVector)                      \
1161     V(Vector, ToString)                       \
1162     V(Vector, GetSize)                        \
1163     V(Vector, ForEach)                        \
1164     V(Vector, ReplaceAllElements)             \
1165     V(Vector, Has)                            \
1166     V(Vector, Sort)                           \
1167     V(Vector, Clear)                          \
1168     V(Vector, Clone)                          \
1169     V(Vector, CopyToArray)                    \
1170     V(Vector, ConvertToArray)                 \
1171     V(Vector, GetFirstElement)                \
1172     V(Vector, TrimToCurrentLength)            \
1173     V(Vector, GetIteratorObj)                 \
1174     V(Queue, Constructor)                     \
1175     V(Queue, Add)                             \
1176     V(Queue, GetFirst)                        \
1177     V(Queue, Pop)                             \
1178     V(Queue, ForEach)                         \
1179     V(Queue, GetIteratorObj)                  \
1180     V(Queue, GetSize)                         \
1181     V(List, Constructor)                      \
1182     V(List, Add)                              \
1183     V(List, GetFirst)                         \
1184     V(List, GetLast)                          \
1185     V(List, Insert)                           \
1186     V(List, Clear)                            \
1187     V(List, RemoveByIndex)                    \
1188     V(List, Remove)                           \
1189     V(List, Has)                              \
1190     V(List, IsEmpty)                          \
1191     V(List, Get)                              \
1192     V(List, GetIndexOf)                       \
1193     V(List, GetLastIndexOf)                   \
1194     V(List, Set)                              \
1195     V(List, ForEach)                          \
1196     V(List, ReplaceAllElements)               \
1197     V(List, GetIteratorObj)                   \
1198     V(List, Equal)                            \
1199     V(List, Sort)                             \
1200     V(List, ConvertToArray)                   \
1201     V(List, GetSubList)                       \
1202     V(List, Length)                           \
1203     V(LinkedList, Constructor)                \
1204     V(LinkedList, Length)                     \
1205     V(LinkedList, Add)                        \
1206     V(LinkedList, GetFirst)                   \
1207     V(LinkedList, GetLast)                    \
1208     V(LinkedList, Insert)                     \
1209     V(LinkedList, AddFirst)                   \
1210     V(LinkedList, Clear)                      \
1211     V(LinkedList, Clone)                      \
1212     V(LinkedList, Has)                        \
1213     V(LinkedList, Get)                        \
1214     V(LinkedList, GetIndexOf)                 \
1215     V(LinkedList, GetLastIndexOf)             \
1216     V(LinkedList, RemoveByIndex)              \
1217     V(LinkedList, Remove)                     \
1218     V(LinkedList, RemoveFirst)                \
1219     V(LinkedList, RemoveLast)                 \
1220     V(LinkedList, RemoveFirstFound)           \
1221     V(LinkedList, RemoveLastFound)            \
1222     V(LinkedList, Set)                        \
1223     V(LinkedList, ConvertToArray)             \
1224     V(LinkedList, ForEach)                    \
1225     V(LinkedList, GetIteratorObj)
1226 
1227 #define ABSTRACT_OPERATION_LIST(V) \
1228     V(JSTaggedValue, ToString)     \
1229 
1230 #define MEM_ALLOCATE_AND_GC_LIST(V)  \
1231     V(FullGC_RunPhases)              \
1232     V(PartialGC_RunPhases)           \
1233     V(ConcurrentMarking)             \
1234     V(ConcurrentMarkingInitialize)   \
1235     V(IncrementalMarking)            \
1236     V(IncrementalMarkingInitialize)  \
1237     V(WaitConcurrentMarkingFinished) \
1238     V(ReMarking)                     \
1239     V(ConcurrentSweepingInitialize)  \
1240     V(ConcurrentSweepingWait)        \
1241     V(ParallelEvacuationInitialize)  \
1242     V(ParallelEvacuation)            \
1243     V(ParallelUpdateReference)       \
1244     V(WaitUpdateFinished)            \
1245     V(UpdateRoot)                    \
1246     V(UpdateWeakReference)           \
1247     V(ParallelEvacuator)             \
1248     V(ParallelEvacuatorInitialize)   \
1249     V(ParallelEvacuatorFinalize)     \
1250     V(HugeSpaceExpand)               \
1251     V(NonMovableSpaceExpand)         \
1252     V(HeapPrepare)                   \
1253 
1254 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1255 #define INTERPRETER_CALLER_ID(name) INTERPRETER_ID_##name,
1256 #define RUNTIME_CALLER_ID(name) RUNTIME_ID_##name,
1257 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1258 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1259 #define BUILTINS_API_ID(class, name) BUILTINS_ID_##class##_##name,
1260 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1261 #define ABSTRACT_OPERATION_ID(class, name) ABSTRACT_ID_##class##_##name,
1262 
1263 #define MEM_ALLOCATE_AND_GC_ID(name) MEM_ID##name,
1264 
1265 enum EcmaRuntimeCallerId {
1266     INTERPRETER_CALLER_LIST(INTERPRETER_CALLER_ID) BUILTINS_API_LIST(BUILTINS_API_ID)
1267     ABSTRACT_OPERATION_LIST(ABSTRACT_OPERATION_ID)
1268     MEM_ALLOCATE_AND_GC_LIST(MEM_ALLOCATE_AND_GC_ID)
1269 #define DEF_RUNTIME_ID(name) RUNTIME_ID_##name,
1270     RUNTIME_STUB_WITH_GC_LIST(DEF_RUNTIME_ID)
1271 #undef DEF_RUNTIME_ID
1272     RUNTIME_CALLER_NUMBER,
1273 };
1274 
1275 #if ECMASCRIPT_ENABLE_INTERPRETER_RUNTIME_STAT
1276 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1277 #define INTERPRETER_TRACE(thread, name)                                                                    \
1278     [[maybe_unused]] JSThread *_js_thread_ = thread;                                                       \
1279     [[maybe_unused]] EcmaRuntimeStat *_run_stat_ = _js_thread_->GetCurrentEcmaContext()->GetRuntimeStat(); \
1280     RuntimeTimerScope interpret_##name##_scope_(INTERPRETER_CALLER_ID(name) _run_stat_)
1281 #if defined(ECMASCRIPT_SUPPORT_CPUPROFILER)
1282 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1283 #define RUNTIME_TRACE(thread, name)                                                                        \
1284     [[maybe_unused]] JSThread *_js_thread_ = thread;                                                       \
1285     [[maybe_unused]] EcmaRuntimeStat *_run_stat_ = _js_thread_->GetCurrentEcmaContext()->GetRuntimeStat(); \
1286     RuntimeTimerScope interpret_##name##_scope_(RUNTIME_CALLER_ID(name) _run_stat_);                       \
1287     [[maybe_unused]] RuntimeStateScope _runtime_state_##name##_scope_(_js_thread_)
1288 #else
1289 #define RUNTIME_TRACE(thread, name)                                                                        \
1290     [[maybe_unused]] JSThread *_js_thread_ = thread;                                                       \
1291     [[maybe_unused]] EcmaRuntimeStat *_run_stat_ = _js_thread_->GetCurrentEcmaContext()->GetRuntimeStat(); \
1292     RuntimeTimerScope interpret_##name##_scope_(RUNTIME_CALLER_ID(name) _run_stat_);
1293 #endif
1294 #else
1295 #define INTERPRETER_TRACE(thread, name) static_cast<void>(0) // NOLINT(cppcoreguidelines-macro-usage)
1296 #if defined(ECMASCRIPT_SUPPORT_CPUPROFILER)
1297 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1298 #define RUNTIME_TRACE(thread, name)                                                            \
1299     [[maybe_unused]] JSThread *_js_thread_ = thread;                                           \
1300     [[maybe_unused]] RuntimeStateScope _runtime_state_##name##_scope_(_js_thread_)
1301 #else
1302 #define RUNTIME_TRACE(thread, name) static_cast<void>(0) // NOLINT(cppcoreguidelines-macro-usage)
1303 #endif // defined(ECMASCRIPT_SUPPORT_CPUPROFILER)
1304 #endif // ECMASCRIPT_ENABLE_INTERPRETER_RUNTIME_STAT
1305 
1306 #if ECMASCRIPT_ENABLE_BUILTINS_RUNTIME_STAT
1307 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1308 #define BUILTINS_API_TRACE(thread, class, name)                                                            \
1309     [[maybe_unused]] JSThread *_js_thread_ = thread;                                                       \
1310     [[maybe_unused]] EcmaRuntimeStat *_run_stat_ = _js_thread_->GetCurrentEcmaContext()->GetRuntimeStat(); \
1311     RuntimeTimerScope builtins_##class##name##_scope_(BUILTINS_API_ID(class, name) _run_stat_)
1312 
1313 // NOLINTNEXTLINE(cppcoreguidelines-macro-usage)
1314 #define ABSTRACT_OPERATION_TRACE(thread, class, name)                                                      \
1315     [[maybe_unused]] JSThread *_js_thread_ = thread;                                                       \
1316     [[maybe_unused]] EcmaRuntimeStat *_run_stat_ = _js_thread_->GetCurrentEcmaContext()->GetRuntimeStat(); \
1317     RuntimeTimerScope abstract_##class##name##_scope_(ABSTRACT_OPERATION_ID(class, name) _run_stat_)
1318 #else
1319 #define BUILTINS_API_TRACE(thread, class, name) static_cast<void>(0) // NOLINT(cppcoreguidelines-macro-usage)
1320 #define ABSTRACT_OPERATION_TRACE(class, name) static_cast<void>(0) // NOLINT(cppcoreguidelines-macro-usage)
1321 #endif // ECMASCRIPT_ENABLE_BUILTINS_RUNTIME_STAT
1322 
1323 #if ECMASCRIPT_ENABLE_ALLOCATE_AND_GC_RUNTIME_STAT
1324 #define MEM_ALLOCATE_AND_GC_TRACE(vm, name)                                                     \
1325     CHECK_JS_THREAD(vm);                                                                        \
1326     EcmaRuntimeStat *_run_stat_ = vm->GetJSThread()->GetCurrentEcmaContext()->GetRuntimeStat(); \
1327     RuntimeTimerScope mem_##name##_scope_(MEM_ALLOCATE_AND_GC_ID(name) _run_stat_)
1328 #else
1329 #define MEM_ALLOCATE_AND_GC_TRACE(vm, name) static_cast<void>(0) // NOLINT(cppcoreguidelines-macro-usage)
1330 #endif // ECMASCRIPT_ENABLE_ALLOCATE_AND_GC_RUNTIME_STAT
1331 }  // namespace panda::ecmascript
1332 #endif
1333