• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 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_STUB_LIST_H
17 #define ECMASCRIPT_RUNTIME_STUB_LIST_H
18 
19 #include "ecmascript/stubs/test_runtime_stubs.h"
20 
21 namespace panda::ecmascript {
22 
23 #define RUNTIME_ASM_STUB_LIST(V)             \
24     JS_CALL_TRAMPOLINE_LIST(V)               \
25     FAST_CALL_TRAMPOLINE_LIST(V)             \
26     ASM_INTERPRETER_TRAMPOLINE_LIST(V)       \
27     BASELINE_TRAMPOLINE_LIST(V)
28 
29 #define ASM_INTERPRETER_TRAMPOLINE_LIST(V)   \
30     V(AsmInterpreterEntry)                   \
31     V(GeneratorReEnterAsmInterp)             \
32     V(PushCallArgsAndDispatchNative)         \
33     V(PushCallArg0AndDispatch)               \
34     V(PushCallArg1AndDispatch)               \
35     V(PushCallArgs2AndDispatch)              \
36     V(PushCallArgs3AndDispatch)              \
37     V(PushCallThisArg0AndDispatch)           \
38     V(PushCallThisArg1AndDispatch)           \
39     V(PushCallThisArgs2AndDispatch)          \
40     V(PushCallThisArgs3AndDispatch)          \
41     V(PushCallRangeAndDispatch)              \
42     V(PushCallNewAndDispatch)                \
43     V(PushSuperCallAndDispatch)              \
44     V(PushCallNewAndDispatchNative)          \
45     V(PushNewTargetAndDispatchNative)        \
46     V(PushCallRangeAndDispatchNative)        \
47     V(PushCallThisRangeAndDispatch)          \
48     V(ResumeRspAndDispatch)                  \
49     V(ResumeRspAndReturn)                    \
50     V(ResumeRspAndReturnBaseline)            \
51     V(ResumeCaughtFrameAndDispatch)          \
52     V(ResumeUncaughtFrameAndReturn)          \
53     V(ResumeRspAndRollback)                  \
54     V(CallSetter)                            \
55     V(CallGetter)                            \
56     V(CallContainersArgs2)                   \
57     V(CallContainersArgs3)                   \
58     V(CallReturnWithArgv)                    \
59     V(ASMFastWriteBarrier)
60 
61 #define BASELINE_TRAMPOLINE_LIST(V)                   \
62     V(CallArg0AndCheckToBaseline)                     \
63     V(CallArg1AndCheckToBaseline)                     \
64     V(CallArgs2AndCheckToBaseline)                    \
65     V(CallArgs3AndCheckToBaseline)                    \
66     V(CallThisArg0AndCheckToBaseline)                 \
67     V(CallThisArg1AndCheckToBaseline)                 \
68     V(CallThisArgs2AndCheckToBaseline)                \
69     V(CallThisArgs3AndCheckToBaseline)                \
70     V(CallRangeAndCheckToBaseline)                    \
71     V(CallNewAndCheckToBaseline)                      \
72     V(SuperCallAndCheckToBaseline)                    \
73     V(CallThisRangeAndCheckToBaseline)                \
74     V(CallArg0AndDispatchFromBaseline)                \
75     V(CallArg1AndDispatchFromBaseline)                \
76     V(CallArgs2AndDispatchFromBaseline)               \
77     V(CallArgs3AndDispatchFromBaseline)               \
78     V(CallThisArg0AndDispatchFromBaseline)            \
79     V(CallThisArg1AndDispatchFromBaseline)            \
80     V(CallThisArgs2AndDispatchFromBaseline)           \
81     V(CallThisArgs3AndDispatchFromBaseline)           \
82     V(CallRangeAndDispatchFromBaseline)               \
83     V(CallNewAndDispatchFromBaseline)                 \
84     V(SuperCallAndDispatchFromBaseline)               \
85     V(CallThisRangeAndDispatchFromBaseline)           \
86     V(CallArg0AndCheckToBaselineFromBaseline)         \
87     V(CallArg1AndCheckToBaselineFromBaseline)         \
88     V(CallArgs2AndCheckToBaselineFromBaseline)        \
89     V(CallArgs3AndCheckToBaselineFromBaseline)        \
90     V(CallThisArg0AndCheckToBaselineFromBaseline)     \
91     V(CallThisArg1AndCheckToBaselineFromBaseline)     \
92     V(CallThisArgs2AndCheckToBaselineFromBaseline)    \
93     V(CallThisArgs3AndCheckToBaselineFromBaseline)    \
94     V(CallRangeAndCheckToBaselineFromBaseline)        \
95     V(CallNewAndCheckToBaselineFromBaseline)          \
96     V(SuperCallAndCheckToBaselineFromBaseline)        \
97     V(CallThisRangeAndCheckToBaselineFromBaseline)    \
98     V(GetBaselineBuiltinFp)
99 
100 #define JS_CALL_TRAMPOLINE_LIST(V)           \
101     V(CallRuntime)                           \
102     V(CallRuntimeWithArgv)                   \
103     V(JSFunctionEntry)                       \
104     V(JSCall)                                \
105     V(JSCallWithArgV)                        \
106     V(JSCallWithArgVAndPushArgv)             \
107     V(JSProxyCallInternalWithArgV)           \
108     V(SuperCallWithArgV)                     \
109     V(OptimizedCallAndPushArgv)              \
110     V(DeoptHandlerAsm)                       \
111     V(JSCallNew)                             \
112     V(CallOptimized)                         \
113     V(AOTCallToAsmInterBridge)               \
114     V(FastCallToAsmInterBridge)
115 
116 #define FAST_CALL_TRAMPOLINE_LIST(V)         \
117     V(OptimizedFastCallEntry)                \
118     V(OptimizedFastCallAndPushArgv)          \
119     V(JSFastCallWithArgV)                    \
120     V(JSFastCallWithArgVAndPushArgv)
121 
122 #define RUNTIME_STUB_WITH_DFX(V)                \
123     V(TraceLoadGetter)                          \
124     V(TraceLoadSlowPath)                        \
125     V(TraceLoadDetail)                          \
126     V(TraceLoadEnd)                             \
127     V(TraceLoadValueSlowPath)                   \
128     V(TraceLoadValueDetail)                     \
129     V(TraceLoadValueEnd)                        \
130     V(TraceStoreFastPath)                       \
131     V(TraceStoreSlowPath)                       \
132     V(TraceStoreDetail)                         \
133     V(TraceStoreEnd)                            \
134     V(TraceNum)                                 \
135     V(TraceCallDetail)                          \
136     V(TraceCallEnd)                             \
137     V(TraceDefineFunc)                          \
138     V(TraceDefineFuncEnd)                       \
139     V(TraceLazyDeoptNum)                        \
140     V(TraceLazyDeoptFailNum)
141 
142 #define RUNTIME_STUB_WITHOUT_GC_LIST(V)        \
143     V(Dump)                                    \
144     V(DebugDump)                               \
145     V(DumpWithHint)                            \
146     V(DebugDumpWithHint)                       \
147     V(DebugPrint)                              \
148     V(DebugPrintCustom)                        \
149     V(DebugPrintInstruction)                   \
150     V(CollectingOpcodes)                       \
151     V(DebugOsrEntry)                           \
152     V(Comment)                                 \
153     V(FatalPrint)                              \
154     V(FatalPrintCustom)                        \
155     V(GetActualArgvNoGC)                       \
156     V(InsertOldToNewRSet)                      \
157     V(InsertLocalToShareRSet)                  \
158     V(SetBitAtomic)                            \
159     V(MarkingBarrier)                          \
160     V(SharedGCMarkingBarrier)                  \
161     V(CMCGCMarkingBarrier)                     \
162     V(DoubleToInt)                             \
163     V(SaturateTruncDoubleToInt32)              \
164     V(FloatMod)                                \
165     V(FloatAcos)                               \
166     V(FloatAcosh)                              \
167     V(FloatAsin)                               \
168     V(FloatAsinh)                              \
169     V(FloatAtan)                               \
170     V(FloatAtan2)                              \
171     V(FloatAtanh)                              \
172     V(FloatCos)                                \
173     V(FloatCosh)                               \
174     V(FloatSin)                                \
175     V(FloatSinh)                               \
176     V(FloatTan)                                \
177     V(FloatTanh)                               \
178     V(FloatTrunc)                              \
179     V(FloatLog)                                \
180     V(FloatLog2)                               \
181     V(FloatLog10)                              \
182     V(FloatLog1p)                              \
183     V(FloatExp)                                \
184     V(FloatExpm1)                              \
185     V(FloatCbrt)                               \
186     V(FloatFloor)                              \
187     V(FloatPow)                                \
188     V(FloatCeil)                               \
189     V(CallDateNow)                             \
190     V(UpdateFieldType)                         \
191     V(BigIntEquals)                            \
192     V(TimeClip)                                \
193     V(LazyDeoptEntry)                          \
194     V(SetDateValues)                           \
195     V(StartCallTimer)                          \
196     V(EndCallTimer)                            \
197     V(BigIntSameValueZero)                     \
198     V(JSHClassFindProtoTransitions)            \
199     V(FinishObjSizeTracking)                   \
200     V(NumberHelperStringToDouble)              \
201     V(IntLexicographicCompare)                 \
202     V(DoubleLexicographicCompare)              \
203     V(FastArraySortString)                     \
204     V(StringToNumber)                          \
205     V(StringGetStart)                          \
206     V(StringGetEnd)                            \
207     V(ArrayTrim)                               \
208     V(SortTypedArray)                          \
209     V(ReverseTypedArray)                       \
210     V(CopyTypedArrayBuffer)                    \
211     V(IsFastRegExp)                            \
212     V(CopyObjectPrimitive)                     \
213     V(CreateLocalToShare)                      \
214     V(CreateOldToNew)                          \
215     V(ObjectCopy)                              \
216     V(FillObject)                              \
217     V(ReverseArray)                            \
218     V(LrInt)                                   \
219     V(FindPatchModule)                         \
220     V(FatalPrintMisstakenResolvedBinding)      \
221     V(LoadNativeModuleFailed)                  \
222     V(GetExternalModuleVar)                    \
223     V(ReadBarrier)                             \
224     V(CopyCallTarget)                          \
225     V(CopyArgvArray)                           \
226     V(MarkRSetCardTable)                       \
227     V(MarkInBuffer)                            \
228     V(BatchMarkInBuffer)                       \
229     V(UpdateSharedModule)
230 
231 // When ASM enters C++ via CallNGCRuntime, if the C++ process requires GetGlobalEnv(),
232 // the current globalenv in ASM must be set to glue before CallNGCRuntime!
233 // None of the current NGC stubs are related to globalenv and are not distinguished.
234 
235 #define RUNTIME_STUB_WITH_GC_WITH_GLOBALENV_LIST(V)            \
236     V(TypedArraySpeciesCreate)                                 \
237     V(TypedArrayCreateSameType)                                \
238     V(CallInternalGetter)                                      \
239     V(CallInternalSetter)                                      \
240     V(CallInternalSetterNoThrow)                               \
241     V(CallGetPrototype)                                        \
242     V(RegularJSObjDeletePrototype)                             \
243     V(CallJSObjDeletePrototype)                                \
244     V(ToPropertyKey)                                           \
245     V(ThrowTypeError)                                          \
246     V(MismatchError)                                           \
247     V(NotifyArrayPrototypeChanged)                             \
248     V(NumberToString)                                          \
249     V(NameDictPutIfAbsent)                                     \
250     V(JSArrayReduceUnStable)                                   \
251     V(JSArrayFilterUnStable)                                   \
252     V(JSArrayMapUnStable)                                      \
253     V(CheckAndCopyArray)                                       \
254     V(UpdateHClassForElementsKind)                             \
255     V(StGlobalRecord)                                          \
256     V(SetFunctionNameNoPrefix)                                 \
257     V(StOwnByValueWithNameSet)                                 \
258     V(StOwnByName)                                             \
259     V(StOwnByNameWithNameSet)                                  \
260     V(SuspendGenerator)                                        \
261     V(IsIn)                                                    \
262     V(InstanceOf)                                              \
263     V(CreateGeneratorObj)                                      \
264     V(ThrowConstAssignment)                                    \
265     V(GetTemplateObject)                                       \
266     V(CreateStringIterator)                                    \
267     V(NewJSArrayIterator)                                      \
268     V(NewJSTypedArrayIterator)                                 \
269     V(StringIteratorNext)                                      \
270     V(ArrayIteratorNext)                                       \
271     V(IteratorReturn)                                          \
272     V(GetNextPropNameSlowpath)                                 \
273     V(ThrowIfNotObject)                                        \
274     V(CloseIterator)                                           \
275     V(SuperCallSpread)                                         \
276     V(OptSuperCallSpread)                                      \
277     V(GetCallSpreadArgs)                                       \
278     V(DelObjProp)                                              \
279     V(NewObjApply)                                             \
280     V(CreateIterResultObj)                                     \
281     V(AsyncFunctionAwaitUncaught)                              \
282     V(AsyncFunctionResolveOrReject)                            \
283     V(ThrowUndefinedIfHole)                                    \
284     V(CopyDataProperties)                                      \
285     V(StArraySpread)                                           \
286     V(GetIteratorNext)                                         \
287     V(SetObjectWithProto)                                      \
288     V(LoadICByValue)                                           \
289     V(StoreICByValue)                                          \
290     V(StoreOwnICByValue)                                       \
291     V(StOwnByValue)                                            \
292     V(LdSuperByValue)                                          \
293     V(StSuperByValue)                                          \
294     V(StObjByValue)                                            \
295     V(LdObjByIndex)                                            \
296     V(StObjByIndex)                                            \
297     V(StOwnByIndex)                                            \
298     V(CreateClassWithBuffer)                                   \
299     V(LoadICByName)                                            \
300     V(StoreICByName)                                           \
301     V(StoreOwnICByName)                                        \
302     V(GetModuleNamespaceByIndex)                               \
303     V(GetModuleNamespaceByIndexOnJSFunc)                       \
304     V(GetModuleNamespace)                                      \
305     V(StModuleVarByIndex)                                      \
306     V(StModuleVarByIndexOnJSFunc)                              \
307     V(StModuleVar)                                             \
308     V(LdLocalModuleVarByIndex)                                 \
309     V(LdLocalModuleVarByIndexWithModule)                       \
310     V(LdExternalModuleVarByIndex)                              \
311     V(LdExternalModuleVarByIndexWithModule)                    \
312     V(LdLazyExternalModuleVarByIndex)                          \
313     V(LdLocalModuleVarByIndexOnJSFunc)                         \
314     V(LdExternalModuleVarByIndexOnJSFunc)                      \
315     V(LdModuleVar)                                             \
316     V(GetModuleValueOuterInternal)                             \
317     V(ThrowExportsIsHole)                                      \
318     V(HandleResolutionIsNullOrString)                          \
319     V(CheckAndThrowModuleError)                                \
320     V(GetResolvedRecordIndexBindingModule)                     \
321     V(GetResolvedRecordBindingModule)                          \
322     V(GetPropIteratorSlowpath)                                 \
323     V(PrimitiveStringCreate)                                   \
324     V(AsyncFunctionEnter)                                      \
325     V(GetAsyncIterator)                                        \
326     V(ThrowThrowNotExists)                                     \
327     V(ThrowPatternNonCoercible)                                \
328     V(ThrowDeleteSuperProperty)                                \
329     V(TryLdGlobalICByName)                                     \
330     V(LoadMiss)                                                \
331     V(StoreMiss)                                               \
332     V(TryUpdateGlobalRecord)                                   \
333     V(ThrowReferenceError)                                     \
334     V(StGlobalVar)                                             \
335     V(LdGlobalICVar)                                           \
336     V(ToIndex)                                                 \
337     V(NewJSObjectByConstructor)                                \
338     V(AllocateTypedArrayBuffer)                                \
339     V(ToNumber)                                                \
340     V(CreateEmptyObject)                                       \
341     V(GetUnmapedArgs)                                          \
342     V(CopyRestArgs)                                            \
343     V(CreateArrayWithBuffer)                                   \
344     V(CreateObjectWithBuffer)                                  \
345     V(NewThisObject)                                           \
346     V(NewObjRange)                                             \
347     V(DefineFunc)                                              \
348     V(CreateRegExpWithLiteral)                                 \
349     V(ThrowIfSuperNotCorrectCall)                              \
350     V(CreateObjectHavingMethod)                                \
351     V(CreateObjectWithExcludedKeys)                            \
352     V(DefineMethod)                                            \
353     V(ThrowSetterIsUndefinedException)                         \
354     V(ThrowNotCallableException)                               \
355     V(ThrowCallConstructorException)                           \
356     V(ThrowNonConstructorException)                            \
357     V(ThrowStackOverflowException)                             \
358     V(ThrowDerivedMustReturnException)                         \
359     V(CallSpread)                                              \
360     V(DefineGetterSetterByValue)                               \
361     V(SuperCall)                                               \
362     V(OptSuperCall)                                            \
363     V(LdBigInt)                                                \
364     V(ToNumeric)                                               \
365     V(ToNumericConvertBigInt)                                  \
366     V(CallBigIntAsIntN)                                        \
367     V(CallBigIntAsUintN)                                       \
368     V(DynamicImport)                                           \
369     V(CreateAsyncGeneratorObj)                                 \
370     V(AsyncGeneratorResolve)                                   \
371     V(AsyncGeneratorReject)                                    \
372     V(OptGetUnmapedArgs)                                       \
373     V(OptCopyRestArgs)                                         \
374     V(OptSuspendGenerator)                                     \
375     V(OptAsyncGeneratorResolve)                                \
376     V(OptCreateObjectWithExcludedKeys)                         \
377     V(OptNewObjRange)                                          \
378     V(SetTypeArrayPropertyByIndex)                             \
379     V(FastCopyElementToArray)                                  \
380     V(GetPropertyByName)                                       \
381     V(JSObjectGetMethod)                                       \
382     V(OptLdSuperByValue)                                       \
383     V(OptStSuperByValue)                                       \
384     V(LdPatchVar)                                              \
385     V(StPatchVar)                                              \
386     V(ContainerRBTreeForEach)                                  \
387     V(DefineField)                                             \
388     V(CreatePrivateProperty)                                   \
389     V(DefinePrivateProperty)                                   \
390     V(LdPrivateProperty)                                       \
391     V(StPrivateProperty)                                       \
392     V(TestIn)                                                  \
393     V(LocaleCompare)                                           \
394     V(ArraySort)                                               \
395     V(FastStringify)                                           \
396     V(ObjectSlowAssign)                                        \
397     V(LocaleCompareWithGc)                                     \
398     V(ParseInt)                                                \
399     V(LocaleCompareCacheable)                                  \
400     V(ArrayForEachContinue)                                    \
401     V(NumberDictionaryPut)                                     \
402     V(ThrowRangeError)                                         \
403     V(InitializeGeneratorFunction)                             \
404     V(FunctionDefineOwnProperty)                               \
405     V(DefineOwnProperty)                                       \
406     V(AOTEnableProtoChangeMarker)                              \
407     V(CheckGetTrapResult)                                      \
408     V(CheckSetTrapResult)                                      \
409     V(JSProxyGetProperty)                                      \
410     V(JSProxySetProperty)                                      \
411     V(JSProxyHasProperty)                                      \
412     V(JSTypedArrayHasProperty)                                 \
413     V(ModuleNamespaceHasProperty)                              \
414     V(JSObjectHasProperty)                                     \
415     V(HasProperty)                                             \
416     V(FastCopyFromArrayToTypedArray)                           \
417     V(BigIntConstructor)                                       \
418     V(ObjectPrototypeHasOwnProperty)                           \
419     V(ReflectHas)                                              \
420     V(ReflectConstruct)                                        \
421     V(ReflectApply)                                            \
422     V(FunctionPrototypeApply)                                  \
423     V(FunctionPrototypeBind)                                   \
424     V(FunctionPrototypeCall)                                   \
425     V(SuperCallForwardAllArgs)                                 \
426     V(OptSuperCallForwardAllArgs)
427 
428 // When ASM enters C++ via CallRuntime, if the C++ process requires GetGlobalEnv(),
429 // the current globalenv in ASM must be set to glue before CallRuntime!
430 // Use CallRuntimeWithGlobalEnv or CallRuntimeWithCurrentEnv.
431 
432 #define RUNTIME_STUB_WITH_GC_WITHOUT_GLOBALENV_LIST(V)         \
433     V(HeapAlloc)                                               \
434     V(AllocateInYoung)                                         \
435     V(AllocateInOld)                                           \
436     V(AllocateInSOld)                                          \
437     V(AllocateInSNonMovable)                                   \
438     V(GetHash32)                                               \
439     V(NewInternalString)                                       \
440     V(NewTaggedArray)                                          \
441     V(NewCOWTaggedArray)                                       \
442     V(NewMutantTaggedArray)                                    \
443     V(NewCOWMutantTaggedArray)                                 \
444     V(CopyArray)                                               \
445     V(IntToString)                                             \
446     V(RTSubstitution)                                          \
447     V(NameDictionaryGetAllEnumKeys)                            \
448     V(NumberDictionaryGetAllEnumKeys)                          \
449     V(PropertiesSetValue)                                      \
450     V(NewEcmaHClass)                                           \
451     V(UpdateLayOutAndAddTransition)                            \
452     V(CopyAndUpdateObjLayout)                                  \
453     V(RuntimeDump)                                             \
454     V(ForceGC)                                                 \
455     V(NoticeThroughChainAndRefreshUser)                        \
456     V(JumpToCInterpreter)                                      \
457     V(UpFrame)                                                 \
458     V(Neg)                                                     \
459     V(Not)                                                     \
460     V(Inc)                                                     \
461     V(Dec)                                                     \
462     V(Shl2)                                                    \
463     V(Shr2)                                                    \
464     V(Ashr2)                                                   \
465     V(Or2)                                                     \
466     V(Xor2)                                                    \
467     V(And2)                                                    \
468     V(Exp)                                                     \
469     V(Eq)                                                      \
470     V(NotEq)                                                   \
471     V(Less)                                                    \
472     V(LessEq)                                                  \
473     V(Greater)                                                 \
474     V(GreaterEq)                                               \
475     V(Add2)                                                    \
476     V(Sub2)                                                    \
477     V(Mul2)                                                    \
478     V(Div2)                                                    \
479     V(Mod2)                                                    \
480     V(SetClassConstructorLength)                               \
481     V(UpdateHotnessCounter)                                    \
482     V(CheckSafePoint)                                          \
483     V(PGODump)                                                 \
484     V(PGOPreDump)                                              \
485     V(JitCompile)                                              \
486     V(CountInterpExecFuncs)                                    \
487     V(BaselineJitCompile)                                      \
488     V(UpdateHotnessCounterWithProf)                            \
489     V(CreateSharedClass)                                       \
490     V(LdSendableClass)                                         \
491     V(LdSendableExternalModuleVarByIndex)                      \
492     V(LdSendableLocalModuleVarByIndex)                         \
493     V(LdLazySendableExternalModuleVarByIndex)                  \
494     V(GetModuleName)                                           \
495     V(NewResolvedIndexBindingRecord)                           \
496     V(Throw)                                                   \
497     V(SetGeneratorState)                                       \
498     V(CloneHclass)                                             \
499     V(ToBoolean)                                               \
500     V(SetPatchModule)                                          \
501     V(NewLexicalEnvWithName)                                   \
502     V(OptNewLexicalEnvWithName)                                \
503     V(NewSendableEnv)                                          \
504     V(NotifyBytecodePcChanged)                                 \
505     V(NotifyDebuggerStatement)                                 \
506     V(MethodEntry)                                             \
507     V(MethodExit)                                              \
508     V(GetTypeArrayPropertyByIndex)                             \
509     V(DebugAOTPrint)                                           \
510     V(ProfileOptimizedCode)                                    \
511     V(ProfileTypedOp)                                          \
512     V(VerifyVTableLoading)                                     \
513     V(VerifyVTableStoring)                                     \
514     V(GetMethodFromCache)                                      \
515     V(GetArrayLiteralFromCache)                                \
516     V(GetObjectLiteralFromCache)                               \
517     V(GetStringFromCache)                                      \
518     V(BigIntEqual)                                             \
519     V(StringEqual)                                             \
520     V(StringIndexOf)                                           \
521     V(DeoptHandler)                                            \
522     V(InsertStringToTable)                                     \
523     V(GetOrInternStringFromHashTrieTable)                      \
524     V(SlowFlattenString)                                       \
525     V(NotifyConcurrentResult)                                  \
526     V(UpdateAOTHClass)                                         \
527     V(AotInlineTrace)                                          \
528     V(AotInlineBuiltinTrace)                                   \
529     V(GetLinkedHash)                                           \
530     V(LinkedHashMapComputeCapacity)                            \
531     V(LinkedHashSetComputeCapacity)                            \
532     V(JSObjectGrowElementsCapacity)                            \
533     V(HClassCloneWithAddProto)                                 \
534     V(DumpObject)                                              \
535     V(DumpHeapObjectAddress)                                   \
536     V(TryGetInternString)                                      \
537     V(SetPrototypeTransition)                                  \
538     V(GetSharedModule)                                         \
539     V(GetCollationValueFromIcuCollator)                        \
540     V(DecodeURIComponent)                                      \
541     V(GetAllFlagsInternal)                                     \
542     V(SlowSharedObjectStoreBarrier)                            \
543     V(GetNativePcOfstForBaseline)                              \
544     V(AotCallBuiltinTrace)                                     \
545     V(NumberBigIntNativePointerToString)                       \
546     V(ComputeHashcode)
547 
548 
549 #define RUNTIME_STUB_WITH_GC_LIST(V)               \
550     RUNTIME_STUB_WITH_GC_WITH_GLOBALENV_LIST(V)    \
551     RUNTIME_STUB_WITH_GC_WITHOUT_GLOBALENV_LIST(V)
552 
553 #define RUNTIME_STUB_LIST(V)                     \
554     RUNTIME_ASM_STUB_LIST(V)                     \
555     RUNTIME_STUB_WITHOUT_GC_LIST(V)              \
556     RUNTIME_STUB_WITH_GC_LIST(V)                 \
557     RUNTIME_STUB_WITH_DFX(V)                     \
558     TEST_RUNTIME_STUB_GC_LIST(V)
559 
560 }  // namespace panda::ecmascript
561 #endif // ECMASCRIPT_RUNTIME_STUB_LIST_H
562