v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
builtins-definitions.h
Go to the documentation of this file.
1
// Copyright 2017 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#ifndef V8_BUILTINS_BUILTINS_DEFINITIONS_H_
6
#define V8_BUILTINS_BUILTINS_DEFINITIONS_H_
7
8
#include "builtins-generated/bytecodes-builtins-list.h"
9
#include "
src/common/globals.h
"
10
11
// include generated header
12
#include "torque-generated/builtin-definitions.h"
13
14
namespace
v8
{
15
namespace
internal
{
16
17
#ifdef V8_ENABLE_EXPERIMENTAL_TSA_BUILTINS
18
// EXPAND is needed to work around MSVC's broken __VA_ARGS__ expansion.
19
#define IF_TSA(TSA_MACRO, CSA_MACRO, ...) EXPAND(TSA_MACRO(__VA_ARGS__))
20
#else
21
// EXPAND is needed to work around MSVC's broken __VA_ARGS__ expansion.
22
#define IF_TSA(TSA_MACRO, CSA_MACRO, ...) EXPAND(CSA_MACRO(__VA_ARGS__))
23
#endif
24
25
// CPP: Builtin in C++. Entered via BUILTIN_EXIT frame.
26
// Args: name, formal parameter count
27
// TFJ: Builtin in Turbofan, with JS linkage (callable as Javascript function).
28
// Args: name, formal parameter count, explicit argument names...
29
// TSJ: Builtin in Turboshaft, with JS linkage (callable as Javascript
30
// function).
31
// Args: name, formal parameter count, explicit argument names...
32
// TFS: Builtin in Turbofan, with CodeStub linkage.
33
// Args: name, needs context, explicit argument names...
34
// TFC: Builtin in Turbofan, with CodeStub linkage and custom descriptor.
35
// Args: name, interface descriptor
36
// TSC: Builtin in Turboshaft, with CodeStub linkage and custom descriptor.
37
// Args: name, interface descriptor
38
// TFH: Handlers in Turbofan, with CodeStub linkage.
39
// Args: name, interface descriptor
40
// BCH: Bytecode Handlers, with bytecode dispatch linkage.
41
// Args: name, OperandScale, Bytecode
42
// ASM: Builtin in platform-dependent assembly.
43
// Args: name, interface descriptor
44
45
// Builtins are additionally split into tiers, where the tier determines the
46
// distance of the builtins table from the root register within IsolateData.
47
//
48
// - Tier 0 (T0) are guaranteed to be close to the root register and can thus
49
// be accessed efficiently root-relative calls (so not, e.g., calls from
50
// generated code when short-builtin-calls is on).
51
// - T1 builtins have no distance guarantees.
52
//
53
// Note, this mechanism works only if the set of T0 builtins is kept as small
54
// as possible. Please, resist the temptation to add your builtin here unless
55
// there's a very good reason.
56
#define BUILTIN_LIST_BASE_TIER0(CPP, TFJ, TFC, TFS, TFH, ASM) \
57
/* Deoptimization entries. */
\
58
ASM(DeoptimizationEntry_Eager, DeoptimizationEntry) \
59
ASM(DeoptimizationEntry_Lazy, DeoptimizationEntry) \
60
\
61
/* GC write barrier. */
\
62
TFC(RecordWriteSaveFP, WriteBarrier) \
63
TFC(RecordWriteIgnoreFP, WriteBarrier) \
64
TFC(EphemeronKeyBarrierSaveFP, WriteBarrier) \
65
TFC(EphemeronKeyBarrierIgnoreFP, WriteBarrier) \
66
\
67
/* TODO(ishell): dummy builtin added here just to keep the Tier0 table */
\
68
/* size unmodified to avoid unexpected performance implications. */
\
69
/* It should be removed. */
\
70
CPP(DummyBuiltin, kDontAdaptArgumentsSentinel)
71
72
#ifdef V8_ENABLE_LEAPTIERING
73
74
/* Tiering related builtins
75
*
76
* These builtins are used for tiering. Some special conventions apply. They,
77
* - can be passed to the JSDispatchTable::SetTieringRequest to be executed
78
* instead of the actual JSFunction's code.
79
* - need to uninstall themselves using JSDispatchTable::ResetTieringRequest.
80
* - need to tail call the actual JSFunction's code.
81
*
82
* Also, there are lifecycle considerations since the tiering requests are
83
* mutually exclusive.
84
*
85
* For RCS the optimizing builtins should include the work `Optimize` in their
86
* name (see tools/callstats_groups.py).
87
*
88
* */
89
#define BUILTIN_LIST_BASE_TIERING_TURBOFAN(TFC) \
90
TFC(StartTurbofanOptimizeJob, JSTrampoline) \
91
TFC(OptimizeTurbofanEager, JSTrampoline)
92
93
#define BUILTIN_LIST_BASE_TIERING_MAGLEV(TFC) \
94
TFC(StartMaglevOptimizeJob, JSTrampoline) \
95
TFC(OptimizeMaglevEager, JSTrampoline)
96
97
#define BUILTIN_LIST_BASE_TIERING(TFC) \
98
BUILTIN_LIST_BASE_TIERING_MAGLEV(TFC) \
99
BUILTIN_LIST_BASE_TIERING_TURBOFAN(TFC) \
100
TFC(FunctionLogNextExecution, JSTrampoline) \
101
TFC(MarkReoptimizeLazyDeoptimized, JSTrampoline) \
102
TFC(MarkLazyDeoptimized, JSTrampoline)
103
104
#else
105
106
#define BUILTIN_LIST_BASE_TIERING(TFC) \
107
/* TODO(saelo): should this use a different descriptor? */
\
108
TFC(CompileLazyDeoptimizedCode, JSTrampoline)
109
110
#endif
111
112
#define BUILTIN_LIST_BASE_TIER1(CPP, TSJ, TFJ, TSC, TFC, TFS, TFH, ASM) \
113
/* GC write barriers */
\
114
TFC(IndirectPointerBarrierSaveFP, IndirectPointerWriteBarrier) \
115
TFC(IndirectPointerBarrierIgnoreFP, IndirectPointerWriteBarrier) \
116
\
117
/* Adaptors for CPP builtins with various formal parameter counts. */
\
118
/* We split these versions for simplicity (not all architectures have */
\
119
/* enough registers for extra CEntry arguments) and speculatively for */
\
120
/* performance reasons. */
\
121
TFC(AdaptorWithBuiltinExitFrame0, CppBuiltinAdaptor) \
122
TFC(AdaptorWithBuiltinExitFrame1, CppBuiltinAdaptor) \
123
TFC(AdaptorWithBuiltinExitFrame2, CppBuiltinAdaptor) \
124
TFC(AdaptorWithBuiltinExitFrame3, CppBuiltinAdaptor) \
125
TFC(AdaptorWithBuiltinExitFrame4, CppBuiltinAdaptor) \
126
TFC(AdaptorWithBuiltinExitFrame5, CppBuiltinAdaptor) \
127
\
128
/* TSAN support for stores in generated code. */
\
129
IF_TSAN(TFC, TSANRelaxedStore8IgnoreFP, TSANStore) \
130
IF_TSAN(TFC, TSANRelaxedStore8SaveFP, TSANStore) \
131
IF_TSAN(TFC, TSANRelaxedStore16IgnoreFP, TSANStore) \
132
IF_TSAN(TFC, TSANRelaxedStore16SaveFP, TSANStore) \
133
IF_TSAN(TFC, TSANRelaxedStore32IgnoreFP, TSANStore) \
134
IF_TSAN(TFC, TSANRelaxedStore32SaveFP, TSANStore) \
135
IF_TSAN(TFC, TSANRelaxedStore64IgnoreFP, TSANStore) \
136
IF_TSAN(TFC, TSANRelaxedStore64SaveFP, TSANStore) \
137
IF_TSAN(TFC, TSANSeqCstStore8IgnoreFP, TSANStore) \
138
IF_TSAN(TFC, TSANSeqCstStore8SaveFP, TSANStore) \
139
IF_TSAN(TFC, TSANSeqCstStore16IgnoreFP, TSANStore) \
140
IF_TSAN(TFC, TSANSeqCstStore16SaveFP, TSANStore) \
141
IF_TSAN(TFC, TSANSeqCstStore32IgnoreFP, TSANStore) \
142
IF_TSAN(TFC, TSANSeqCstStore32SaveFP, TSANStore) \
143
IF_TSAN(TFC, TSANSeqCstStore64IgnoreFP, TSANStore) \
144
IF_TSAN(TFC, TSANSeqCstStore64SaveFP, TSANStore) \
145
\
146
/* TSAN support for loads in generated code. */
\
147
IF_TSAN(TFC, TSANRelaxedLoad32IgnoreFP, TSANLoad) \
148
IF_TSAN(TFC, TSANRelaxedLoad32SaveFP, TSANLoad) \
149
IF_TSAN(TFC, TSANRelaxedLoad64IgnoreFP, TSANLoad) \
150
IF_TSAN(TFC, TSANRelaxedLoad64SaveFP, TSANLoad) \
151
\
152
/* Calls */
\
153
/* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */
\
154
ASM(CallFunction_ReceiverIsNullOrUndefined, CallTrampoline) \
155
ASM(CallFunction_ReceiverIsNotNullOrUndefined, CallTrampoline) \
156
ASM(CallFunction_ReceiverIsAny, CallTrampoline) \
157
/* ES6 section 9.4.1.1 [[Call]] ( thisArgument, argumentsList) */
\
158
ASM(CallBoundFunction, CallTrampoline) \
159
/* #sec-wrapped-function-exotic-objects-call-thisargument-argumentslist */
\
160
TFC(CallWrappedFunction, CallTrampoline) \
161
/* ES6 section 7.3.12 Call(F, V, [argumentsList]) */
\
162
ASM(Call_ReceiverIsNullOrUndefined, CallTrampoline) \
163
ASM(Call_ReceiverIsNotNullOrUndefined, CallTrampoline) \
164
ASM(Call_ReceiverIsAny, CallTrampoline) \
165
TFC(Call_ReceiverIsNullOrUndefined_Baseline_Compact, \
166
CallTrampoline_Baseline_Compact) \
167
TFC(Call_ReceiverIsNullOrUndefined_Baseline, CallTrampoline_Baseline) \
168
TFC(Call_ReceiverIsNotNullOrUndefined_Baseline_Compact, \
169
CallTrampoline_Baseline_Compact) \
170
TFC(Call_ReceiverIsNotNullOrUndefined_Baseline, CallTrampoline_Baseline) \
171
TFC(Call_ReceiverIsAny_Baseline_Compact, CallTrampoline_Baseline_Compact) \
172
TFC(Call_ReceiverIsAny_Baseline, CallTrampoline_Baseline) \
173
TFC(Call_ReceiverIsNullOrUndefined_WithFeedback, \
174
CallTrampoline_WithFeedback) \
175
TFC(Call_ReceiverIsNotNullOrUndefined_WithFeedback, \
176
CallTrampoline_WithFeedback) \
177
TFC(Call_ReceiverIsAny_WithFeedback, CallTrampoline_WithFeedback) \
178
\
179
/* ES6 section 9.5.12[[Call]] ( thisArgument, argumentsList ) */
\
180
TFC(CallProxy, CallTrampoline) \
181
ASM(CallVarargs, CallVarargs) \
182
TFC(CallWithSpread, CallWithSpread) \
183
TFC(CallWithSpread_Baseline, CallWithSpread_Baseline) \
184
TFC(CallWithSpread_WithFeedback, CallWithSpread_WithFeedback) \
185
TFC(CallWithArrayLike, CallWithArrayLike) \
186
TFC(CallWithArrayLike_WithFeedback, CallWithArrayLike_WithFeedback) \
187
ASM(CallForwardVarargs, CallForwardVarargs) \
188
ASM(CallFunctionForwardVarargs, CallForwardVarargs) \
189
/* Call an API callback via a {FunctionTemplateInfo}, doing appropriate */
\
190
/* access and compatible receiver checks. */
\
191
TFC(CallFunctionTemplate_Generic, CallFunctionTemplateGeneric) \
192
TFC(CallFunctionTemplate_CheckAccess, CallFunctionTemplate) \
193
TFC(CallFunctionTemplate_CheckCompatibleReceiver, CallFunctionTemplate) \
194
TFC(CallFunctionTemplate_CheckAccessAndCompatibleReceiver, \
195
CallFunctionTemplate) \
196
\
197
/* Construct */
\
198
/* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */
\
199
ASM(ConstructFunction, JSTrampoline) \
200
/* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */
\
201
ASM(ConstructBoundFunction, JSTrampoline) \
202
ASM(ConstructedNonConstructable, JSTrampoline) \
203
/* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */
\
204
ASM(Construct, ConstructStub) \
205
ASM(ConstructVarargs, ConstructVarargs) \
206
TFC(ConstructWithSpread, ConstructWithSpread) \
207
TFC(ConstructWithSpread_Baseline, ConstructWithSpread_Baseline) \
208
TFC(ConstructWithSpread_WithFeedback, ConstructWithSpread_WithFeedback) \
209
TFC(ConstructWithArrayLike, ConstructWithArrayLike) \
210
ASM(ConstructForwardVarargs, ConstructForwardVarargs) \
211
ASM(ConstructForwardAllArgs, ConstructForwardAllArgs) \
212
TFC(ConstructForwardAllArgs_Baseline, ConstructForwardAllArgs_Baseline) \
213
TFC(ConstructForwardAllArgs_WithFeedback, \
214
ConstructForwardAllArgs_WithFeedback) \
215
ASM(ConstructFunctionForwardVarargs, ConstructForwardVarargs) \
216
TFC(Construct_Baseline, Construct_Baseline) \
217
TFC(Construct_WithFeedback, Construct_WithFeedback) \
218
ASM(JSConstructStubGeneric, ConstructStub) \
219
ASM(JSBuiltinsConstructStub, ConstructStub) \
220
TFC(FastNewObject, FastNewObject) \
221
TFS(FastNewClosure, NeedsContext::kYes, kSharedFunctionInfo, kFeedbackCell) \
222
/* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */
\
223
TFC(ConstructProxy, JSTrampoline) \
224
\
225
/* Apply and entries */
\
226
ASM(JSEntry, JSEntry) \
227
ASM(JSConstructEntry, JSEntry) \
228
ASM(JSRunMicrotasksEntry, RunMicrotasksEntry) \
229
/* Call a JSValue. */
\
230
ASM(JSEntryTrampoline, JSEntry) \
231
/* Construct a JSValue. */
\
232
ASM(JSConstructEntryTrampoline, JSEntry) \
233
ASM(ResumeGeneratorTrampoline, ResumeGenerator) \
234
\
235
/* String helpers */
\
236
IF_TSA(TSC, TFC, StringFromCodePointAt, StringAtAsString) \
237
TFC(StringEqual, StringEqual) \
238
TFC(StringGreaterThan, CompareNoContext) \
239
TFC(StringGreaterThanOrEqual, CompareNoContext) \
240
TFC(StringLessThan, CompareNoContext) \
241
TFC(StringLessThanOrEqual, CompareNoContext) \
242
TFC(StringCompare, CompareNoContext) \
243
TFC(StringSubstring, StringSubstring) \
244
\
245
/* OrderedHashTable helpers */
\
246
TFS(OrderedHashTableHealIndex, NeedsContext::kYes, kTable, kIndex) \
247
\
248
/* Interpreter */
\
249
/* InterpreterEntryTrampoline dispatches to the interpreter to run a */
\
250
/* JSFunction in the form of bytecodes */
\
251
ASM(InterpreterEntryTrampoline, JSTrampoline) \
252
ASM(InterpreterEntryTrampolineForProfiling, JSTrampoline) \
253
ASM(InterpreterForwardAllArgsThenConstruct, ConstructForwardAllArgs) \
254
ASM(InterpreterPushArgsThenCall, InterpreterPushArgsThenCall) \
255
ASM(InterpreterPushUndefinedAndArgsThenCall, InterpreterPushArgsThenCall) \
256
ASM(InterpreterPushArgsThenCallWithFinalSpread, InterpreterPushArgsThenCall) \
257
ASM(InterpreterPushArgsThenConstruct, InterpreterPushArgsThenConstruct) \
258
ASM(InterpreterPushArgsThenFastConstructFunction, \
259
InterpreterPushArgsThenConstruct) \
260
ASM(InterpreterPushArgsThenConstructArrayFunction, \
261
InterpreterPushArgsThenConstruct) \
262
ASM(InterpreterPushArgsThenConstructWithFinalSpread, \
263
InterpreterPushArgsThenConstruct) \
264
ASM(InterpreterEnterAtBytecode, Void) \
265
ASM(InterpreterEnterAtNextBytecode, Void) \
266
ASM(InterpreterOnStackReplacement, OnStackReplacement) \
267
\
268
/* Baseline Compiler */
\
269
ASM(BaselineOutOfLinePrologue, BaselineOutOfLinePrologue) \
270
ASM(BaselineOutOfLinePrologueDeopt, Void) \
271
ASM(BaselineOnStackReplacement, OnStackReplacement) \
272
ASM(BaselineLeaveFrame, BaselineLeaveFrame) \
273
ASM(InterpreterOnStackReplacement_ToBaseline, Void) \
274
\
275
/* Maglev Compiler */
\
276
ASM(MaglevFunctionEntryStackCheck_WithoutNewTarget, Void) \
277
ASM(MaglevFunctionEntryStackCheck_WithNewTarget, Void) \
278
ASM(MaglevOptimizeCodeOrTailCallOptimizedCodeSlot, \
279
MaglevOptimizeCodeOrTailCallOptimizedCodeSlot) \
280
\
281
/* Code life-cycle */
\
282
TFC(CompileLazy, JSTrampoline) \
283
TFC(InstantiateAsmJs, JSTrampoline) \
284
ASM(NotifyDeoptimized, Void) \
285
\
286
BUILTIN_LIST_BASE_TIERING(TFC) \
287
\
288
/* Trampolines called when returning from a deoptimization that expects */
\
289
/* to continue in a JavaScript builtin to finish the functionality of a */
\
290
/* an TF-inlined version of builtin that has side-effects. */
\
291
/* */
\
292
/* The trampolines work as follows: */
\
293
/* 1. Trampoline restores input register values that */
\
294
/* the builtin expects from a BuiltinContinuationFrame. */
\
295
/* 2. Trampoline tears down BuiltinContinuationFrame. */
\
296
/* 3. Trampoline jumps to the builtin's address. */
\
297
/* 4. Builtin executes as if invoked by the frame above it. */
\
298
/* 5. When the builtin returns, execution resumes normally in the */
\
299
/* calling frame, processing any return result from the JavaScript */
\
300
/* builtin as if it had called the builtin directly. */
\
301
/* */
\
302
/* There are two variants of the stub that differ in their handling of a */
\
303
/* value returned by the next frame deeper on the stack. For LAZY deopts, */
\
304
/* the return value (e.g. rax on x64) is explicitly passed as an extra */
\
305
/* stack parameter to the JavaScript builtin by the "WithResult" */
\
306
/* trampoline variant. The plain variant is used in EAGER deopt contexts */
\
307
/* and has no such special handling. */
\
308
ASM(ContinueToCodeStubBuiltin, ContinueToBuiltin) \
309
ASM(ContinueToCodeStubBuiltinWithResult, ContinueToBuiltin) \
310
ASM(ContinueToJavaScriptBuiltin, ContinueToBuiltin) \
311
ASM(ContinueToJavaScriptBuiltinWithResult, ContinueToBuiltin) \
312
\
313
/* API callback handling */
\
314
ASM(CallApiCallbackGeneric, CallApiCallbackGeneric) \
315
ASM(CallApiCallbackOptimizedNoProfiling, CallApiCallbackOptimized) \
316
ASM(CallApiCallbackOptimized, CallApiCallbackOptimized) \
317
ASM(CallApiGetter, ApiGetter) \
318
TFC(HandleApiCallOrConstruct, JSTrampoline) \
319
CPP(HandleApiConstruct, kDontAdaptArgumentsSentinel) \
320
CPP(HandleApiCallAsFunctionDelegate, kDontAdaptArgumentsSentinel) \
321
CPP(HandleApiCallAsConstructorDelegate, kDontAdaptArgumentsSentinel) \
322
\
323
/* Adapters for Turbofan into runtime */
\
324
TFC(AllocateInYoungGeneration, Allocate) \
325
TFC(AllocateInOldGeneration, Allocate) \
326
IF_WASM(TFC, WasmAllocateInYoungGeneration, Allocate) \
327
IF_WASM(TFC, WasmAllocateInOldGeneration, Allocate) \
328
\
329
TFC(NewHeapNumber, NewHeapNumber) \
330
\
331
/* TurboFan support builtins */
\
332
TFS(CopyFastSmiOrObjectElements, NeedsContext::kNo, kObject) \
333
TFC(GrowFastDoubleElements, GrowArrayElements) \
334
TFC(GrowFastSmiOrObjectElements, GrowArrayElements) \
335
\
336
/* Debugger */
\
337
TFJ(DebugBreakTrampoline, kDontAdaptArgumentsSentinel) \
338
ASM(RestartFrameTrampoline, RestartFrameTrampoline) \
339
\
340
/* Type conversions */
\
341
TFC(ToNumber, TypeConversion) \
342
TFC(ToBigInt, TypeConversion) \
343
TFC(ToNumber_Baseline, TypeConversion_Baseline) \
344
TFC(ToNumeric_Baseline, TypeConversion_Baseline) \
345
TFC(PlainPrimitiveToNumber, TypeConversionNoContext) \
346
TFC(ToNumberConvertBigInt, TypeConversion) \
347
TFC(ToBigIntConvertNumber, TypeConversion) \
348
TFC(Typeof, Typeof) \
349
TFC(Typeof_Baseline, UnaryOp_Baseline) \
350
TFC(BigIntToI64, BigIntToI64) \
351
TFC(BigIntToI32Pair, BigIntToI32Pair) \
352
TFC(I64ToBigInt, I64ToBigInt) \
353
TFC(I32PairToBigInt, I32PairToBigInt) \
354
\
355
/* Type conversions continuations */
\
356
TFC(ToBooleanLazyDeoptContinuation, SingleParameterOnStack) \
357
TFC(MathCeilContinuation, SingleParameterOnStack) \
358
TFC(MathFloorContinuation, SingleParameterOnStack) \
359
TFC(MathRoundContinuation, SingleParameterOnStack) \
360
\
361
/* Handlers */
\
362
TFH(KeyedLoadIC_PolymorphicName, LoadWithVector) \
363
TFH(KeyedStoreIC_Megamorphic, StoreWithVector) \
364
TFH(DefineKeyedOwnIC_Megamorphic, StoreNoFeedback) \
365
TFH(LoadGlobalIC_NoFeedback, LoadGlobalNoFeedback) \
366
TFH(LoadIC_FunctionPrototype, LoadWithVector) \
367
TFH(LoadIC_StringLength, LoadWithVector) \
368
TFH(LoadIC_StringWrapperLength, LoadWithVector) \
369
TFH(LoadIC_NoFeedback, LoadNoFeedback) \
370
TFH(StoreGlobalIC_Slow, StoreWithVector) \
371
TFH(StoreIC_NoFeedback, StoreNoFeedback) \
372
TFH(DefineNamedOwnIC_NoFeedback, StoreNoFeedback) \
373
TFH(KeyedLoadIC_SloppyArguments, LoadWithVector) \
374
TFH(LoadIndexedInterceptorIC, LoadWithVector) \
375
TFH(KeyedStoreIC_SloppyArguments_InBounds, StoreWithVector) \
376
TFH(KeyedStoreIC_SloppyArguments_NoTransitionGrowAndHandleCOW, \
377
StoreWithVector) \
378
TFH(KeyedStoreIC_SloppyArguments_NoTransitionIgnoreTypedArrayOOB, \
379
StoreWithVector) \
380
TFH(KeyedStoreIC_SloppyArguments_NoTransitionHandleCOW, StoreWithVector) \
381
TFH(StoreFastElementIC_InBounds, StoreWithVector) \
382
TFH(StoreFastElementIC_NoTransitionGrowAndHandleCOW, StoreWithVector) \
383
TFH(StoreFastElementIC_NoTransitionIgnoreTypedArrayOOB, StoreWithVector) \
384
TFH(StoreFastElementIC_NoTransitionHandleCOW, StoreWithVector) \
385
TFH(ElementsTransitionAndStore_InBounds, StoreTransition) \
386
TFH(ElementsTransitionAndStore_NoTransitionGrowAndHandleCOW, \
387
StoreTransition) \
388
TFH(ElementsTransitionAndStore_NoTransitionIgnoreTypedArrayOOB, \
389
StoreTransition) \
390
TFH(ElementsTransitionAndStore_NoTransitionHandleCOW, StoreTransition) \
391
TFH(KeyedHasIC_PolymorphicName, LoadWithVector) \
392
TFH(KeyedHasIC_SloppyArguments, LoadWithVector) \
393
TFH(HasIndexedInterceptorIC, LoadWithVector) \
394
\
395
/* Microtask helpers */
\
396
TFS(EnqueueMicrotask, NeedsContext::kYes, kMicrotask) \
397
ASM(RunMicrotasksTrampoline, RunMicrotasksEntry) \
398
TFC(RunMicrotasks, RunMicrotasks) \
399
\
400
/* Object property helpers */
\
401
TFS(HasProperty, NeedsContext::kYes, kObject, kKey) \
402
TFS(DeleteProperty, NeedsContext::kYes, kObject, kKey, kLanguageMode) \
403
/* ES #sec-copydataproperties */
\
404
TFS(CopyDataProperties, NeedsContext::kYes, kTarget, kSource) \
405
TFS(SetDataProperties, NeedsContext::kYes, kTarget, kSource) \
406
TFC(CopyDataPropertiesWithExcludedPropertiesOnStack, \
407
CopyDataPropertiesWithExcludedPropertiesOnStack) \
408
TFC(CopyDataPropertiesWithExcludedProperties, \
409
CopyDataPropertiesWithExcludedProperties) \
410
\
411
/* Abort */
\
412
TFC(Abort, Abort) \
413
TFC(AbortCSADcheck, Abort) \
414
\
415
/* Built-in functions for Javascript */
\
416
/* Special internal builtins */
\
417
CPP(EmptyFunction, kDontAdaptArgumentsSentinel) \
418
CPP(EmptyFunction1, JSParameterCount(1)) \
419
CPP(Illegal, kDontAdaptArgumentsSentinel) \
420
CPP(IllegalInvocationThrower, kDontAdaptArgumentsSentinel) \
421
CPP(StrictPoisonPillThrower, JSParameterCount(0)) \
422
CPP(UnsupportedThrower, kDontAdaptArgumentsSentinel) \
423
TFJ(ReturnReceiver, kJSArgcReceiverSlots, kReceiver) \
424
\
425
/* AbstractModuleSource */
\
426
CPP(AbstractModuleSourceToStringTag, JSParameterCount(0)) \
427
\
428
/* Array */
\
429
TFC(ArrayConstructor, JSTrampoline) \
430
TFC(ArrayConstructorImpl, ArrayConstructor) \
431
TFC(ArrayNoArgumentConstructor_PackedSmi_DontOverride, \
432
ArrayNoArgumentConstructor) \
433
TFC(ArrayNoArgumentConstructor_HoleySmi_DontOverride, \
434
ArrayNoArgumentConstructor) \
435
TFC(ArrayNoArgumentConstructor_PackedSmi_DisableAllocationSites, \
436
ArrayNoArgumentConstructor) \
437
TFC(ArrayNoArgumentConstructor_HoleySmi_DisableAllocationSites, \
438
ArrayNoArgumentConstructor) \
439
TFC(ArrayNoArgumentConstructor_Packed_DisableAllocationSites, \
440
ArrayNoArgumentConstructor) \
441
TFC(ArrayNoArgumentConstructor_Holey_DisableAllocationSites, \
442
ArrayNoArgumentConstructor) \
443
TFC(ArrayNoArgumentConstructor_PackedDouble_DisableAllocationSites, \
444
ArrayNoArgumentConstructor) \
445
TFC(ArrayNoArgumentConstructor_HoleyDouble_DisableAllocationSites, \
446
ArrayNoArgumentConstructor) \
447
TFC(ArraySingleArgumentConstructor_PackedSmi_DontOverride, \
448
ArraySingleArgumentConstructor) \
449
TFC(ArraySingleArgumentConstructor_HoleySmi_DontOverride, \
450
ArraySingleArgumentConstructor) \
451
TFC(ArraySingleArgumentConstructor_PackedSmi_DisableAllocationSites, \
452
ArraySingleArgumentConstructor) \
453
TFC(ArraySingleArgumentConstructor_HoleySmi_DisableAllocationSites, \
454
ArraySingleArgumentConstructor) \
455
TFC(ArraySingleArgumentConstructor_Packed_DisableAllocationSites, \
456
ArraySingleArgumentConstructor) \
457
TFC(ArraySingleArgumentConstructor_Holey_DisableAllocationSites, \
458
ArraySingleArgumentConstructor) \
459
TFC(ArraySingleArgumentConstructor_PackedDouble_DisableAllocationSites, \
460
ArraySingleArgumentConstructor) \
461
TFC(ArraySingleArgumentConstructor_HoleyDouble_DisableAllocationSites, \
462
ArraySingleArgumentConstructor) \
463
TFC(ArrayNArgumentsConstructor, ArrayNArgumentsConstructor) \
464
CPP(ArrayConcat, kDontAdaptArgumentsSentinel) \
465
/* ES6 #sec-array.prototype.fill */
\
466
CPP(ArrayPrototypeFill, kDontAdaptArgumentsSentinel) \
467
/* ES7 #sec-array.prototype.includes */
\
468
TFS(ArrayIncludesSmi, NeedsContext::kYes, kElements, kSearchElement, \
469
kLength, kFromIndex) \
470
TFS(ArrayIncludesSmiOrObject, NeedsContext::kYes, kElements, kSearchElement, \
471
kLength, kFromIndex) \
472
TFS(ArrayIncludesPackedDoubles, NeedsContext::kYes, kElements, \
473
kSearchElement, kLength, kFromIndex) \
474
TFS(ArrayIncludesHoleyDoubles, NeedsContext::kYes, kElements, \
475
kSearchElement, kLength, kFromIndex) \
476
TFJ(ArrayIncludes, kDontAdaptArgumentsSentinel) \
477
/* ES6 #sec-array.prototype.indexof */
\
478
TFS(ArrayIndexOfSmi, NeedsContext::kYes, kElements, kSearchElement, kLength, \
479
kFromIndex) \
480
TFS(ArrayIndexOfSmiOrObject, NeedsContext::kYes, kElements, kSearchElement, \
481
kLength, kFromIndex) \
482
TFS(ArrayIndexOfPackedDoubles, NeedsContext::kYes, kElements, \
483
kSearchElement, kLength, kFromIndex) \
484
TFS(ArrayIndexOfHoleyDoubles, NeedsContext::kYes, kElements, kSearchElement, \
485
kLength, kFromIndex) \
486
TFJ(ArrayIndexOf, kDontAdaptArgumentsSentinel) \
487
/* ES6 #sec-array.prototype.pop */
\
488
CPP(ArrayPop, kDontAdaptArgumentsSentinel) \
489
TFJ(ArrayPrototypePop, kDontAdaptArgumentsSentinel) \
490
/* ES6 #sec-array.prototype.push */
\
491
CPP(ArrayPush, kDontAdaptArgumentsSentinel) \
492
TFJ(ArrayPrototypePush, kDontAdaptArgumentsSentinel) \
493
/* ES6 #sec-array.prototype.shift */
\
494
CPP(ArrayShift, kDontAdaptArgumentsSentinel) \
495
/* ES6 #sec-array.prototype.unshift */
\
496
CPP(ArrayUnshift, kDontAdaptArgumentsSentinel) \
497
/* Support for Array.from and other array-copying idioms */
\
498
TFS(CloneFastJSArray, NeedsContext::kYes, kSource) \
499
TFS(CloneFastJSArrayFillingHoles, NeedsContext::kYes, kSource) \
500
TFS(ExtractFastJSArray, NeedsContext::kYes, kSource, kBegin, kCount) \
501
TFS(CreateArrayFromSlowBoilerplate, NeedsContext::kYes, kFeedbackVector, \
502
kSlot, kBoilerplateDescriptor, kFlags) \
503
TFS(CreateObjectFromSlowBoilerplate, NeedsContext::kYes, kFeedbackVector, \
504
kSlot, kBoilerplateDescriptor, kFlags) \
505
TFC(CreateArrayFromSlowBoilerplateHelper, CreateFromSlowBoilerplateHelper) \
506
TFC(CreateObjectFromSlowBoilerplateHelper, CreateFromSlowBoilerplateHelper) \
507
/* ES6 #sec-array.prototype.entries */
\
508
TFJ(ArrayPrototypeEntries, kJSArgcReceiverSlots, kReceiver) \
509
/* ES6 #sec-array.prototype.keys */
\
510
TFJ(ArrayPrototypeKeys, kJSArgcReceiverSlots, kReceiver) \
511
/* ES6 #sec-array.prototype.values */
\
512
TFJ(ArrayPrototypeValues, kJSArgcReceiverSlots, kReceiver) \
513
/* ES6 #sec-%arrayiteratorprototype%.next */
\
514
TFJ(ArrayIteratorPrototypeNext, kJSArgcReceiverSlots, kReceiver) \
515
\
516
/* ArrayBuffer */
\
517
/* ES #sec-arraybuffer-constructor */
\
518
CPP(ArrayBufferConstructor, JSParameterCount(1)) \
519
CPP(ArrayBufferConstructor_DoNotInitialize, kDontAdaptArgumentsSentinel) \
520
CPP(ArrayBufferPrototypeSlice, JSParameterCount(2)) \
521
/* https://tc39.es/proposal-resizablearraybuffer/ */
\
522
CPP(ArrayBufferPrototypeResize, JSParameterCount(1)) \
523
/* https://tc39.es/proposal-arraybuffer-transfer/ */
\
524
CPP(ArrayBufferPrototypeTransfer, kDontAdaptArgumentsSentinel) \
525
CPP(ArrayBufferPrototypeTransferToFixedLength, kDontAdaptArgumentsSentinel) \
526
\
527
/* AsyncFunction */
\
528
TFS(AsyncFunctionEnter, NeedsContext::kYes, kClosure, kReceiver) \
529
TFS(AsyncFunctionReject, NeedsContext::kYes, kAsyncFunctionObject, kReason) \
530
TFS(AsyncFunctionResolve, NeedsContext::kYes, kAsyncFunctionObject, kValue) \
531
TFC(AsyncFunctionLazyDeoptContinuation, AsyncFunctionStackParameter) \
532
TFS(AsyncFunctionAwait, NeedsContext::kYes, kAsyncFunctionObject, kValue) \
533
TFJ(AsyncFunctionAwaitRejectClosure, kJSArgcReceiverSlots + 1, kReceiver, \
534
kSentError) \
535
TFJ(AsyncFunctionAwaitResolveClosure, kJSArgcReceiverSlots + 1, kReceiver, \
536
kSentValue) \
537
\
538
/* BigInt */
\
539
CPP(BigIntConstructor, kDontAdaptArgumentsSentinel) \
540
CPP(BigIntAsUintN, kDontAdaptArgumentsSentinel) \
541
CPP(BigIntAsIntN, kDontAdaptArgumentsSentinel) \
542
CPP(BigIntPrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
543
CPP(BigIntPrototypeToString, kDontAdaptArgumentsSentinel) \
544
CPP(BigIntPrototypeValueOf, kDontAdaptArgumentsSentinel) \
545
\
546
/* CallSite */
\
547
CPP(CallSitePrototypeGetColumnNumber, JSParameterCount(0)) \
548
CPP(CallSitePrototypeGetEnclosingColumnNumber, JSParameterCount(0)) \
549
CPP(CallSitePrototypeGetEnclosingLineNumber, JSParameterCount(0)) \
550
CPP(CallSitePrototypeGetEvalOrigin, JSParameterCount(0)) \
551
CPP(CallSitePrototypeGetFileName, JSParameterCount(0)) \
552
CPP(CallSitePrototypeGetFunction, JSParameterCount(0)) \
553
CPP(CallSitePrototypeGetFunctionName, JSParameterCount(0)) \
554
CPP(CallSitePrototypeGetLineNumber, JSParameterCount(0)) \
555
CPP(CallSitePrototypeGetMethodName, JSParameterCount(0)) \
556
CPP(CallSitePrototypeGetPosition, JSParameterCount(0)) \
557
CPP(CallSitePrototypeGetPromiseIndex, JSParameterCount(0)) \
558
CPP(CallSitePrototypeGetScriptHash, JSParameterCount(0)) \
559
CPP(CallSitePrototypeGetScriptNameOrSourceURL, JSParameterCount(0)) \
560
CPP(CallSitePrototypeGetThis, JSParameterCount(0)) \
561
CPP(CallSitePrototypeGetTypeName, JSParameterCount(0)) \
562
CPP(CallSitePrototypeIsAsync, JSParameterCount(0)) \
563
CPP(CallSitePrototypeIsConstructor, JSParameterCount(0)) \
564
CPP(CallSitePrototypeIsEval, JSParameterCount(0)) \
565
CPP(CallSitePrototypeIsNative, JSParameterCount(0)) \
566
CPP(CallSitePrototypeIsPromiseAll, JSParameterCount(0)) \
567
CPP(CallSitePrototypeIsToplevel, JSParameterCount(0)) \
568
CPP(CallSitePrototypeToString, JSParameterCount(0)) \
569
\
570
/* Console */
\
571
CPP(ConsoleDebug, kDontAdaptArgumentsSentinel) \
572
CPP(ConsoleError, kDontAdaptArgumentsSentinel) \
573
CPP(ConsoleInfo, kDontAdaptArgumentsSentinel) \
574
CPP(ConsoleLog, kDontAdaptArgumentsSentinel) \
575
CPP(ConsoleWarn, kDontAdaptArgumentsSentinel) \
576
CPP(ConsoleDir, kDontAdaptArgumentsSentinel) \
577
CPP(ConsoleDirXml, kDontAdaptArgumentsSentinel) \
578
CPP(ConsoleTable, kDontAdaptArgumentsSentinel) \
579
CPP(ConsoleTrace, kDontAdaptArgumentsSentinel) \
580
CPP(ConsoleGroup, kDontAdaptArgumentsSentinel) \
581
CPP(ConsoleGroupCollapsed, kDontAdaptArgumentsSentinel) \
582
CPP(ConsoleGroupEnd, kDontAdaptArgumentsSentinel) \
583
CPP(ConsoleClear, kDontAdaptArgumentsSentinel) \
584
CPP(ConsoleCount, kDontAdaptArgumentsSentinel) \
585
CPP(ConsoleCountReset, kDontAdaptArgumentsSentinel) \
586
CPP(ConsoleAssert, kDontAdaptArgumentsSentinel) \
587
CPP(ConsoleProfile, kDontAdaptArgumentsSentinel) \
588
CPP(ConsoleProfileEnd, kDontAdaptArgumentsSentinel) \
589
CPP(ConsoleTime, kDontAdaptArgumentsSentinel) \
590
CPP(ConsoleTimeLog, kDontAdaptArgumentsSentinel) \
591
CPP(ConsoleTimeEnd, kDontAdaptArgumentsSentinel) \
592
CPP(ConsoleTimeStamp, kDontAdaptArgumentsSentinel) \
593
CPP(ConsoleContext, kDontAdaptArgumentsSentinel) \
594
\
595
/* DataView */
\
596
/* ES #sec-dataview-constructor */
\
597
CPP(DataViewConstructor, kDontAdaptArgumentsSentinel) \
598
\
599
/* Date */
\
600
/* ES #sec-date-constructor */
\
601
CPP(DateConstructor, kDontAdaptArgumentsSentinel) \
602
/* ES6 #sec-date.prototype.getdate */
\
603
TFJ(DatePrototypeGetDate, kJSArgcReceiverSlots, kReceiver) \
604
/* ES6 #sec-date.prototype.getday */
\
605
TFJ(DatePrototypeGetDay, kJSArgcReceiverSlots, kReceiver) \
606
/* ES6 #sec-date.prototype.getfullyear */
\
607
TFJ(DatePrototypeGetFullYear, kJSArgcReceiverSlots, kReceiver) \
608
/* ES6 #sec-date.prototype.gethours */
\
609
TFJ(DatePrototypeGetHours, kJSArgcReceiverSlots, kReceiver) \
610
/* ES6 #sec-date.prototype.getmilliseconds */
\
611
TFJ(DatePrototypeGetMilliseconds, kJSArgcReceiverSlots, kReceiver) \
612
/* ES6 #sec-date.prototype.getminutes */
\
613
TFJ(DatePrototypeGetMinutes, kJSArgcReceiverSlots, kReceiver) \
614
/* ES6 #sec-date.prototype.getmonth */
\
615
TFJ(DatePrototypeGetMonth, kJSArgcReceiverSlots, kReceiver) \
616
/* ES6 #sec-date.prototype.getseconds */
\
617
TFJ(DatePrototypeGetSeconds, kJSArgcReceiverSlots, kReceiver) \
618
/* ES6 #sec-date.prototype.gettime */
\
619
TFJ(DatePrototypeGetTime, kJSArgcReceiverSlots, kReceiver) \
620
/* ES6 #sec-date.prototype.gettimezoneoffset */
\
621
TFJ(DatePrototypeGetTimezoneOffset, kJSArgcReceiverSlots, kReceiver) \
622
/* ES6 #sec-date.prototype.getutcdate */
\
623
TFJ(DatePrototypeGetUTCDate, kJSArgcReceiverSlots, kReceiver) \
624
/* ES6 #sec-date.prototype.getutcday */
\
625
TFJ(DatePrototypeGetUTCDay, kJSArgcReceiverSlots, kReceiver) \
626
/* ES6 #sec-date.prototype.getutcfullyear */
\
627
TFJ(DatePrototypeGetUTCFullYear, kJSArgcReceiverSlots, kReceiver) \
628
/* ES6 #sec-date.prototype.getutchours */
\
629
TFJ(DatePrototypeGetUTCHours, kJSArgcReceiverSlots, kReceiver) \
630
/* ES6 #sec-date.prototype.getutcmilliseconds */
\
631
TFJ(DatePrototypeGetUTCMilliseconds, kJSArgcReceiverSlots, kReceiver) \
632
/* ES6 #sec-date.prototype.getutcminutes */
\
633
TFJ(DatePrototypeGetUTCMinutes, kJSArgcReceiverSlots, kReceiver) \
634
/* ES6 #sec-date.prototype.getutcmonth */
\
635
TFJ(DatePrototypeGetUTCMonth, kJSArgcReceiverSlots, kReceiver) \
636
/* ES6 #sec-date.prototype.getutcseconds */
\
637
TFJ(DatePrototypeGetUTCSeconds, kJSArgcReceiverSlots, kReceiver) \
638
/* ES6 #sec-date.prototype.valueof */
\
639
TFJ(DatePrototypeValueOf, kJSArgcReceiverSlots, kReceiver) \
640
/* ES6 #sec-date.prototype-@@toprimitive */
\
641
TFJ(DatePrototypeToPrimitive, kJSArgcReceiverSlots + 1, kReceiver, kHint) \
642
CPP(DatePrototypeGetYear, JSParameterCount(0)) \
643
CPP(DatePrototypeSetYear, kDontAdaptArgumentsSentinel) \
644
CPP(DateNow, kDontAdaptArgumentsSentinel) \
645
CPP(DateParse, kDontAdaptArgumentsSentinel) \
646
CPP(DatePrototypeSetDate, kDontAdaptArgumentsSentinel) \
647
CPP(DatePrototypeSetFullYear, kDontAdaptArgumentsSentinel) \
648
CPP(DatePrototypeSetHours, kDontAdaptArgumentsSentinel) \
649
CPP(DatePrototypeSetMilliseconds, kDontAdaptArgumentsSentinel) \
650
CPP(DatePrototypeSetMinutes, kDontAdaptArgumentsSentinel) \
651
CPP(DatePrototypeSetMonth, kDontAdaptArgumentsSentinel) \
652
CPP(DatePrototypeSetSeconds, kDontAdaptArgumentsSentinel) \
653
CPP(DatePrototypeSetTime, kDontAdaptArgumentsSentinel) \
654
CPP(DatePrototypeSetUTCDate, kDontAdaptArgumentsSentinel) \
655
CPP(DatePrototypeSetUTCFullYear, kDontAdaptArgumentsSentinel) \
656
CPP(DatePrototypeSetUTCHours, kDontAdaptArgumentsSentinel) \
657
CPP(DatePrototypeSetUTCMilliseconds, kDontAdaptArgumentsSentinel) \
658
CPP(DatePrototypeSetUTCMinutes, kDontAdaptArgumentsSentinel) \
659
CPP(DatePrototypeSetUTCMonth, kDontAdaptArgumentsSentinel) \
660
CPP(DatePrototypeSetUTCSeconds, kDontAdaptArgumentsSentinel) \
661
CPP(DatePrototypeToDateString, kDontAdaptArgumentsSentinel) \
662
CPP(DatePrototypeToISOString, kDontAdaptArgumentsSentinel) \
663
CPP(DatePrototypeToUTCString, kDontAdaptArgumentsSentinel) \
664
CPP(DatePrototypeToString, kDontAdaptArgumentsSentinel) \
665
CPP(DatePrototypeToTimeString, kDontAdaptArgumentsSentinel) \
666
CPP(DatePrototypeToJson, kDontAdaptArgumentsSentinel) \
667
CPP(DateUTC, kDontAdaptArgumentsSentinel) \
668
\
669
/* DisposabeStack*/
\
670
CPP(DisposableStackConstructor, kDontAdaptArgumentsSentinel) \
671
CPP(DisposableStackPrototypeUse, JSParameterCount(1)) \
672
CPP(DisposableStackPrototypeDispose, JSParameterCount(0)) \
673
CPP(DisposableStackPrototypeGetDisposed, JSParameterCount(0)) \
674
CPP(DisposableStackPrototypeAdopt, JSParameterCount(2)) \
675
CPP(DisposableStackPrototypeDefer, JSParameterCount(1)) \
676
CPP(DisposableStackPrototypeMove, JSParameterCount(0)) \
677
\
678
/* Async DisposabeStack*/
\
679
CPP(AsyncDisposableStackOnFulfilled, JSParameterCount(0)) \
680
CPP(AsyncDisposableStackOnRejected, JSParameterCount(0)) \
681
CPP(AsyncDisposeFromSyncDispose, JSParameterCount(0)) \
682
CPP(AsyncDisposableStackConstructor, kDontAdaptArgumentsSentinel) \
683
CPP(AsyncDisposableStackPrototypeUse, JSParameterCount(1)) \
684
CPP(AsyncDisposableStackPrototypeDisposeAsync, JSParameterCount(0)) \
685
CPP(AsyncDisposableStackPrototypeGetDisposed, JSParameterCount(0)) \
686
CPP(AsyncDisposableStackPrototypeAdopt, JSParameterCount(2)) \
687
CPP(AsyncDisposableStackPrototypeDefer, JSParameterCount(1)) \
688
CPP(AsyncDisposableStackPrototypeMove, JSParameterCount(0)) \
689
\
690
/* Error */
\
691
CPP(ErrorConstructor, kDontAdaptArgumentsSentinel) \
692
CPP(ErrorCaptureStackTrace, kDontAdaptArgumentsSentinel) \
693
CPP(ErrorPrototypeToString, JSParameterCount(0)) \
694
CPP(ErrorIsError, JSParameterCount(1)) \
695
\
696
/* Function */
\
697
CPP(FunctionConstructor, kDontAdaptArgumentsSentinel) \
698
ASM(FunctionPrototypeApply, JSTrampoline) \
699
CPP(FunctionPrototypeBind, kDontAdaptArgumentsSentinel) \
700
IF_WASM(CPP, WebAssemblyFunctionPrototypeBind, kDontAdaptArgumentsSentinel) \
701
ASM(FunctionPrototypeCall, JSTrampoline) \
702
/* ES6 #sec-function.prototype.tostring */
\
703
CPP(FunctionPrototypeToString, kDontAdaptArgumentsSentinel) \
704
\
705
/* Belongs to Objects but is a dependency of GeneratorPrototypeResume */
\
706
TFS(CreateIterResultObject, NeedsContext::kYes, kValue, kDone) \
707
\
708
/* Generator and Async */
\
709
TFS(CreateGeneratorObject, NeedsContext::kYes, kClosure, kReceiver) \
710
CPP(GeneratorFunctionConstructor, kDontAdaptArgumentsSentinel) \
711
/* ES6 #sec-generator.prototype.next */
\
712
TFJ(GeneratorPrototypeNext, kDontAdaptArgumentsSentinel) \
713
/* ES6 #sec-generator.prototype.return */
\
714
TFJ(GeneratorPrototypeReturn, kDontAdaptArgumentsSentinel) \
715
/* ES6 #sec-generator.prototype.throw */
\
716
TFJ(GeneratorPrototypeThrow, kDontAdaptArgumentsSentinel) \
717
CPP(AsyncFunctionConstructor, kDontAdaptArgumentsSentinel) \
718
TFC(SuspendGeneratorBaseline, SuspendGeneratorBaseline) \
719
TFC(ResumeGeneratorBaseline, ResumeGeneratorBaseline) \
720
\
721
/* Iterator Protocol */
\
722
TFC(GetIteratorWithFeedbackLazyDeoptContinuation, GetIteratorStackParameter) \
723
TFC(CallIteratorWithFeedbackLazyDeoptContinuation, SingleParameterOnStack) \
724
\
725
/* Global object */
\
726
CPP(GlobalDecodeURI, kDontAdaptArgumentsSentinel) \
727
CPP(GlobalDecodeURIComponent, kDontAdaptArgumentsSentinel) \
728
CPP(GlobalEncodeURI, kDontAdaptArgumentsSentinel) \
729
CPP(GlobalEncodeURIComponent, kDontAdaptArgumentsSentinel) \
730
CPP(GlobalEscape, kDontAdaptArgumentsSentinel) \
731
CPP(GlobalUnescape, kDontAdaptArgumentsSentinel) \
732
CPP(GlobalEval, kDontAdaptArgumentsSentinel) \
733
/* ES6 #sec-isfinite-number */
\
734
TFJ(GlobalIsFinite, kJSArgcReceiverSlots + 1, kReceiver, kNumber) \
735
/* ES6 #sec-isnan-number */
\
736
TFJ(GlobalIsNaN, kJSArgcReceiverSlots + 1, kReceiver, kNumber) \
737
\
738
/* JSON */
\
739
CPP(JsonParse, kDontAdaptArgumentsSentinel) \
740
CPP(JsonStringify, JSParameterCount(3)) \
741
CPP(JsonRawJson, JSParameterCount(1)) \
742
CPP(JsonIsRawJson, JSParameterCount(1)) \
743
\
744
/* ICs */
\
745
TFH(LoadIC, LoadWithVector) \
746
TFH(LoadIC_Megamorphic, LoadWithVector) \
747
TFH(LoadIC_Noninlined, LoadWithVector) \
748
TFH(LoadICTrampoline, Load) \
749
TFH(LoadICBaseline, LoadBaseline) \
750
TFH(LoadICTrampoline_Megamorphic, Load) \
751
TFH(LoadSuperIC, LoadWithReceiverAndVector) \
752
TFH(LoadSuperICBaseline, LoadWithReceiverBaseline) \
753
TFH(KeyedLoadIC, KeyedLoadWithVector) \
754
TFH(EnumeratedKeyedLoadIC, EnumeratedKeyedLoad) \
755
TFH(KeyedLoadIC_Megamorphic, KeyedLoadWithVector) \
756
TFH(KeyedLoadICTrampoline, KeyedLoad) \
757
TFH(KeyedLoadICBaseline, KeyedLoadBaseline) \
758
TFH(EnumeratedKeyedLoadICBaseline, EnumeratedKeyedLoadBaseline) \
759
TFH(KeyedLoadICTrampoline_Megamorphic, KeyedLoad) \
760
TFH(StoreGlobalIC, StoreGlobalWithVector) \
761
TFH(StoreGlobalICTrampoline, StoreGlobal) \
762
TFH(StoreGlobalICBaseline, StoreGlobalBaseline) \
763
TFH(StoreIC, StoreWithVector) \
764
TFH(StoreIC_Megamorphic, StoreWithVector) \
765
TFH(StoreICTrampoline, Store) \
766
TFH(StoreICTrampoline_Megamorphic, Store) \
767
TFH(StoreICBaseline, StoreBaseline) \
768
TFH(DefineNamedOwnIC, StoreWithVector) \
769
TFH(DefineNamedOwnICTrampoline, Store) \
770
TFH(DefineNamedOwnICBaseline, StoreBaseline) \
771
TFH(KeyedStoreIC, StoreWithVector) \
772
TFH(KeyedStoreICTrampoline, Store) \
773
TFH(KeyedStoreICTrampoline_Megamorphic, Store) \
774
TFH(KeyedStoreICBaseline, StoreBaseline) \
775
TFH(DefineKeyedOwnIC, DefineKeyedOwnWithVector) \
776
TFH(DefineKeyedOwnICTrampoline, DefineKeyedOwn) \
777
TFH(DefineKeyedOwnICBaseline, DefineKeyedOwnBaseline) \
778
TFH(StoreInArrayLiteralIC, StoreWithVector) \
779
TFH(StoreInArrayLiteralICBaseline, StoreBaseline) \
780
TFH(LookupContextTrampoline, LookupTrampoline) \
781
TFH(LookupScriptContextTrampoline, LookupTrampoline) \
782
TFH(LookupContextBaseline, LookupBaseline) \
783
TFH(LookupScriptContextBaseline, LookupBaseline) \
784
TFH(LookupContextInsideTypeofTrampoline, LookupTrampoline) \
785
TFH(LookupScriptContextInsideTypeofTrampoline, LookupTrampoline) \
786
TFH(LookupContextInsideTypeofBaseline, LookupBaseline) \
787
TFH(LookupScriptContextInsideTypeofBaseline, LookupBaseline) \
788
TFH(LoadGlobalIC, LoadGlobalWithVector) \
789
TFH(LoadGlobalICInsideTypeof, LoadGlobalWithVector) \
790
TFH(LoadGlobalICTrampoline, LoadGlobal) \
791
TFH(LoadGlobalICBaseline, LoadGlobalBaseline) \
792
TFH(LoadGlobalICInsideTypeofTrampoline, LoadGlobal) \
793
TFH(LoadGlobalICInsideTypeofBaseline, LoadGlobalBaseline) \
794
TFH(LookupGlobalIC, LookupWithVector) \
795
TFH(LookupGlobalICTrampoline, LookupTrampoline) \
796
TFH(LookupGlobalICBaseline, LookupBaseline) \
797
TFH(LookupGlobalICInsideTypeof, LookupWithVector) \
798
TFH(LookupGlobalICInsideTypeofTrampoline, LookupTrampoline) \
799
TFH(LookupGlobalICInsideTypeofBaseline, LookupBaseline) \
800
TFH(CloneObjectIC, CloneObjectWithVector) \
801
TFH(CloneObjectICBaseline, CloneObjectBaseline) \
802
TFH(CloneObjectIC_Slow, CloneObjectWithVector) \
803
TFH(KeyedHasIC, KeyedHasICWithVector) \
804
TFH(KeyedHasICBaseline, KeyedHasICBaseline) \
805
TFH(KeyedHasIC_Megamorphic, KeyedHasICWithVector) \
806
\
807
/* IterableToList */
\
808
/* ES #sec-iterabletolist */
\
809
TFS(IterableToList, NeedsContext::kYes, kIterable, kIteratorFn) \
810
TFS(IterableToFixedArray, NeedsContext::kYes, kIterable, kIteratorFn) \
811
TFS(IterableToListWithSymbolLookup, NeedsContext::kYes, kIterable) \
812
TFS(IterableToFixedArrayWithSymbolLookupSlow, NeedsContext::kYes, kIterable) \
813
TFS(IterableToListMayPreserveHoles, NeedsContext::kYes, kIterable, \
814
kIteratorFn) \
815
TFS(IterableToListConvertHoles, NeedsContext::kYes, kIterable, kIteratorFn) \
816
IF_WASM(TFS, IterableToFixedArrayForWasm, NeedsContext::kYes, kIterable, \
817
kExpectedLength) \
818
\
819
/* #sec-createstringlistfromiterable */
\
820
TFS(StringListFromIterable, NeedsContext::kYes, kIterable) \
821
\
822
/* Map */
\
823
TFS(FindOrderedHashMapEntry, NeedsContext::kYes, kTable, kKey) \
824
TFJ(MapConstructor, kDontAdaptArgumentsSentinel) \
825
TFJ(MapPrototypeSet, kJSArgcReceiverSlots + 2, kReceiver, kKey, kValue) \
826
TFJ(MapPrototypeDelete, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
827
TFJ(MapPrototypeGet, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
828
TFJ(MapPrototypeHas, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
829
CPP(MapPrototypeClear, JSParameterCount(0)) \
830
/* ES #sec-map.prototype.entries */
\
831
TFJ(MapPrototypeEntries, kJSArgcReceiverSlots, kReceiver) \
832
/* ES #sec-get-map.prototype.size */
\
833
TFJ(MapPrototypeGetSize, kJSArgcReceiverSlots, kReceiver) \
834
/* ES #sec-map.prototype.forEach */
\
835
TFJ(MapPrototypeForEach, kDontAdaptArgumentsSentinel) \
836
/* ES #sec-map.prototype.keys */
\
837
TFJ(MapPrototypeKeys, kJSArgcReceiverSlots, kReceiver) \
838
/* ES #sec-map.prototype.values */
\
839
TFJ(MapPrototypeValues, kJSArgcReceiverSlots, kReceiver) \
840
/* ES #sec-%mapiteratorprototype%.next */
\
841
TFJ(MapIteratorPrototypeNext, kJSArgcReceiverSlots, kReceiver) \
842
TFS(MapIteratorToList, NeedsContext::kYes, kSource) \
843
\
844
/* ES #sec-number-constructor */
\
845
CPP(NumberPrototypeToExponential, kDontAdaptArgumentsSentinel) \
846
CPP(NumberPrototypeToFixed, kDontAdaptArgumentsSentinel) \
847
CPP(NumberPrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
848
CPP(NumberPrototypeToPrecision, kDontAdaptArgumentsSentinel) \
849
TFC(SameValue, CompareNoContext) \
850
TFC(SameValueNumbersOnly, CompareNoContext) \
851
\
852
/* Binary ops with feedback collection */
\
853
TFC(Add_Baseline, BinaryOp_Baseline) \
854
TFC(AddSmi_Baseline, BinarySmiOp_Baseline) \
855
TFC(Subtract_Baseline, BinaryOp_Baseline) \
856
TFC(SubtractSmi_Baseline, BinarySmiOp_Baseline) \
857
TFC(Multiply_Baseline, BinaryOp_Baseline) \
858
TFC(MultiplySmi_Baseline, BinarySmiOp_Baseline) \
859
TFC(Divide_Baseline, BinaryOp_Baseline) \
860
TFC(DivideSmi_Baseline, BinarySmiOp_Baseline) \
861
TFC(Modulus_Baseline, BinaryOp_Baseline) \
862
TFC(ModulusSmi_Baseline, BinarySmiOp_Baseline) \
863
TFC(Exponentiate_Baseline, BinaryOp_Baseline) \
864
TFC(ExponentiateSmi_Baseline, BinarySmiOp_Baseline) \
865
TFC(BitwiseAnd_Baseline, BinaryOp_Baseline) \
866
TFC(BitwiseAndSmi_Baseline, BinarySmiOp_Baseline) \
867
TFC(BitwiseOr_Baseline, BinaryOp_Baseline) \
868
TFC(BitwiseOrSmi_Baseline, BinarySmiOp_Baseline) \
869
TFC(BitwiseXor_Baseline, BinaryOp_Baseline) \
870
TFC(BitwiseXorSmi_Baseline, BinarySmiOp_Baseline) \
871
TFC(ShiftLeft_Baseline, BinaryOp_Baseline) \
872
TFC(ShiftLeftSmi_Baseline, BinarySmiOp_Baseline) \
873
TFC(ShiftRight_Baseline, BinaryOp_Baseline) \
874
TFC(ShiftRightSmi_Baseline, BinarySmiOp_Baseline) \
875
TFC(ShiftRightLogical_Baseline, BinaryOp_Baseline) \
876
TFC(ShiftRightLogicalSmi_Baseline, BinarySmiOp_Baseline) \
877
\
878
TFC(Add_WithFeedback, BinaryOp_WithFeedback) \
879
TFC(Subtract_WithFeedback, BinaryOp_WithFeedback) \
880
TFC(Multiply_WithFeedback, BinaryOp_WithFeedback) \
881
TFC(Divide_WithFeedback, BinaryOp_WithFeedback) \
882
TFC(Modulus_WithFeedback, BinaryOp_WithFeedback) \
883
TFC(Exponentiate_WithFeedback, BinaryOp_WithFeedback) \
884
TFC(BitwiseAnd_WithFeedback, BinaryOp_WithFeedback) \
885
TFC(BitwiseOr_WithFeedback, BinaryOp_WithFeedback) \
886
TFC(BitwiseXor_WithFeedback, BinaryOp_WithFeedback) \
887
TFC(ShiftLeft_WithFeedback, BinaryOp_WithFeedback) \
888
TFC(ShiftRight_WithFeedback, BinaryOp_WithFeedback) \
889
TFC(ShiftRightLogical_WithFeedback, BinaryOp_WithFeedback) \
890
\
891
/* Compare ops with feedback collection */
\
892
TFC(Equal_Baseline, Compare_Baseline) \
893
TFC(StrictEqual_Baseline, Compare_Baseline) \
894
TFC(LessThan_Baseline, Compare_Baseline) \
895
TFC(GreaterThan_Baseline, Compare_Baseline) \
896
TFC(LessThanOrEqual_Baseline, Compare_Baseline) \
897
TFC(GreaterThanOrEqual_Baseline, Compare_Baseline) \
898
\
899
TFC(Equal_WithFeedback, Compare_WithFeedback) \
900
TFC(StrictEqual_WithFeedback, Compare_WithFeedback) \
901
TFC(LessThan_WithFeedback, Compare_WithFeedback) \
902
TFC(GreaterThan_WithFeedback, Compare_WithFeedback) \
903
TFC(LessThanOrEqual_WithFeedback, Compare_WithFeedback) \
904
TFC(GreaterThanOrEqual_WithFeedback, Compare_WithFeedback) \
905
\
906
/* Unary ops with feedback collection */
\
907
TFC(BitwiseNot_Baseline, UnaryOp_Baseline) \
908
TFC(Decrement_Baseline, UnaryOp_Baseline) \
909
TFC(Increment_Baseline, UnaryOp_Baseline) \
910
TFC(Negate_Baseline, UnaryOp_Baseline) \
911
IF_TSA(TSC, TFC, BitwiseNot_WithFeedback, UnaryOp_WithFeedback) \
912
TFC(Decrement_WithFeedback, UnaryOp_WithFeedback) \
913
TFC(Increment_WithFeedback, UnaryOp_WithFeedback) \
914
TFC(Negate_WithFeedback, UnaryOp_WithFeedback) \
915
\
916
/* Object */
\
917
/* ES #sec-object-constructor */
\
918
TFJ(ObjectAssign, kDontAdaptArgumentsSentinel) \
919
/* ES #sec-object.create */
\
920
TFJ(ObjectCreate, kDontAdaptArgumentsSentinel) \
921
CPP(ObjectDefineGetter, JSParameterCount(2)) \
922
CPP(ObjectDefineProperties, JSParameterCount(2)) \
923
CPP(ObjectDefineProperty, JSParameterCount(3)) \
924
CPP(ObjectDefineSetter, JSParameterCount(2)) \
925
TFJ(ObjectEntries, kJSArgcReceiverSlots + 1, kReceiver, kObject) \
926
CPP(ObjectFreeze, kDontAdaptArgumentsSentinel) \
927
TFJ(ObjectGetOwnPropertyDescriptor, kDontAdaptArgumentsSentinel) \
928
CPP(ObjectGetOwnPropertyDescriptors, kDontAdaptArgumentsSentinel) \
929
TFJ(ObjectGetOwnPropertyNames, kJSArgcReceiverSlots + 1, kReceiver, kObject) \
930
CPP(ObjectGetOwnPropertySymbols, kDontAdaptArgumentsSentinel) \
931
TFJ(ObjectHasOwn, kJSArgcReceiverSlots + 2, kReceiver, kObject, kKey) \
932
TFJ(ObjectIs, kJSArgcReceiverSlots + 2, kReceiver, kLeft, kRight) \
933
CPP(ObjectIsFrozen, kDontAdaptArgumentsSentinel) \
934
CPP(ObjectIsSealed, kDontAdaptArgumentsSentinel) \
935
TFJ(ObjectKeys, kJSArgcReceiverSlots + 1, kReceiver, kObject) \
936
CPP(ObjectLookupGetter, JSParameterCount(1)) \
937
CPP(ObjectLookupSetter, JSParameterCount(1)) \
938
/* ES6 #sec-object.prototype.hasownproperty */
\
939
TFJ(ObjectPrototypeHasOwnProperty, kJSArgcReceiverSlots + 1, kReceiver, \
940
kKey) \
941
TFJ(ObjectPrototypeIsPrototypeOf, kJSArgcReceiverSlots + 1, kReceiver, \
942
kValue) \
943
CPP(ObjectPrototypePropertyIsEnumerable, kDontAdaptArgumentsSentinel) \
944
CPP(ObjectPrototypeGetProto, JSParameterCount(0)) \
945
CPP(ObjectPrototypeSetProto, JSParameterCount(1)) \
946
CPP(ObjectSeal, kDontAdaptArgumentsSentinel) \
947
TFS(ObjectToString, NeedsContext::kYes, kReceiver) \
948
TFJ(ObjectValues, kJSArgcReceiverSlots + 1, kReceiver, kObject) \
949
\
950
/* instanceof */
\
951
TFC(OrdinaryHasInstance, Compare) \
952
TFC(InstanceOf, Compare) \
953
TFC(InstanceOf_WithFeedback, Compare_WithFeedback) \
954
TFC(InstanceOf_Baseline, Compare_Baseline) \
955
\
956
/* for-in */
\
957
TFS(ForInEnumerate, NeedsContext::kYes, kReceiver) \
958
TFC(ForInPrepare, ForInPrepare) \
959
TFS(ForInFilter, NeedsContext::kYes, kKey, kObject) \
960
\
961
/* Reflect */
\
962
ASM(ReflectApply, JSTrampoline) \
963
ASM(ReflectConstruct, JSTrampoline) \
964
CPP(ReflectDefineProperty, JSParameterCount(3)) \
965
CPP(ReflectOwnKeys, JSParameterCount(1)) \
966
CPP(ReflectSet, kDontAdaptArgumentsSentinel) \
967
\
968
/* RegExp */
\
969
CPP(RegExpCapture1Getter, JSParameterCount(0)) \
970
CPP(RegExpCapture2Getter, JSParameterCount(0)) \
971
CPP(RegExpCapture3Getter, JSParameterCount(0)) \
972
CPP(RegExpCapture4Getter, JSParameterCount(0)) \
973
CPP(RegExpCapture5Getter, JSParameterCount(0)) \
974
CPP(RegExpCapture6Getter, JSParameterCount(0)) \
975
CPP(RegExpCapture7Getter, JSParameterCount(0)) \
976
CPP(RegExpCapture8Getter, JSParameterCount(0)) \
977
CPP(RegExpCapture9Getter, JSParameterCount(0)) \
978
/* ES #sec-regexp-pattern-flags */
\
979
TFJ(RegExpConstructor, kJSArgcReceiverSlots + 2, kReceiver, kPattern, \
980
kFlags) \
981
CPP(RegExpInputGetter, JSParameterCount(0)) \
982
CPP(RegExpInputSetter, JSParameterCount(1)) \
983
CPP(RegExpLastMatchGetter, JSParameterCount(0)) \
984
CPP(RegExpLastParenGetter, JSParameterCount(0)) \
985
CPP(RegExpLeftContextGetter, JSParameterCount(0)) \
986
/* ES #sec-regexp.prototype.compile */
\
987
TFJ(RegExpPrototypeCompile, kJSArgcReceiverSlots + 2, kReceiver, kPattern, \
988
kFlags) \
989
CPP(RegExpPrototypeToString, kDontAdaptArgumentsSentinel) \
990
CPP(RegExpRightContextGetter, JSParameterCount(0)) \
991
/* ES #sec-regexp.escape */
\
992
CPP(RegExpEscape, JSParameterCount(1)) \
993
\
994
/* RegExp helpers */
\
995
TFS(RegExpExecAtom, NeedsContext::kYes, kRegExp, kString, kLastIndex, \
996
kMatchInfo) \
997
ASM(RegExpInterpreterTrampoline, RegExpTrampoline) \
998
ASM(RegExpExperimentalTrampoline, RegExpTrampoline) \
999
\
1000
/* Set */
\
1001
TFS(FindOrderedHashSetEntry, NeedsContext::kYes, kTable, kKey) \
1002
TFJ(SetConstructor, kDontAdaptArgumentsSentinel) \
1003
TFJ(SetPrototypeHas, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1004
TFJ(SetPrototypeAdd, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1005
TFJ(SetPrototypeDelete, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1006
CPP(SetPrototypeClear, JSParameterCount(0)) \
1007
/* ES #sec-set.prototype.entries */
\
1008
TFJ(SetPrototypeEntries, kJSArgcReceiverSlots, kReceiver) \
1009
/* ES #sec-get-set.prototype.size */
\
1010
TFJ(SetPrototypeGetSize, kJSArgcReceiverSlots, kReceiver) \
1011
/* ES #sec-set.prototype.foreach */
\
1012
TFJ(SetPrototypeForEach, kDontAdaptArgumentsSentinel) \
1013
/* ES #sec-set.prototype.values */
\
1014
TFJ(SetPrototypeValues, kJSArgcReceiverSlots, kReceiver) \
1015
/* ES #sec-%setiteratorprototype%.next */
\
1016
TFJ(SetIteratorPrototypeNext, kJSArgcReceiverSlots, kReceiver) \
1017
TFS(SetOrSetIteratorToList, NeedsContext::kYes, kSource) \
1018
\
1019
/* ShadowRealm */
\
1020
CPP(ShadowRealmConstructor, kDontAdaptArgumentsSentinel) \
1021
TFS(ShadowRealmGetWrappedValue, NeedsContext::kYes, kCreationContext, \
1022
kTargetContext, kValue) \
1023
CPP(ShadowRealmPrototypeEvaluate, JSParameterCount(1)) \
1024
TFJ(ShadowRealmPrototypeImportValue, kJSArgcReceiverSlots + 2, kReceiver, \
1025
kSpecifier, kExportName) \
1026
TFJ(ShadowRealmImportValueFulfilled, kJSArgcReceiverSlots + 1, kReceiver, \
1027
kExports) \
1028
TFJ(ShadowRealmImportValueRejected, kJSArgcReceiverSlots + 1, kReceiver, \
1029
kException) \
1030
\
1031
/* SharedArrayBuffer */
\
1032
CPP(SharedArrayBufferPrototypeGetByteLength, kDontAdaptArgumentsSentinel) \
1033
CPP(SharedArrayBufferPrototypeSlice, JSParameterCount(2)) \
1034
/* https://tc39.es/proposal-resizablearraybuffer/ */
\
1035
CPP(SharedArrayBufferPrototypeGrow, JSParameterCount(1)) \
1036
\
1037
TFJ(AtomicsLoad, kJSArgcReceiverSlots + 2, kReceiver, kArrayOrSharedObject, \
1038
kIndexOrFieldName) \
1039
TFJ(AtomicsStore, kJSArgcReceiverSlots + 3, kReceiver, kArrayOrSharedObject, \
1040
kIndexOrFieldName, kValue) \
1041
TFJ(AtomicsExchange, kJSArgcReceiverSlots + 3, kReceiver, \
1042
kArrayOrSharedObject, kIndexOrFieldName, kValue) \
1043
TFJ(AtomicsCompareExchange, kJSArgcReceiverSlots + 4, kReceiver, \
1044
kArrayOrSharedObject, kIndexOrFieldName, kOldValue, kNewValue) \
1045
TFJ(AtomicsAdd, kJSArgcReceiverSlots + 3, kReceiver, kArray, kIndex, kValue) \
1046
TFJ(AtomicsSub, kJSArgcReceiverSlots + 3, kReceiver, kArray, kIndex, kValue) \
1047
TFJ(AtomicsAnd, kJSArgcReceiverSlots + 3, kReceiver, kArray, kIndex, kValue) \
1048
TFJ(AtomicsOr, kJSArgcReceiverSlots + 3, kReceiver, kArray, kIndex, kValue) \
1049
TFJ(AtomicsXor, kJSArgcReceiverSlots + 3, kReceiver, kArray, kIndex, kValue) \
1050
CPP(AtomicsNotify, JSParameterCount(3)) \
1051
CPP(AtomicsIsLockFree, JSParameterCount(1)) \
1052
CPP(AtomicsWait, JSParameterCount(4)) \
1053
CPP(AtomicsWaitAsync, JSParameterCount(4)) \
1054
CPP(AtomicsPause, kDontAdaptArgumentsSentinel) \
1055
\
1056
/* String */
\
1057
/* ES #sec-string.fromcodepoint */
\
1058
CPP(StringFromCodePoint, kDontAdaptArgumentsSentinel) \
1059
/* ES6 #sec-string.fromcharcode */
\
1060
IF_TSA(TSJ, TFJ, StringFromCharCode, kDontAdaptArgumentsSentinel) \
1061
/* ES6 #sec-string.prototype.lastindexof */
\
1062
CPP(StringPrototypeLastIndexOf, kDontAdaptArgumentsSentinel) \
1063
/* ES #sec-string.prototype.matchAll */
\
1064
TFJ(StringPrototypeMatchAll, kJSArgcReceiverSlots + 1, kReceiver, kRegexp) \
1065
/* ES6 #sec-string.prototype.replace */
\
1066
TFJ(StringPrototypeReplace, kJSArgcReceiverSlots + 2, kReceiver, kSearch, \
1067
kReplace) \
1068
/* ES6 #sec-string.prototype.split */
\
1069
TFJ(StringPrototypeSplit, kDontAdaptArgumentsSentinel) \
1070
/* ES6 #sec-string.raw */
\
1071
CPP(StringRaw, kDontAdaptArgumentsSentinel) \
1072
\
1073
/* Symbol */
\
1074
/* ES #sec-symbol-constructor */
\
1075
CPP(SymbolConstructor, kDontAdaptArgumentsSentinel) \
1076
/* ES6 #sec-symbol.for */
\
1077
CPP(SymbolFor, kDontAdaptArgumentsSentinel) \
1078
/* ES6 #sec-symbol.keyfor */
\
1079
CPP(SymbolKeyFor, kDontAdaptArgumentsSentinel) \
1080
\
1081
/* TypedArray */
\
1082
/* ES #sec-typedarray-constructors */
\
1083
TFJ(TypedArrayBaseConstructor, kJSArgcReceiverSlots, kReceiver) \
1084
TFJ(TypedArrayConstructor, kDontAdaptArgumentsSentinel) \
1085
CPP(TypedArrayPrototypeBuffer, kDontAdaptArgumentsSentinel) \
1086
/* ES6 #sec-get-%typedarray%.prototype.bytelength */
\
1087
TFJ(TypedArrayPrototypeByteLength, kJSArgcReceiverSlots, kReceiver) \
1088
/* ES6 #sec-get-%typedarray%.prototype.byteoffset */
\
1089
TFJ(TypedArrayPrototypeByteOffset, kJSArgcReceiverSlots, kReceiver) \
1090
/* ES6 #sec-get-%typedarray%.prototype.length */
\
1091
TFJ(TypedArrayPrototypeLength, kJSArgcReceiverSlots, kReceiver) \
1092
/* ES6 #sec-%typedarray%.prototype.copywithin */
\
1093
CPP(TypedArrayPrototypeCopyWithin, kDontAdaptArgumentsSentinel) \
1094
/* ES6 #sec-%typedarray%.prototype.fill */
\
1095
CPP(TypedArrayPrototypeFill, kDontAdaptArgumentsSentinel) \
1096
/* ES7 #sec-%typedarray%.prototype.includes */
\
1097
CPP(TypedArrayPrototypeIncludes, kDontAdaptArgumentsSentinel) \
1098
/* ES6 #sec-%typedarray%.prototype.indexof */
\
1099
CPP(TypedArrayPrototypeIndexOf, kDontAdaptArgumentsSentinel) \
1100
/* ES6 #sec-%typedarray%.prototype.lastindexof */
\
1101
CPP(TypedArrayPrototypeLastIndexOf, kDontAdaptArgumentsSentinel) \
1102
/* ES6 #sec-%typedarray%.prototype.reverse */
\
1103
CPP(TypedArrayPrototypeReverse, kDontAdaptArgumentsSentinel) \
1104
/* ES6 #sec-get-%typedarray%.prototype-@@tostringtag */
\
1105
TFJ(TypedArrayPrototypeToStringTag, kJSArgcReceiverSlots, kReceiver) \
1106
/* ES6 %TypedArray%.prototype.map */
\
1107
TFJ(TypedArrayPrototypeMap, kDontAdaptArgumentsSentinel) \
1108
/* proposal-arraybuffer-base64 #sec-uint8array.frombase64 */
\
1109
CPP(Uint8ArrayFromBase64, kDontAdaptArgumentsSentinel) \
1110
/* proposal-arraybuffer-base64 #sec-uint8array.fromhex */
\
1111
CPP(Uint8ArrayFromHex, kDontAdaptArgumentsSentinel) \
1112
/* proposal-arraybuffer-base64 #sec-uint8array.prototype.tobase64 */
\
1113
CPP(Uint8ArrayPrototypeToBase64, kDontAdaptArgumentsSentinel) \
1114
/* proposal-arraybuffer-base64 #sec-uint8array.prototype.tohex */
\
1115
CPP(Uint8ArrayPrototypeToHex, kDontAdaptArgumentsSentinel) \
1116
\
1117
/* Wasm */
\
1118
IF_WASM_DRUMBRAKE(ASM, WasmInterpreterEntry, WasmDummy) \
1119
IF_WASM_DRUMBRAKE(ASM, GenericJSToWasmInterpreterWrapper, WasmDummy) \
1120
IF_WASM_DRUMBRAKE(ASM, WasmInterpreterCWasmEntry, WasmDummy) \
1121
IF_WASM_DRUMBRAKE(ASM, GenericWasmToJSInterpreterWrapper, WasmDummy) \
1122
\
1123
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem8S_s, WasmDummy) \
1124
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem8U_s, WasmDummy) \
1125
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem16S_s, WasmDummy) \
1126
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem16U_s, WasmDummy) \
1127
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem8S_s, WasmDummy) \
1128
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem8U_s, WasmDummy) \
1129
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem16S_s, WasmDummy) \
1130
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem16U_s, WasmDummy) \
1131
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem32S_s, WasmDummy) \
1132
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem32U_s, WasmDummy) \
1133
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem_s, WasmDummy) \
1134
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem_s, WasmDummy) \
1135
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_F32LoadMem_s, WasmDummy) \
1136
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_F64LoadMem_s, WasmDummy) \
1137
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem8S_s, WasmDummy) \
1138
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem8U_s, WasmDummy) \
1139
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem16S_s, WasmDummy) \
1140
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem16U_s, WasmDummy) \
1141
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem8S_s, WasmDummy) \
1142
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem8U_s, WasmDummy) \
1143
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem16S_s, WasmDummy) \
1144
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem16U_s, WasmDummy) \
1145
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem32S_s, WasmDummy) \
1146
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem32U_s, WasmDummy) \
1147
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem_s, WasmDummy) \
1148
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem_s, WasmDummy) \
1149
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F32LoadMem_s, WasmDummy) \
1150
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F64LoadMem_s, WasmDummy) \
1151
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem8S_s, WasmDummy) \
1152
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem8U_s, WasmDummy) \
1153
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem16S_s, WasmDummy) \
1154
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem16U_s, WasmDummy) \
1155
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem8S_s, WasmDummy) \
1156
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem8U_s, WasmDummy) \
1157
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem16S_s, WasmDummy) \
1158
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem16U_s, WasmDummy) \
1159
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem32S_s, WasmDummy) \
1160
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem32U_s, WasmDummy) \
1161
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem_s, WasmDummy) \
1162
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem_s, WasmDummy) \
1163
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_F32LoadMem_s, WasmDummy) \
1164
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_F64LoadMem_s, WasmDummy) \
1165
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8S_s, WasmDummy) \
1166
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8U_s, WasmDummy) \
1167
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16S_s, WasmDummy) \
1168
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16U_s, WasmDummy) \
1169
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8S_s, WasmDummy) \
1170
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8U_s, WasmDummy) \
1171
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16S_s, WasmDummy) \
1172
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16U_s, WasmDummy) \
1173
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32S_s, WasmDummy) \
1174
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32U_s, WasmDummy) \
1175
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem_s, WasmDummy) \
1176
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem_s, WasmDummy) \
1177
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32LoadMem_s, WasmDummy) \
1178
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64LoadMem_s, WasmDummy) \
1179
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8S_LocalSet_s, WasmDummy) \
1180
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8U_LocalSet_s, WasmDummy) \
1181
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16S_LocalSet_s, \
1182
WasmDummy) \
1183
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16U_LocalSet_s, \
1184
WasmDummy) \
1185
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8S_LocalSet_s, WasmDummy) \
1186
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8U_LocalSet_s, WasmDummy) \
1187
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16S_LocalSet_s, \
1188
WasmDummy) \
1189
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16U_LocalSet_s, \
1190
WasmDummy) \
1191
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32S_LocalSet_s, \
1192
WasmDummy) \
1193
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32U_LocalSet_s, \
1194
WasmDummy) \
1195
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem_LocalSet_s, WasmDummy) \
1196
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem_LocalSet_s, WasmDummy) \
1197
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32LoadMem_LocalSet_s, WasmDummy) \
1198
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64LoadMem_LocalSet_s, WasmDummy) \
1199
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32StoreMem8_s, WasmDummy) \
1200
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32StoreMem16_s, WasmDummy) \
1201
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem8_s, WasmDummy) \
1202
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem16_s, WasmDummy) \
1203
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem32_s, WasmDummy) \
1204
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32StoreMem_s, WasmDummy) \
1205
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem_s, WasmDummy) \
1206
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F32StoreMem_s, WasmDummy) \
1207
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F64StoreMem_s, WasmDummy) \
1208
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32StoreMem8_s, WasmDummy) \
1209
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32StoreMem16_s, WasmDummy) \
1210
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem8_s, WasmDummy) \
1211
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem16_s, WasmDummy) \
1212
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem32_s, WasmDummy) \
1213
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32StoreMem_s, WasmDummy) \
1214
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem_s, WasmDummy) \
1215
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32StoreMem_s, WasmDummy) \
1216
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64StoreMem_s, WasmDummy) \
1217
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadStoreMem_s, WasmDummy) \
1218
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadStoreMem_s, WasmDummy) \
1219
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F32LoadStoreMem_s, WasmDummy) \
1220
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F64LoadStoreMem_s, WasmDummy) \
1221
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadStoreMem_s, WasmDummy) \
1222
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadStoreMem_s, WasmDummy) \
1223
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32LoadStoreMem_s, WasmDummy) \
1224
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64LoadStoreMem_s, WasmDummy) \
1225
\
1226
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem8S_l, WasmDummy) \
1227
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem8U_l, WasmDummy) \
1228
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem16S_l, WasmDummy) \
1229
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem16U_l, WasmDummy) \
1230
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem8S_l, WasmDummy) \
1231
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem8U_l, WasmDummy) \
1232
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem16S_l, WasmDummy) \
1233
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem16U_l, WasmDummy) \
1234
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem32S_l, WasmDummy) \
1235
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem32U_l, WasmDummy) \
1236
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I32LoadMem_l, WasmDummy) \
1237
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_I64LoadMem_l, WasmDummy) \
1238
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_F32LoadMem_l, WasmDummy) \
1239
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2r_F64LoadMem_l, WasmDummy) \
1240
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem8S_l, WasmDummy) \
1241
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem8U_l, WasmDummy) \
1242
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem16S_l, WasmDummy) \
1243
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem16U_l, WasmDummy) \
1244
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem8S_l, WasmDummy) \
1245
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem8U_l, WasmDummy) \
1246
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem16S_l, WasmDummy) \
1247
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem16U_l, WasmDummy) \
1248
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem32S_l, WasmDummy) \
1249
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem32U_l, WasmDummy) \
1250
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadMem_l, WasmDummy) \
1251
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadMem_l, WasmDummy) \
1252
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F32LoadMem_l, WasmDummy) \
1253
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F64LoadMem_l, WasmDummy) \
1254
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem8S_l, WasmDummy) \
1255
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem8U_l, WasmDummy) \
1256
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem16S_l, WasmDummy) \
1257
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem16U_l, WasmDummy) \
1258
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem8S_l, WasmDummy) \
1259
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem8U_l, WasmDummy) \
1260
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem16S_l, WasmDummy) \
1261
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem16U_l, WasmDummy) \
1262
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem32S_l, WasmDummy) \
1263
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem32U_l, WasmDummy) \
1264
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I32LoadMem_l, WasmDummy) \
1265
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_I64LoadMem_l, WasmDummy) \
1266
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_F32LoadMem_l, WasmDummy) \
1267
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2r_F64LoadMem_l, WasmDummy) \
1268
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8S_l, WasmDummy) \
1269
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8U_l, WasmDummy) \
1270
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16S_l, WasmDummy) \
1271
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16U_l, WasmDummy) \
1272
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8S_l, WasmDummy) \
1273
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8U_l, WasmDummy) \
1274
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16S_l, WasmDummy) \
1275
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16U_l, WasmDummy) \
1276
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32S_l, WasmDummy) \
1277
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32U_l, WasmDummy) \
1278
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem_l, WasmDummy) \
1279
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem_l, WasmDummy) \
1280
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32LoadMem_l, WasmDummy) \
1281
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64LoadMem_l, WasmDummy) \
1282
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8S_LocalSet_l, WasmDummy) \
1283
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem8U_LocalSet_l, WasmDummy) \
1284
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16S_LocalSet_l, \
1285
WasmDummy) \
1286
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem16U_LocalSet_l, \
1287
WasmDummy) \
1288
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8S_LocalSet_l, WasmDummy) \
1289
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem8U_LocalSet_l, WasmDummy) \
1290
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16S_LocalSet_l, \
1291
WasmDummy) \
1292
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem16U_LocalSet_l, \
1293
WasmDummy) \
1294
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32S_LocalSet_l, \
1295
WasmDummy) \
1296
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem32U_LocalSet_l, \
1297
WasmDummy) \
1298
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadMem_LocalSet_l, WasmDummy) \
1299
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadMem_LocalSet_l, WasmDummy) \
1300
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32LoadMem_LocalSet_l, WasmDummy) \
1301
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64LoadMem_LocalSet_l, WasmDummy) \
1302
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32StoreMem8_l, WasmDummy) \
1303
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32StoreMem16_l, WasmDummy) \
1304
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem8_l, WasmDummy) \
1305
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem16_l, WasmDummy) \
1306
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem32_l, WasmDummy) \
1307
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32StoreMem_l, WasmDummy) \
1308
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64StoreMem_l, WasmDummy) \
1309
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F32StoreMem_l, WasmDummy) \
1310
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F64StoreMem_l, WasmDummy) \
1311
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32StoreMem8_l, WasmDummy) \
1312
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32StoreMem16_l, WasmDummy) \
1313
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem8_l, WasmDummy) \
1314
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem16_l, WasmDummy) \
1315
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem32_l, WasmDummy) \
1316
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32StoreMem_l, WasmDummy) \
1317
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64StoreMem_l, WasmDummy) \
1318
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32StoreMem_l, WasmDummy) \
1319
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64StoreMem_l, WasmDummy) \
1320
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I32LoadStoreMem_l, WasmDummy) \
1321
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_I64LoadStoreMem_l, WasmDummy) \
1322
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F32LoadStoreMem_l, WasmDummy) \
1323
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, r2s_F64LoadStoreMem_l, WasmDummy) \
1324
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I32LoadStoreMem_l, WasmDummy) \
1325
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_I64LoadStoreMem_l, WasmDummy) \
1326
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F32LoadStoreMem_l, WasmDummy) \
1327
IF_WASM_DRUMBRAKE_INSTR_HANDLER(ASM, s2s_F64LoadStoreMem_l, WasmDummy) \
1328
\
1329
IF_WASM(ASM, JSToWasmWrapperAsm, WasmJSToWasmWrapper) \
1330
IF_WASM(ASM, WasmReturnPromiseOnSuspendAsm, WasmJSToWasmWrapper) \
1331
IF_WASM(ASM, JSToWasmStressSwitchStacksAsm, WasmJSToWasmWrapper) \
1332
IF_WASM(ASM, WasmToJsWrapperAsm, WasmDummy) \
1333
IF_WASM(TFC, WasmToJsWrapperCSA, WasmToJSWrapper) \
1334
IF_WASM(TFC, WasmToJsWrapperInvalidSig, WasmToJSWrapper) \
1335
IF_WASM(ASM, WasmSuspend, WasmSuspend) \
1336
IF_WASM(ASM, WasmResume, JSTrampoline) \
1337
IF_WASM(ASM, WasmReject, JSTrampoline) \
1338
IF_WASM(ASM, WasmTrapHandlerLandingPad, WasmDummy) \
1339
IF_WASM(ASM, WasmCompileLazy, WasmDummy) \
1340
IF_WASM(ASM, WasmLiftoffFrameSetup, WasmDummy) \
1341
IF_WASM(ASM, WasmDebugBreak, WasmDummy) \
1342
IF_WASM(ASM, WasmOnStackReplace, WasmDummy) \
1343
IF_WASM(ASM, WasmHandleStackOverflow, WasmHandleStackOverflow) \
1344
IF_WASM(TFC, WasmFloat32ToNumber, WasmFloat32ToNumber) \
1345
IF_WASM(TFC, WasmFloat64ToNumber, WasmFloat64ToTagged) \
1346
IF_WASM(TFC, WasmFloat64ToString, WasmFloat64ToTagged) \
1347
IF_WASM(TFC, JSToWasmLazyDeoptContinuation, SingleParameterOnStack) \
1348
\
1349
/* WeakMap */
\
1350
TFJ(WeakMapConstructor, kDontAdaptArgumentsSentinel) \
1351
TFS(WeakMapLookupHashIndex, NeedsContext::kYes, kTable, kKey) \
1352
TFJ(WeakMapGet, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1353
TFJ(WeakMapPrototypeHas, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1354
TFJ(WeakMapPrototypeSet, kJSArgcReceiverSlots + 2, kReceiver, kKey, kValue) \
1355
TFJ(WeakMapPrototypeDelete, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1356
\
1357
/* WeakSet */
\
1358
TFJ(WeakSetConstructor, kDontAdaptArgumentsSentinel) \
1359
TFJ(WeakSetPrototypeHas, kJSArgcReceiverSlots + 1, kReceiver, kKey) \
1360
TFJ(WeakSetPrototypeAdd, kJSArgcReceiverSlots + 1, kReceiver, kValue) \
1361
TFJ(WeakSetPrototypeDelete, kJSArgcReceiverSlots + 1, kReceiver, kValue) \
1362
\
1363
/* WeakSet / WeakMap Helpers */
\
1364
TFS(WeakCollectionDelete, NeedsContext::kYes, kCollection, kKey) \
1365
TFS(WeakCollectionSet, NeedsContext::kYes, kCollection, kKey, kValue) \
1366
\
1367
/* JS Structs and friends */
\
1368
CPP(SharedSpaceJSObjectHasInstance, kDontAdaptArgumentsSentinel) \
1369
CPP(SharedStructTypeConstructor, kDontAdaptArgumentsSentinel) \
1370
CPP(SharedStructTypeIsSharedStruct, JSParameterCount(1)) \
1371
CPP(SharedStructConstructor, JSParameterCount(0)) \
1372
CPP(SharedArrayConstructor, JSParameterCount(0)) \
1373
CPP(SharedArrayIsSharedArray, JSParameterCount(1)) \
1374
CPP(AtomicsMutexConstructor, JSParameterCount(0)) \
1375
CPP(AtomicsMutexIsMutex, JSParameterCount(1)) \
1376
CPP(AtomicsMutexLock, JSParameterCount(2)) \
1377
CPP(AtomicsMutexLockAsync, JSParameterCount(2)) \
1378
CPP(AtomicsMutexLockWithTimeout, JSParameterCount(3)) \
1379
CPP(AtomicsMutexTryLock, JSParameterCount(2)) \
1380
CPP(AtomicsMutexAsyncUnlockResolveHandler, JSParameterCount(1)) \
1381
CPP(AtomicsMutexAsyncUnlockRejectHandler, JSParameterCount(1)) \
1382
CPP(AtomicsConditionConstructor, JSParameterCount(0)) \
1383
CPP(AtomicsConditionAcquireLock, JSParameterCount(0)) \
1384
CPP(AtomicsConditionIsCondition, JSParameterCount(1)) \
1385
CPP(AtomicsConditionWait, kDontAdaptArgumentsSentinel) \
1386
CPP(AtomicsConditionNotify, kDontAdaptArgumentsSentinel) \
1387
CPP(AtomicsConditionWaitAsync, kDontAdaptArgumentsSentinel) \
1388
\
1389
/* AsyncGenerator */
\
1390
\
1391
TFS(AsyncGeneratorResolve, NeedsContext::kYes, kGenerator, kValue, kDone) \
1392
TFS(AsyncGeneratorReject, NeedsContext::kYes, kGenerator, kValue) \
1393
TFS(AsyncGeneratorYieldWithAwait, NeedsContext::kYes, kGenerator, kValue) \
1394
TFS(AsyncGeneratorReturn, NeedsContext::kYes, kGenerator, kValue) \
1395
TFS(AsyncGeneratorResumeNext, NeedsContext::kYes, kGenerator) \
1396
\
1397
/* AsyncGeneratorFunction( p1, p2, ... pn, body ) */
\
1398
/* proposal-async-iteration/#sec-asyncgeneratorfunction-constructor */
\
1399
CPP(AsyncGeneratorFunctionConstructor, kDontAdaptArgumentsSentinel) \
1400
/* AsyncGenerator.prototype.next ( value ) */
\
1401
/* proposal-async-iteration/#sec-asyncgenerator-prototype-next */
\
1402
TFJ(AsyncGeneratorPrototypeNext, kDontAdaptArgumentsSentinel) \
1403
/* AsyncGenerator.prototype.return ( value ) */
\
1404
/* proposal-async-iteration/#sec-asyncgenerator-prototype-return */
\
1405
TFJ(AsyncGeneratorPrototypeReturn, kDontAdaptArgumentsSentinel) \
1406
/* AsyncGenerator.prototype.throw ( exception ) */
\
1407
/* proposal-async-iteration/#sec-asyncgenerator-prototype-throw */
\
1408
TFJ(AsyncGeneratorPrototypeThrow, kDontAdaptArgumentsSentinel) \
1409
\
1410
/* Await (proposal-async-iteration/#await), with resume behaviour */
\
1411
/* specific to Async Generators. Internal / Not exposed to JS code. */
\
1412
TFS(AsyncGeneratorAwait, NeedsContext::kYes, kAsyncGeneratorObject, kValue) \
1413
TFJ(AsyncGeneratorAwaitResolveClosure, kJSArgcReceiverSlots + 1, kReceiver, \
1414
kValue) \
1415
TFJ(AsyncGeneratorAwaitRejectClosure, kJSArgcReceiverSlots + 1, kReceiver, \
1416
kValue) \
1417
TFJ(AsyncGeneratorYieldWithAwaitResolveClosure, kJSArgcReceiverSlots + 1, \
1418
kReceiver, kValue) \
1419
TFJ(AsyncGeneratorReturnClosedResolveClosure, kJSArgcReceiverSlots + 1, \
1420
kReceiver, kValue) \
1421
TFJ(AsyncGeneratorReturnClosedRejectClosure, kJSArgcReceiverSlots + 1, \
1422
kReceiver, kValue) \
1423
TFJ(AsyncGeneratorReturnResolveClosure, kJSArgcReceiverSlots + 1, kReceiver, \
1424
kValue) \
1425
\
1426
/* Async-from-Sync Iterator */
\
1427
\
1428
/* %AsyncFromSyncIteratorPrototype% */
\
1429
/* See tc39.github.io/proposal-async-iteration/ */
\
1430
/* #sec-%asyncfromsynciteratorprototype%-object) */
\
1431
TFJ(AsyncFromSyncIteratorPrototypeNext, kDontAdaptArgumentsSentinel) \
1432
/* #sec-%asyncfromsynciteratorprototype%.throw */
\
1433
TFJ(AsyncFromSyncIteratorPrototypeThrow, kDontAdaptArgumentsSentinel) \
1434
/* #sec-%asyncfromsynciteratorprototype%.return */
\
1435
TFJ(AsyncFromSyncIteratorPrototypeReturn, kDontAdaptArgumentsSentinel) \
1436
/* #sec-asyncfromsynciteratorcontinuation */
\
1437
TFJ(AsyncFromSyncIteratorCloseSyncAndRethrow, kJSArgcReceiverSlots + 1, \
1438
kReceiver, kError) \
1439
/* #sec-async-iterator-value-unwrap-functions */
\
1440
TFJ(AsyncIteratorValueUnwrap, kJSArgcReceiverSlots + 1, kReceiver, kValue) \
1441
\
1442
/* CEntry */
\
1443
ASM(CEntry_Return1_ArgvInRegister_NoBuiltinExit, InterpreterCEntry1) \
1444
ASM(CEntry_Return1_ArgvOnStack_BuiltinExit, CEntry1ArgvOnStack) \
1445
ASM(CEntry_Return1_ArgvOnStack_NoBuiltinExit, CEntryDummy) \
1446
ASM(CEntry_Return2_ArgvInRegister_NoBuiltinExit, InterpreterCEntry2) \
1447
ASM(CEntry_Return2_ArgvOnStack_BuiltinExit, CEntryDummy) \
1448
ASM(CEntry_Return2_ArgvOnStack_NoBuiltinExit, CEntryDummy) \
1449
ASM(WasmCEntry, CEntryDummy) \
1450
ASM(DirectCEntry, CEntryDummy) \
1451
\
1452
/* String helpers */
\
1453
TFS(StringAdd_CheckNone, NeedsContext::kYes, kLeft, kRight) \
1454
TFS(SubString, NeedsContext::kYes, kString, kFrom, kTo) \
1455
\
1456
/* Miscellaneous */
\
1457
ASM(DoubleToI, Void) \
1458
TFC(GetProperty, GetProperty) \
1459
TFS(GetPropertyWithReceiver, NeedsContext::kYes, kObject, kKey, kReceiver, \
1460
kOnNonExistent) \
1461
TFS(SetProperty, NeedsContext::kYes, kReceiver, kKey, kValue) \
1462
TFS(CreateDataProperty, NeedsContext::kYes, kReceiver, kKey, kValue) \
1463
TFS(GetOwnPropertyDescriptor, NeedsContext::kYes, kReceiver, kKey) \
1464
ASM(MemCopyUint8Uint8, CCall) \
1465
ASM(MemMove, CCall) \
1466
TFC(FindNonDefaultConstructorOrConstruct, \
1467
FindNonDefaultConstructorOrConstruct) \
1468
TFS(OrdinaryGetOwnPropertyDescriptor, NeedsContext::kYes, kReceiver, kKey) \
1469
IF_SHADOW_STACK(ASM, AdaptShadowStackForDeopt, Void) \
1470
\
1471
/* Trace */
\
1472
CPP(IsTraceCategoryEnabled, JSParameterCount(1)) \
1473
CPP(Trace, JSParameterCount(5)) \
1474
\
1475
/* Weak refs */
\
1476
CPP(FinalizationRegistryUnregister, kDontAdaptArgumentsSentinel) \
1477
\
1478
/* Async modules */
\
1479
TFJ(AsyncModuleEvaluate, kDontAdaptArgumentsSentinel) \
1480
\
1481
/* CallAsyncModule* are spec anonymyous functions */
\
1482
CPP(CallAsyncModuleFulfilled, JSParameterCount(0)) \
1483
CPP(CallAsyncModuleRejected, JSParameterCount(0)) \
1484
\
1485
/* Temporal */
\
1486
/* Temporal #sec-temporal.now.timezone */
\
1487
CPP(TemporalNowTimeZone, kDontAdaptArgumentsSentinel) \
1488
/* Temporal #sec-temporal.now.instant */
\
1489
CPP(TemporalNowInstant, kDontAdaptArgumentsSentinel) \
1490
/* Temporal #sec-temporal.now.plaindatetime */
\
1491
CPP(TemporalNowPlainDateTime, kDontAdaptArgumentsSentinel) \
1492
/* Temporal #sec-temporal.now.plaindatetimeiso */
\
1493
CPP(TemporalNowPlainDateTimeISO, kDontAdaptArgumentsSentinel) \
1494
/* Temporal #sec-temporal.now.zoneddatetime */
\
1495
CPP(TemporalNowZonedDateTime, kDontAdaptArgumentsSentinel) \
1496
/* Temporal #sec-temporal.now.zoneddatetimeiso */
\
1497
CPP(TemporalNowZonedDateTimeISO, kDontAdaptArgumentsSentinel) \
1498
/* Temporal #sec-temporal.now.plaindate */
\
1499
CPP(TemporalNowPlainDate, kDontAdaptArgumentsSentinel) \
1500
/* Temporal #sec-temporal.now.plaindateiso */
\
1501
CPP(TemporalNowPlainDateISO, kDontAdaptArgumentsSentinel) \
1502
/* There are no Temporal.now.plainTime */
\
1503
/* See https://github.com/tc39/proposal-temporal/issues/1540 */
\
1504
/* Temporal #sec-temporal.now.plaintimeiso */
\
1505
CPP(TemporalNowPlainTimeISO, kDontAdaptArgumentsSentinel) \
1506
\
1507
/* Temporal.PlaneDate */
\
1508
/* Temporal #sec-temporal.plaindate */
\
1509
CPP(TemporalPlainDateConstructor, kDontAdaptArgumentsSentinel) \
1510
/* Temporal #sec-temporal.plaindate.from */
\
1511
CPP(TemporalPlainDateFrom, kDontAdaptArgumentsSentinel) \
1512
/* Temporal #sec-temporal.plaindate.compare */
\
1513
CPP(TemporalPlainDateCompare, kDontAdaptArgumentsSentinel) \
1514
/* Temporal #sec-get-temporal.plaindate.prototype.calendar */
\
1515
CPP(TemporalPlainDatePrototypeCalendar, JSParameterCount(0)) \
1516
/* Temporal #sec-get-temporal.plaindate.prototype.year */
\
1517
CPP(TemporalPlainDatePrototypeYear, JSParameterCount(0)) \
1518
/* Temporal #sec-get-temporal.plaindate.prototype.month */
\
1519
CPP(TemporalPlainDatePrototypeMonth, JSParameterCount(0)) \
1520
/* Temporal #sec-get-temporal.plaindate.prototype.monthcode */
\
1521
CPP(TemporalPlainDatePrototypeMonthCode, JSParameterCount(0)) \
1522
/* Temporal #sec-get-temporal.plaindate.prototype.day */
\
1523
CPP(TemporalPlainDatePrototypeDay, JSParameterCount(0)) \
1524
/* Temporal #sec-get-temporal.plaindate.prototype.dayofweek */
\
1525
CPP(TemporalPlainDatePrototypeDayOfWeek, JSParameterCount(0)) \
1526
/* Temporal #sec-get-temporal.plaindate.prototype.dayofyear */
\
1527
CPP(TemporalPlainDatePrototypeDayOfYear, JSParameterCount(0)) \
1528
/* Temporal #sec-get-temporal.plaindate.prototype.weekofyear */
\
1529
CPP(TemporalPlainDatePrototypeWeekOfYear, JSParameterCount(0)) \
1530
/* Temporal #sec-get-temporal.plaindate.prototype.daysinweek */
\
1531
CPP(TemporalPlainDatePrototypeDaysInWeek, JSParameterCount(0)) \
1532
/* Temporal #sec-get-temporal.plaindate.prototype.daysinmonth */
\
1533
CPP(TemporalPlainDatePrototypeDaysInMonth, JSParameterCount(0)) \
1534
/* Temporal #sec-get-temporal.plaindate.prototype.daysinyear */
\
1535
CPP(TemporalPlainDatePrototypeDaysInYear, JSParameterCount(0)) \
1536
/* Temporal #sec-get-temporal.plaindate.prototype.monthsinyear */
\
1537
CPP(TemporalPlainDatePrototypeMonthsInYear, JSParameterCount(0)) \
1538
/* Temporal #sec-get-temporal.plaindate.prototype.inleapyear */
\
1539
CPP(TemporalPlainDatePrototypeInLeapYear, JSParameterCount(0)) \
1540
/* Temporal #sec-temporal.plaindate.prototype.toplainyearmonth */
\
1541
CPP(TemporalPlainDatePrototypeToPlainYearMonth, kDontAdaptArgumentsSentinel) \
1542
/* Temporal #sec-temporal.plaindate.prototype.toplainmonthday */
\
1543
CPP(TemporalPlainDatePrototypeToPlainMonthDay, kDontAdaptArgumentsSentinel) \
1544
/* Temporal #sec-temporal.plaindate.prototype.getisofields */
\
1545
CPP(TemporalPlainDatePrototypeGetISOFields, kDontAdaptArgumentsSentinel) \
1546
/* Temporal #sec-temporal.plaindate.prototype.add */
\
1547
CPP(TemporalPlainDatePrototypeAdd, kDontAdaptArgumentsSentinel) \
1548
/* Temporal #sec-temporal.plaindate.prototype.substract */
\
1549
CPP(TemporalPlainDatePrototypeSubtract, kDontAdaptArgumentsSentinel) \
1550
/* Temporal #sec-temporal.plaindate.prototype.with */
\
1551
CPP(TemporalPlainDatePrototypeWith, kDontAdaptArgumentsSentinel) \
1552
/* Temporal #sec-temporal.plaindate.prototype.withcalendar */
\
1553
CPP(TemporalPlainDatePrototypeWithCalendar, kDontAdaptArgumentsSentinel) \
1554
/* Temporal #sec-temporal.plaindate.prototype.until */
\
1555
CPP(TemporalPlainDatePrototypeUntil, kDontAdaptArgumentsSentinel) \
1556
/* Temporal #sec-temporal.plaindate.prototype.since */
\
1557
CPP(TemporalPlainDatePrototypeSince, kDontAdaptArgumentsSentinel) \
1558
/* Temporal #sec-temporal.plaindate.prototype.equals */
\
1559
CPP(TemporalPlainDatePrototypeEquals, kDontAdaptArgumentsSentinel) \
1560
/* Temporal #sec-temporal.plaindate.prototype.toplaindatetime */
\
1561
CPP(TemporalPlainDatePrototypeToPlainDateTime, kDontAdaptArgumentsSentinel) \
1562
/* Temporal #sec-temporal.plaindate.prototype.tozoneddatetime */
\
1563
CPP(TemporalPlainDatePrototypeToZonedDateTime, kDontAdaptArgumentsSentinel) \
1564
/* Temporal #sec-temporal.plaindate.prototype.tostring */
\
1565
CPP(TemporalPlainDatePrototypeToString, kDontAdaptArgumentsSentinel) \
1566
/* Temporal #sec-temporal.plaindate.prototype.tojson */
\
1567
CPP(TemporalPlainDatePrototypeToJSON, kDontAdaptArgumentsSentinel) \
1568
/* Temporal #sec-temporal.plaindate.prototype.tolocalestring */
\
1569
CPP(TemporalPlainDatePrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
1570
/* Temporal #sec-temporal.plaindate.prototype.valueof */
\
1571
CPP(TemporalPlainDatePrototypeValueOf, kDontAdaptArgumentsSentinel) \
1572
\
1573
/* Temporal.PlaneTime */
\
1574
/* Temporal #sec-temporal.plaintime */
\
1575
CPP(TemporalPlainTimeConstructor, kDontAdaptArgumentsSentinel) \
1576
/* Temporal #sec-temporal.plaintime.from */
\
1577
CPP(TemporalPlainTimeFrom, kDontAdaptArgumentsSentinel) \
1578
/* Temporal #sec-temporal.plaintime.compare */
\
1579
CPP(TemporalPlainTimeCompare, kDontAdaptArgumentsSentinel) \
1580
/* Temporal #sec-get-temporal.plaintime.prototype.calendar */
\
1581
CPP(TemporalPlainTimePrototypeCalendar, JSParameterCount(0)) \
1582
/* Temporal #sec-get-temporal.plaintime.prototype.hour */
\
1583
CPP(TemporalPlainTimePrototypeHour, JSParameterCount(0)) \
1584
/* Temporal #sec-get-temporal.plaintime.prototype.minute */
\
1585
CPP(TemporalPlainTimePrototypeMinute, JSParameterCount(0)) \
1586
/* Temporal #sec-get-temporal.plaintime.prototype.second */
\
1587
CPP(TemporalPlainTimePrototypeSecond, JSParameterCount(0)) \
1588
/* Temporal #sec-get-temporal.plaintime.prototype.millisecond */
\
1589
CPP(TemporalPlainTimePrototypeMillisecond, JSParameterCount(0)) \
1590
/* Temporal #sec-get-temporal.plaintime.prototype.microsecond */
\
1591
CPP(TemporalPlainTimePrototypeMicrosecond, JSParameterCount(0)) \
1592
/* Temporal #sec-get-temporal.plaintime.prototype.nanosecond */
\
1593
CPP(TemporalPlainTimePrototypeNanosecond, JSParameterCount(0)) \
1594
/* Temporal #sec-temporal.plaintime.prototype.add */
\
1595
CPP(TemporalPlainTimePrototypeAdd, kDontAdaptArgumentsSentinel) \
1596
/* Temporal #sec-temporal.plaintime.prototype.subtract */
\
1597
CPP(TemporalPlainTimePrototypeSubtract, kDontAdaptArgumentsSentinel) \
1598
/* Temporal #sec-temporal.plaintime.prototype.with */
\
1599
CPP(TemporalPlainTimePrototypeWith, kDontAdaptArgumentsSentinel) \
1600
/* Temporal #sec-temporal.plaintime.prototype.until */
\
1601
CPP(TemporalPlainTimePrototypeUntil, kDontAdaptArgumentsSentinel) \
1602
/* Temporal #sec-temporal.plaintime.prototype.since */
\
1603
CPP(TemporalPlainTimePrototypeSince, kDontAdaptArgumentsSentinel) \
1604
/* Temporal #sec-temporal.plaintime.prototype.round */
\
1605
CPP(TemporalPlainTimePrototypeRound, kDontAdaptArgumentsSentinel) \
1606
/* Temporal #sec-temporal.plaintime.prototype.equals */
\
1607
CPP(TemporalPlainTimePrototypeEquals, kDontAdaptArgumentsSentinel) \
1608
/* Temporal #sec-temporal.plaintime.prototype.toplaindatetime */
\
1609
CPP(TemporalPlainTimePrototypeToPlainDateTime, kDontAdaptArgumentsSentinel) \
1610
/* Temporal #sec-temporal.plaintime.prototype.tozoneddatetime */
\
1611
CPP(TemporalPlainTimePrototypeToZonedDateTime, kDontAdaptArgumentsSentinel) \
1612
/* Temporal #sec-temporal.plaintime.prototype.getisofields */
\
1613
CPP(TemporalPlainTimePrototypeGetISOFields, kDontAdaptArgumentsSentinel) \
1614
/* Temporal #sec-temporal.plaintime.prototype.tostring */
\
1615
CPP(TemporalPlainTimePrototypeToString, kDontAdaptArgumentsSentinel) \
1616
/* Temporal #sec-temporal.plaindtimeprototype.tojson */
\
1617
CPP(TemporalPlainTimePrototypeToJSON, kDontAdaptArgumentsSentinel) \
1618
/* Temporal #sec-temporal.plaintime.prototype.tolocalestring */
\
1619
CPP(TemporalPlainTimePrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
1620
/* Temporal #sec-temporal.plaintime.prototype.valueof */
\
1621
CPP(TemporalPlainTimePrototypeValueOf, kDontAdaptArgumentsSentinel) \
1622
\
1623
/* Temporal.PlaneDateTime */
\
1624
/* Temporal #sec-temporal.plaindatetime */
\
1625
CPP(TemporalPlainDateTimeConstructor, kDontAdaptArgumentsSentinel) \
1626
/* Temporal #sec-temporal.plaindatetime.from */
\
1627
CPP(TemporalPlainDateTimeFrom, kDontAdaptArgumentsSentinel) \
1628
/* Temporal #sec-temporal.plaindatetime.compare */
\
1629
CPP(TemporalPlainDateTimeCompare, kDontAdaptArgumentsSentinel) \
1630
/* Temporal #sec-get-temporal.plaindatetime.prototype.calendar */
\
1631
CPP(TemporalPlainDateTimePrototypeCalendar, JSParameterCount(0)) \
1632
/* Temporal #sec-get-temporal.plaindatetime.prototype.year */
\
1633
CPP(TemporalPlainDateTimePrototypeYear, JSParameterCount(0)) \
1634
/* Temporal #sec-get-temporal.plaindatetime.prototype.month */
\
1635
CPP(TemporalPlainDateTimePrototypeMonth, JSParameterCount(0)) \
1636
/* Temporal #sec-get-temporal.plaindatetime.prototype.monthcode */
\
1637
CPP(TemporalPlainDateTimePrototypeMonthCode, JSParameterCount(0)) \
1638
/* Temporal #sec-get-temporal.plaindatetime.prototype.day */
\
1639
CPP(TemporalPlainDateTimePrototypeDay, JSParameterCount(0)) \
1640
/* Temporal #sec-get-temporal.plaindatetime.prototype.hour */
\
1641
CPP(TemporalPlainDateTimePrototypeHour, JSParameterCount(0)) \
1642
/* Temporal #sec-get-temporal.plaindatetime.prototype.minute */
\
1643
CPP(TemporalPlainDateTimePrototypeMinute, JSParameterCount(0)) \
1644
/* Temporal #sec-get-temporal.plaindatetime.prototype.second */
\
1645
CPP(TemporalPlainDateTimePrototypeSecond, JSParameterCount(0)) \
1646
/* Temporal #sec-get-temporal.plaindatetime.prototype.millisecond */
\
1647
CPP(TemporalPlainDateTimePrototypeMillisecond, JSParameterCount(0)) \
1648
/* Temporal #sec-get-temporal.plaindatetime.prototype.microsecond */
\
1649
CPP(TemporalPlainDateTimePrototypeMicrosecond, JSParameterCount(0)) \
1650
/* Temporal #sec-get-temporal.plaindatetime.prototype.nanosecond */
\
1651
CPP(TemporalPlainDateTimePrototypeNanosecond, JSParameterCount(0)) \
1652
/* Temporal #sec-get-temporal.plaindatetime.prototype.dayofweek */
\
1653
CPP(TemporalPlainDateTimePrototypeDayOfWeek, JSParameterCount(0)) \
1654
/* Temporal #sec-get-temporal.plaindatetime.prototype.dayofyear */
\
1655
CPP(TemporalPlainDateTimePrototypeDayOfYear, JSParameterCount(0)) \
1656
/* Temporal #sec-get-temporal.plaindatetime.prototype.weekofyear */
\
1657
CPP(TemporalPlainDateTimePrototypeWeekOfYear, JSParameterCount(0)) \
1658
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinweek */
\
1659
CPP(TemporalPlainDateTimePrototypeDaysInWeek, JSParameterCount(0)) \
1660
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinmonth */
\
1661
CPP(TemporalPlainDateTimePrototypeDaysInMonth, JSParameterCount(0)) \
1662
/* Temporal #sec-get-temporal.plaindatetime.prototype.daysinyear */
\
1663
CPP(TemporalPlainDateTimePrototypeDaysInYear, JSParameterCount(0)) \
1664
/* Temporal #sec-get-temporal.plaindatetime.prototype.monthsinyear */
\
1665
CPP(TemporalPlainDateTimePrototypeMonthsInYear, JSParameterCount(0)) \
1666
/* Temporal #sec-get-temporal.plaindatetime.prototype.inleapyear */
\
1667
CPP(TemporalPlainDateTimePrototypeInLeapYear, JSParameterCount(0)) \
1668
/* Temporal #sec-temporal.plaindatetime.prototype.with */
\
1669
CPP(TemporalPlainDateTimePrototypeWith, kDontAdaptArgumentsSentinel) \
1670
/* Temporal #sec-temporal.plaindatetime.prototype.withplainTime */
\
1671
CPP(TemporalPlainDateTimePrototypeWithPlainTime, \
1672
kDontAdaptArgumentsSentinel) \
1673
/* Temporal #sec-temporal.plaindatetime.prototype.withplainDate */
\
1674
CPP(TemporalPlainDateTimePrototypeWithPlainDate, \
1675
kDontAdaptArgumentsSentinel) \
1676
/* Temporal #sec-temporal.plaindatetime.prototype.withcalendar */
\
1677
CPP(TemporalPlainDateTimePrototypeWithCalendar, kDontAdaptArgumentsSentinel) \
1678
/* Temporal #sec-temporal.plaindatetime.prototype.add */
\
1679
CPP(TemporalPlainDateTimePrototypeAdd, kDontAdaptArgumentsSentinel) \
1680
/* Temporal #sec-temporal.plaindatetime.prototype.subtract */
\
1681
CPP(TemporalPlainDateTimePrototypeSubtract, kDontAdaptArgumentsSentinel) \
1682
/* Temporal #sec-temporal.plaindatetime.prototype.until */
\
1683
CPP(TemporalPlainDateTimePrototypeUntil, kDontAdaptArgumentsSentinel) \
1684
/* Temporal #sec-temporal.plaindatetime.prototype.since */
\
1685
CPP(TemporalPlainDateTimePrototypeSince, kDontAdaptArgumentsSentinel) \
1686
/* Temporal #sec-temporal.plaindatetime.prototype.round */
\
1687
CPP(TemporalPlainDateTimePrototypeRound, kDontAdaptArgumentsSentinel) \
1688
/* Temporal #sec-temporal.plaindatetime.prototype.equals */
\
1689
CPP(TemporalPlainDateTimePrototypeEquals, kDontAdaptArgumentsSentinel) \
1690
/* Temporal #sec-temporal.plaindatetime.prototype.tostring */
\
1691
CPP(TemporalPlainDateTimePrototypeToString, kDontAdaptArgumentsSentinel) \
1692
/* Temporal #sec-temporal.plainddatetimeprototype.tojson */
\
1693
CPP(TemporalPlainDateTimePrototypeToJSON, kDontAdaptArgumentsSentinel) \
1694
/* Temporal #sec-temporal.plaindatetime.prototype.tolocalestring */
\
1695
CPP(TemporalPlainDateTimePrototypeToLocaleString, \
1696
kDontAdaptArgumentsSentinel) \
1697
/* Temporal #sec-temporal.plaindatetime.prototype.valueof */
\
1698
CPP(TemporalPlainDateTimePrototypeValueOf, kDontAdaptArgumentsSentinel) \
1699
/* Temporal #sec-temporal.plaindatetime.prototype.tozoneddatetime */
\
1700
CPP(TemporalPlainDateTimePrototypeToZonedDateTime, \
1701
kDontAdaptArgumentsSentinel) \
1702
/* Temporal #sec-temporal.plaindatetime.prototype.toplaindate */
\
1703
CPP(TemporalPlainDateTimePrototypeToPlainDate, kDontAdaptArgumentsSentinel) \
1704
/* Temporal #sec-temporal.plaindatetime.prototype.toplainyearmonth */
\
1705
CPP(TemporalPlainDateTimePrototypeToPlainYearMonth, \
1706
kDontAdaptArgumentsSentinel) \
1707
/* Temporal #sec-temporal.plaindatetime.prototype.toplainmonthday */
\
1708
CPP(TemporalPlainDateTimePrototypeToPlainMonthDay, \
1709
kDontAdaptArgumentsSentinel) \
1710
/* Temporal #sec-temporal.plaindatetime.prototype.toplaintime */
\
1711
CPP(TemporalPlainDateTimePrototypeToPlainTime, kDontAdaptArgumentsSentinel) \
1712
/* Temporal #sec-temporal.plaindatetime.prototype.getisofields */
\
1713
CPP(TemporalPlainDateTimePrototypeGetISOFields, kDontAdaptArgumentsSentinel) \
1714
\
1715
/* Temporal.ZonedDateTime */
\
1716
/* Temporal #sec-temporal.zoneddatetime */
\
1717
CPP(TemporalZonedDateTimeConstructor, kDontAdaptArgumentsSentinel) \
1718
/* Temporal #sec-temporal.zoneddatetime.from */
\
1719
CPP(TemporalZonedDateTimeFrom, kDontAdaptArgumentsSentinel) \
1720
/* Temporal #sec-temporal.zoneddatetime.compare */
\
1721
CPP(TemporalZonedDateTimeCompare, kDontAdaptArgumentsSentinel) \
1722
/* Temporal #sec-get-temporal.zoneddatetime.prototype.calendar */
\
1723
CPP(TemporalZonedDateTimePrototypeCalendar, JSParameterCount(0)) \
1724
/* Temporal #sec-get-temporal.zoneddatetime.prototype.timezone */
\
1725
CPP(TemporalZonedDateTimePrototypeTimeZone, JSParameterCount(0)) \
1726
/* Temporal #sec-get-temporal.zoneddatetime.prototype.year */
\
1727
CPP(TemporalZonedDateTimePrototypeYear, JSParameterCount(0)) \
1728
/* Temporal #sec-get-temporal.zoneddatetime.prototype.month */
\
1729
CPP(TemporalZonedDateTimePrototypeMonth, JSParameterCount(0)) \
1730
/* Temporal #sec-get-temporal.zoneddatetime.prototype.monthcode */
\
1731
CPP(TemporalZonedDateTimePrototypeMonthCode, JSParameterCount(0)) \
1732
/* Temporal #sec-get-temporal.zoneddatetime.prototype.day */
\
1733
CPP(TemporalZonedDateTimePrototypeDay, JSParameterCount(0)) \
1734
/* Temporal #sec-get-temporal.zoneddatetime.prototype.hour */
\
1735
CPP(TemporalZonedDateTimePrototypeHour, JSParameterCount(0)) \
1736
/* Temporal #sec-get-temporal.zoneddatetime.prototype.minute */
\
1737
CPP(TemporalZonedDateTimePrototypeMinute, JSParameterCount(0)) \
1738
/* Temporal #sec-get-temporal.zoneddatetime.prototype.second */
\
1739
CPP(TemporalZonedDateTimePrototypeSecond, JSParameterCount(0)) \
1740
/* Temporal #sec-get-temporal.zoneddatetime.prototype.millisecond */
\
1741
CPP(TemporalZonedDateTimePrototypeMillisecond, JSParameterCount(0)) \
1742
/* Temporal #sec-get-temporal.zoneddatetime.prototype.microsecond */
\
1743
CPP(TemporalZonedDateTimePrototypeMicrosecond, JSParameterCount(0)) \
1744
/* Temporal #sec-get-temporal.zoneddatetime.prototype.nanosecond */
\
1745
CPP(TemporalZonedDateTimePrototypeNanosecond, JSParameterCount(0)) \
1746
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochsecond */
\
1747
CPP(TemporalZonedDateTimePrototypeEpochSeconds, JSParameterCount(0)) \
1748
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochmilliseconds */
\
1749
CPP(TemporalZonedDateTimePrototypeEpochMilliseconds, JSParameterCount(0)) \
1750
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochmicroseconds */
\
1751
CPP(TemporalZonedDateTimePrototypeEpochMicroseconds, JSParameterCount(0)) \
1752
/* Temporal #sec-get-temporal.zoneddatetime.prototype.epochnanoseconds */
\
1753
CPP(TemporalZonedDateTimePrototypeEpochNanoseconds, JSParameterCount(0)) \
1754
/* Temporal #sec-get-temporal.zoneddatetime.prototype.dayofweek */
\
1755
CPP(TemporalZonedDateTimePrototypeDayOfWeek, JSParameterCount(0)) \
1756
/* Temporal #sec-get-temporal.zoneddatetime.prototype.dayofyear */
\
1757
CPP(TemporalZonedDateTimePrototypeDayOfYear, JSParameterCount(0)) \
1758
/* Temporal #sec-get-temporal.zoneddatetime.prototype.weekofyear */
\
1759
CPP(TemporalZonedDateTimePrototypeWeekOfYear, JSParameterCount(0)) \
1760
/* Temporal #sec-get-temporal.zoneddatetime.prototype.hoursinday */
\
1761
CPP(TemporalZonedDateTimePrototypeHoursInDay, JSParameterCount(0)) \
1762
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinweek */
\
1763
CPP(TemporalZonedDateTimePrototypeDaysInWeek, JSParameterCount(0)) \
1764
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinmonth */
\
1765
CPP(TemporalZonedDateTimePrototypeDaysInMonth, JSParameterCount(0)) \
1766
/* Temporal #sec-get-temporal.zoneddatetime.prototype.daysinyear */
\
1767
CPP(TemporalZonedDateTimePrototypeDaysInYear, JSParameterCount(0)) \
1768
/* Temporal #sec-get-temporal.zoneddatetime.prototype.monthsinyear */
\
1769
CPP(TemporalZonedDateTimePrototypeMonthsInYear, JSParameterCount(0)) \
1770
/* Temporal #sec-get-temporal.zoneddatetime.prototype.inleapyear */
\
1771
CPP(TemporalZonedDateTimePrototypeInLeapYear, JSParameterCount(0)) \
1772
/* Temporal #sec-get-temporal.zoneddatetime.prototype.offsetnanoseconds */
\
1773
CPP(TemporalZonedDateTimePrototypeOffsetNanoseconds, JSParameterCount(0)) \
1774
/* Temporal #sec-get-temporal.zoneddatetime.prototype.offset */
\
1775
CPP(TemporalZonedDateTimePrototypeOffset, JSParameterCount(0)) \
1776
/* Temporal #sec-temporal.zoneddatetime.prototype.with */
\
1777
CPP(TemporalZonedDateTimePrototypeWith, kDontAdaptArgumentsSentinel) \
1778
/* Temporal #sec-temporal.zoneddatetime.prototype.withplaintime */
\
1779
CPP(TemporalZonedDateTimePrototypeWithPlainTime, \
1780
kDontAdaptArgumentsSentinel) \
1781
/* Temporal #sec-temporal.zoneddatetime.prototype.withplaindate */
\
1782
CPP(TemporalZonedDateTimePrototypeWithPlainDate, \
1783
kDontAdaptArgumentsSentinel) \
1784
/* Temporal #sec-temporal.zoneddatetime.prototype.withtimezone */
\
1785
CPP(TemporalZonedDateTimePrototypeWithTimeZone, kDontAdaptArgumentsSentinel) \
1786
/* Temporal #sec-temporal.zoneddatetime.prototype.withcalendar */
\
1787
CPP(TemporalZonedDateTimePrototypeWithCalendar, kDontAdaptArgumentsSentinel) \
1788
/* Temporal #sec-temporal.zoneddatetime.prototype.add */
\
1789
CPP(TemporalZonedDateTimePrototypeAdd, kDontAdaptArgumentsSentinel) \
1790
/* Temporal #sec-temporal.zoneddatetime.prototype.subtract */
\
1791
CPP(TemporalZonedDateTimePrototypeSubtract, kDontAdaptArgumentsSentinel) \
1792
/* Temporal #sec-temporal.zoneddatetime.prototype.until */
\
1793
CPP(TemporalZonedDateTimePrototypeUntil, kDontAdaptArgumentsSentinel) \
1794
/* Temporal #sec-temporal.zoneddatetime.prototype.since */
\
1795
CPP(TemporalZonedDateTimePrototypeSince, kDontAdaptArgumentsSentinel) \
1796
/* Temporal #sec-temporal.zoneddatetime.prototype.round */
\
1797
CPP(TemporalZonedDateTimePrototypeRound, kDontAdaptArgumentsSentinel) \
1798
/* Temporal #sec-temporal.zoneddatetime.prototype.equals */
\
1799
CPP(TemporalZonedDateTimePrototypeEquals, kDontAdaptArgumentsSentinel) \
1800
/* Temporal #sec-temporal.zoneddatetime.prototype.tostring */
\
1801
CPP(TemporalZonedDateTimePrototypeToString, kDontAdaptArgumentsSentinel) \
1802
/* Temporal #sec-temporal.zonedddatetimeprototype.tojson */
\
1803
CPP(TemporalZonedDateTimePrototypeToJSON, kDontAdaptArgumentsSentinel) \
1804
/* Temporal #sec-temporal.zoneddatetime.prototype.tolocalestring */
\
1805
CPP(TemporalZonedDateTimePrototypeToLocaleString, \
1806
kDontAdaptArgumentsSentinel) \
1807
/* Temporal #sec-temporal.zoneddatetime.prototype.valueof */
\
1808
CPP(TemporalZonedDateTimePrototypeValueOf, kDontAdaptArgumentsSentinel) \
1809
/* Temporal #sec-temporal.zoneddatetime.prototype.startofday */
\
1810
CPP(TemporalZonedDateTimePrototypeStartOfDay, kDontAdaptArgumentsSentinel) \
1811
/* Temporal #sec-temporal.zoneddatetime.prototype.toinstant */
\
1812
CPP(TemporalZonedDateTimePrototypeToInstant, kDontAdaptArgumentsSentinel) \
1813
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaindate */
\
1814
CPP(TemporalZonedDateTimePrototypeToPlainDate, kDontAdaptArgumentsSentinel) \
1815
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaintime */
\
1816
CPP(TemporalZonedDateTimePrototypeToPlainTime, kDontAdaptArgumentsSentinel) \
1817
/* Temporal #sec-temporal.zoneddatetime.prototype.toplaindatetime */
\
1818
CPP(TemporalZonedDateTimePrototypeToPlainDateTime, \
1819
kDontAdaptArgumentsSentinel) \
1820
/* Temporal #sec-temporal.zoneddatetime.prototype.toplainyearmonth */
\
1821
CPP(TemporalZonedDateTimePrototypeToPlainYearMonth, \
1822
kDontAdaptArgumentsSentinel) \
1823
/* Temporal #sec-temporal.zoneddatetime.prototype.toplainmonthday */
\
1824
CPP(TemporalZonedDateTimePrototypeToPlainMonthDay, \
1825
kDontAdaptArgumentsSentinel) \
1826
/* Temporal #sec-temporal.zoneddatetime.prototype.getisofields */
\
1827
CPP(TemporalZonedDateTimePrototypeGetISOFields, kDontAdaptArgumentsSentinel) \
1828
\
1829
/* Temporal.Duration */
\
1830
/* Temporal #sec-temporal.duration */
\
1831
CPP(TemporalDurationConstructor, kDontAdaptArgumentsSentinel) \
1832
/* Temporal #sec-temporal.duration.from */
\
1833
CPP(TemporalDurationFrom, kDontAdaptArgumentsSentinel) \
1834
/* Temporal #sec-temporal.duration.compare */
\
1835
CPP(TemporalDurationCompare, kDontAdaptArgumentsSentinel) \
1836
/* Temporal #sec-get-temporal.duration.prototype.years */
\
1837
CPP(TemporalDurationPrototypeYears, JSParameterCount(0)) \
1838
/* Temporal #sec-get-temporal.duration.prototype.months */
\
1839
CPP(TemporalDurationPrototypeMonths, JSParameterCount(0)) \
1840
/* Temporal #sec-get-temporal.duration.prototype.weeks */
\
1841
CPP(TemporalDurationPrototypeWeeks, JSParameterCount(0)) \
1842
/* Temporal #sec-get-temporal.duration.prototype.days */
\
1843
CPP(TemporalDurationPrototypeDays, JSParameterCount(0)) \
1844
/* Temporal #sec-get-temporal.duration.prototype.hours */
\
1845
CPP(TemporalDurationPrototypeHours, JSParameterCount(0)) \
1846
/* Temporal #sec-get-temporal.duration.prototype.minutes */
\
1847
CPP(TemporalDurationPrototypeMinutes, JSParameterCount(0)) \
1848
/* Temporal #sec-get-temporal.duration.prototype.seconds */
\
1849
CPP(TemporalDurationPrototypeSeconds, JSParameterCount(0)) \
1850
/* Temporal #sec-get-temporal.duration.prototype.milliseconds */
\
1851
CPP(TemporalDurationPrototypeMilliseconds, JSParameterCount(0)) \
1852
/* Temporal #sec-get-temporal.duration.prototype.microseconds */
\
1853
CPP(TemporalDurationPrototypeMicroseconds, JSParameterCount(0)) \
1854
/* Temporal #sec-get-temporal.duration.prototype.nanoseconds */
\
1855
CPP(TemporalDurationPrototypeNanoseconds, JSParameterCount(0)) \
1856
/* Temporal #sec-get-temporal.duration.prototype.sign */
\
1857
CPP(TemporalDurationPrototypeSign, JSParameterCount(0)) \
1858
/* Temporal #sec-get-temporal.duration.prototype.blank */
\
1859
CPP(TemporalDurationPrototypeBlank, JSParameterCount(0)) \
1860
/* Temporal #sec-temporal.duration.prototype.with */
\
1861
CPP(TemporalDurationPrototypeWith, kDontAdaptArgumentsSentinel) \
1862
/* Temporal #sec-temporal.duration.prototype.negated */
\
1863
CPP(TemporalDurationPrototypeNegated, kDontAdaptArgumentsSentinel) \
1864
/* Temporal #sec-temporal.duration.prototype.abs */
\
1865
CPP(TemporalDurationPrototypeAbs, kDontAdaptArgumentsSentinel) \
1866
/* Temporal #sec-temporal.duration.prototype.add */
\
1867
CPP(TemporalDurationPrototypeAdd, kDontAdaptArgumentsSentinel) \
1868
/* Temporal #sec-temporal.duration.prototype.subtract */
\
1869
CPP(TemporalDurationPrototypeSubtract, kDontAdaptArgumentsSentinel) \
1870
/* Temporal #sec-temporal.duration.prototype.round */
\
1871
CPP(TemporalDurationPrototypeRound, kDontAdaptArgumentsSentinel) \
1872
/* Temporal #sec-temporal.duration.prototype.total */
\
1873
CPP(TemporalDurationPrototypeTotal, kDontAdaptArgumentsSentinel) \
1874
/* Temporal #sec-temporal.duration.prototype.tostring */
\
1875
CPP(TemporalDurationPrototypeToString, kDontAdaptArgumentsSentinel) \
1876
/* Temporal #sec-temporal.duration.tojson */
\
1877
CPP(TemporalDurationPrototypeToJSON, kDontAdaptArgumentsSentinel) \
1878
/* Temporal #sec-temporal.duration.prototype.tolocalestring */
\
1879
CPP(TemporalDurationPrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
1880
/* Temporal #sec-temporal.duration.prototype.valueof */
\
1881
CPP(TemporalDurationPrototypeValueOf, kDontAdaptArgumentsSentinel) \
1882
\
1883
/* Temporal.Instant */
\
1884
/* Temporal #sec-temporal.instant */
\
1885
CPP(TemporalInstantConstructor, kDontAdaptArgumentsSentinel) \
1886
/* Temporal #sec-temporal.instant.from */
\
1887
CPP(TemporalInstantFrom, kDontAdaptArgumentsSentinel) \
1888
/* Temporal #sec-temporal.instant.fromepochseconds */
\
1889
CPP(TemporalInstantFromEpochSeconds, kDontAdaptArgumentsSentinel) \
1890
/* Temporal #sec-temporal.instant.fromepochmilliseconds */
\
1891
CPP(TemporalInstantFromEpochMilliseconds, kDontAdaptArgumentsSentinel) \
1892
/* Temporal #sec-temporal.instant.fromepochmicroseconds */
\
1893
CPP(TemporalInstantFromEpochMicroseconds, kDontAdaptArgumentsSentinel) \
1894
/* Temporal #sec-temporal.instant.fromepochnanoseconds */
\
1895
CPP(TemporalInstantFromEpochNanoseconds, kDontAdaptArgumentsSentinel) \
1896
/* Temporal #sec-temporal.instant.compare */
\
1897
CPP(TemporalInstantCompare, kDontAdaptArgumentsSentinel) \
1898
/* Temporal #sec-get-temporal.instant.prototype.epochseconds */
\
1899
CPP(TemporalInstantPrototypeEpochSeconds, JSParameterCount(0)) \
1900
/* Temporal #sec-get-temporal.instant.prototype.epochmilliseconds */
\
1901
CPP(TemporalInstantPrototypeEpochMilliseconds, JSParameterCount(0)) \
1902
/* Temporal #sec-get-temporal.instant.prototype.epochmicroseconds */
\
1903
CPP(TemporalInstantPrototypeEpochMicroseconds, JSParameterCount(0)) \
1904
/* Temporal #sec-get-temporal.instant.prototype.epochnanoseconds */
\
1905
CPP(TemporalInstantPrototypeEpochNanoseconds, JSParameterCount(0)) \
1906
/* Temporal #sec-temporal.instant.prototype.add */
\
1907
CPP(TemporalInstantPrototypeAdd, kDontAdaptArgumentsSentinel) \
1908
/* Temporal #sec-temporal.instant.prototype.subtract */
\
1909
CPP(TemporalInstantPrototypeSubtract, kDontAdaptArgumentsSentinel) \
1910
/* Temporal #sec-temporal.instant.prototype.until */
\
1911
CPP(TemporalInstantPrototypeUntil, kDontAdaptArgumentsSentinel) \
1912
/* Temporal #sec-temporal.instant.prototype.since */
\
1913
CPP(TemporalInstantPrototypeSince, kDontAdaptArgumentsSentinel) \
1914
/* Temporal #sec-temporal.instant.prototype.round */
\
1915
CPP(TemporalInstantPrototypeRound, kDontAdaptArgumentsSentinel) \
1916
/* Temporal #sec-temporal.instant.prototype.equals */
\
1917
CPP(TemporalInstantPrototypeEquals, kDontAdaptArgumentsSentinel) \
1918
/* Temporal #sec-temporal.instant.prototype.tostring */
\
1919
CPP(TemporalInstantPrototypeToString, kDontAdaptArgumentsSentinel) \
1920
/* Temporal #sec-temporal.instant.tojson */
\
1921
CPP(TemporalInstantPrototypeToJSON, kDontAdaptArgumentsSentinel) \
1922
/* Temporal #sec-temporal.instant.prototype.tolocalestring */
\
1923
CPP(TemporalInstantPrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
1924
/* Temporal #sec-temporal.instant.prototype.valueof */
\
1925
CPP(TemporalInstantPrototypeValueOf, kDontAdaptArgumentsSentinel) \
1926
/* Temporal #sec-temporal.instant.prototype.tozoneddatetime */
\
1927
CPP(TemporalInstantPrototypeToZonedDateTime, kDontAdaptArgumentsSentinel) \
1928
/* Temporal #sec-temporal.instant.prototype.tozoneddatetimeiso */
\
1929
CPP(TemporalInstantPrototypeToZonedDateTimeISO, kDontAdaptArgumentsSentinel) \
1930
\
1931
/* Temporal.PlainYearMonth */
\
1932
/* Temporal #sec-temporal.plainyearmonth */
\
1933
CPP(TemporalPlainYearMonthConstructor, kDontAdaptArgumentsSentinel) \
1934
/* Temporal #sec-temporal.plainyearmonth.from */
\
1935
CPP(TemporalPlainYearMonthFrom, kDontAdaptArgumentsSentinel) \
1936
/* Temporal #sec-temporal.plainyearmonth.compare */
\
1937
CPP(TemporalPlainYearMonthCompare, kDontAdaptArgumentsSentinel) \
1938
/* Temporal #sec-get-temporal.plainyearmonth.prototype.calendar */
\
1939
CPP(TemporalPlainYearMonthPrototypeCalendar, JSParameterCount(0)) \
1940
/* Temporal #sec-get-temporal.plainyearmonth.prototype.year */
\
1941
CPP(TemporalPlainYearMonthPrototypeYear, JSParameterCount(0)) \
1942
/* Temporal #sec-get-temporal.plainyearmonth.prototype.month */
\
1943
CPP(TemporalPlainYearMonthPrototypeMonth, JSParameterCount(0)) \
1944
/* Temporal #sec-get-temporal.plainyearmonth.prototype.monthcode */
\
1945
CPP(TemporalPlainYearMonthPrototypeMonthCode, JSParameterCount(0)) \
1946
/* Temporal #sec-get-temporal.plainyearmonth.prototype.daysinyear */
\
1947
CPP(TemporalPlainYearMonthPrototypeDaysInYear, JSParameterCount(0)) \
1948
/* Temporal #sec-get-temporal.plainyearmonth.prototype.daysinmonth */
\
1949
CPP(TemporalPlainYearMonthPrototypeDaysInMonth, JSParameterCount(0)) \
1950
/* Temporal #sec-get-temporal.plainyearmonth.prototype.monthsinyear */
\
1951
CPP(TemporalPlainYearMonthPrototypeMonthsInYear, JSParameterCount(0)) \
1952
/* Temporal #sec-get-temporal.plainyearmonth.prototype.inleapyear */
\
1953
CPP(TemporalPlainYearMonthPrototypeInLeapYear, JSParameterCount(0)) \
1954
/* Temporal #sec-temporal.plainyearmonth.prototype.with */
\
1955
CPP(TemporalPlainYearMonthPrototypeWith, kDontAdaptArgumentsSentinel) \
1956
/* Temporal #sec-temporal.plainyearmonth.prototype.add */
\
1957
CPP(TemporalPlainYearMonthPrototypeAdd, kDontAdaptArgumentsSentinel) \
1958
/* Temporal #sec-temporal.plainyearmonth.prototype.subtract */
\
1959
CPP(TemporalPlainYearMonthPrototypeSubtract, kDontAdaptArgumentsSentinel) \
1960
/* Temporal #sec-temporal.plainyearmonth.prototype.until */
\
1961
CPP(TemporalPlainYearMonthPrototypeUntil, kDontAdaptArgumentsSentinel) \
1962
/* Temporal #sec-temporal.plainyearmonth.prototype.since */
\
1963
CPP(TemporalPlainYearMonthPrototypeSince, kDontAdaptArgumentsSentinel) \
1964
/* Temporal #sec-temporal.plainyearmonth.prototype.equals */
\
1965
CPP(TemporalPlainYearMonthPrototypeEquals, kDontAdaptArgumentsSentinel) \
1966
/* Temporal #sec-temporal.plainyearmonth.tostring */
\
1967
CPP(TemporalPlainYearMonthPrototypeToString, kDontAdaptArgumentsSentinel) \
1968
/* Temporal #sec-temporal.plainyearmonth.tojson */
\
1969
CPP(TemporalPlainYearMonthPrototypeToJSON, kDontAdaptArgumentsSentinel) \
1970
/* Temporal #sec-temporal.plainyearmonth.prototype.tolocalestring */
\
1971
CPP(TemporalPlainYearMonthPrototypeToLocaleString, \
1972
kDontAdaptArgumentsSentinel) \
1973
/* Temporal #sec-temporal.plainyearmonth.prototype.valueof */
\
1974
CPP(TemporalPlainYearMonthPrototypeValueOf, kDontAdaptArgumentsSentinel) \
1975
/* Temporal #sec-temporal.plainyearmonth.prototype.toplaindate */
\
1976
CPP(TemporalPlainYearMonthPrototypeToPlainDate, kDontAdaptArgumentsSentinel) \
1977
/* Temporal #sec-temporal.plainyearmonth.prototype.getisofields */
\
1978
CPP(TemporalPlainYearMonthPrototypeGetISOFields, \
1979
kDontAdaptArgumentsSentinel) \
1980
\
1981
/* Temporal.PlainMonthDay */
\
1982
/* Temporal #sec-temporal.plainmonthday */
\
1983
CPP(TemporalPlainMonthDayConstructor, kDontAdaptArgumentsSentinel) \
1984
/* Temporal #sec-temporal.plainmonthday.from */
\
1985
CPP(TemporalPlainMonthDayFrom, kDontAdaptArgumentsSentinel) \
1986
/* There are no compare for PlainMonthDay */
\
1987
/* See https://github.com/tc39/proposal-temporal/issues/1547 */
\
1988
/* Temporal #sec-get-temporal.plainmonthday.prototype.calendar */
\
1989
CPP(TemporalPlainMonthDayPrototypeCalendar, JSParameterCount(0)) \
1990
/* Temporal #sec-get-temporal.plainmonthday.prototype.monthcode */
\
1991
CPP(TemporalPlainMonthDayPrototypeMonthCode, JSParameterCount(0)) \
1992
/* Temporal #sec-get-temporal.plainmonthday.prototype.day */
\
1993
CPP(TemporalPlainMonthDayPrototypeDay, JSParameterCount(0)) \
1994
/* Temporal #sec-temporal.plainmonthday.prototype.with */
\
1995
CPP(TemporalPlainMonthDayPrototypeWith, kDontAdaptArgumentsSentinel) \
1996
/* Temporal #sec-temporal.plainmonthday.prototype.equals */
\
1997
CPP(TemporalPlainMonthDayPrototypeEquals, kDontAdaptArgumentsSentinel) \
1998
/* Temporal #sec-temporal.plainmonthday.prototype.tostring */
\
1999
CPP(TemporalPlainMonthDayPrototypeToString, kDontAdaptArgumentsSentinel) \
2000
/* Temporal #sec-temporal.plainmonthday.tojson */
\
2001
CPP(TemporalPlainMonthDayPrototypeToJSON, kDontAdaptArgumentsSentinel) \
2002
/* Temporal #sec-temporal.plainmonthday.prototype.tolocalestring */
\
2003
CPP(TemporalPlainMonthDayPrototypeToLocaleString, \
2004
kDontAdaptArgumentsSentinel) \
2005
/* Temporal #sec-temporal.plainmonthday.prototype.valueof */
\
2006
CPP(TemporalPlainMonthDayPrototypeValueOf, kDontAdaptArgumentsSentinel) \
2007
/* Temporal #sec-temporal.plainmonthday.prototype.toplaindate */
\
2008
CPP(TemporalPlainMonthDayPrototypeToPlainDate, kDontAdaptArgumentsSentinel) \
2009
/* Temporal #sec-temporal.plainmonthday.prototype.getisofields */
\
2010
CPP(TemporalPlainMonthDayPrototypeGetISOFields, kDontAdaptArgumentsSentinel) \
2011
\
2012
/* Temporal.TimeZone */
\
2013
/* Temporal #sec-temporal.timezone */
\
2014
CPP(TemporalTimeZoneConstructor, kDontAdaptArgumentsSentinel) \
2015
/* Temporal #sec-temporal.timezone.from */
\
2016
CPP(TemporalTimeZoneFrom, kDontAdaptArgumentsSentinel) \
2017
/* Temporal #sec-get-temporal.timezone.prototype.id */
\
2018
CPP(TemporalTimeZonePrototypeId, JSParameterCount(0)) \
2019
/* Temporal #sec-temporal.timezone.prototype.getoffsetnanosecondsfor */
\
2020
CPP(TemporalTimeZonePrototypeGetOffsetNanosecondsFor, \
2021
kDontAdaptArgumentsSentinel) \
2022
/* Temporal #sec-temporal.timezone.prototype.getoffsetstringfor */
\
2023
CPP(TemporalTimeZonePrototypeGetOffsetStringFor, \
2024
kDontAdaptArgumentsSentinel) \
2025
/* Temporal #sec-temporal.timezone.prototype.getplaindatetimefor */
\
2026
CPP(TemporalTimeZonePrototypeGetPlainDateTimeFor, \
2027
kDontAdaptArgumentsSentinel) \
2028
/* Temporal #sec-temporal.timezone.prototype.getinstantfor */
\
2029
CPP(TemporalTimeZonePrototypeGetInstantFor, kDontAdaptArgumentsSentinel) \
2030
/* Temporal #sec-temporal.timezone.prototype.getpossibleinstantsfor */
\
2031
CPP(TemporalTimeZonePrototypeGetPossibleInstantsFor, \
2032
kDontAdaptArgumentsSentinel) \
2033
/* Temporal #sec-temporal.timezone.prototype.getnexttransition */
\
2034
CPP(TemporalTimeZonePrototypeGetNextTransition, kDontAdaptArgumentsSentinel) \
2035
/* Temporal #sec-temporal.timezone.prototype.getprevioustransition */
\
2036
CPP(TemporalTimeZonePrototypeGetPreviousTransition, \
2037
kDontAdaptArgumentsSentinel) \
2038
/* Temporal #sec-temporal.timezone.prototype.tostring */
\
2039
CPP(TemporalTimeZonePrototypeToString, kDontAdaptArgumentsSentinel) \
2040
/* Temporal #sec-temporal.timezone.prototype.tojson */
\
2041
CPP(TemporalTimeZonePrototypeToJSON, kDontAdaptArgumentsSentinel) \
2042
\
2043
/* Temporal.Calendar */
\
2044
/* Temporal #sec-temporal.calendar */
\
2045
CPP(TemporalCalendarConstructor, kDontAdaptArgumentsSentinel) \
2046
/* Temporal #sec-temporal.calendar.from */
\
2047
CPP(TemporalCalendarFrom, kDontAdaptArgumentsSentinel) \
2048
/* Temporal #sec-get-temporal.calendar.prototype.id */
\
2049
CPP(TemporalCalendarPrototypeId, JSParameterCount(0)) \
2050
/* Temporal #sec-temporal.calendar.prototype.datefromfields */
\
2051
CPP(TemporalCalendarPrototypeDateFromFields, kDontAdaptArgumentsSentinel) \
2052
/* Temporal #sec-temporal.calendar.prototype.yearmonthfromfields */
\
2053
CPP(TemporalCalendarPrototypeYearMonthFromFields, \
2054
kDontAdaptArgumentsSentinel) \
2055
/* Temporal #sec-temporal.calendar.prototype.monthdayfromfields */
\
2056
CPP(TemporalCalendarPrototypeMonthDayFromFields, \
2057
kDontAdaptArgumentsSentinel) \
2058
/* Temporal #sec-temporal.calendar.prototype.dateadd */
\
2059
CPP(TemporalCalendarPrototypeDateAdd, kDontAdaptArgumentsSentinel) \
2060
/* Temporal #sec-temporal.calendar.prototype.dateuntil */
\
2061
CPP(TemporalCalendarPrototypeDateUntil, kDontAdaptArgumentsSentinel) \
2062
/* Temporal #sec-temporal.calendar.prototype.year */
\
2063
CPP(TemporalCalendarPrototypeYear, kDontAdaptArgumentsSentinel) \
2064
/* Temporal #sec-temporal.calendar.prototype.month */
\
2065
CPP(TemporalCalendarPrototypeMonth, kDontAdaptArgumentsSentinel) \
2066
/* Temporal #sec-temporal.calendar.prototype.monthcode */
\
2067
CPP(TemporalCalendarPrototypeMonthCode, kDontAdaptArgumentsSentinel) \
2068
/* Temporal #sec-temporal.calendar.prototype.day */
\
2069
CPP(TemporalCalendarPrototypeDay, kDontAdaptArgumentsSentinel) \
2070
/* Temporal #sec-temporal.calendar.prototype.dayofweek */
\
2071
CPP(TemporalCalendarPrototypeDayOfWeek, kDontAdaptArgumentsSentinel) \
2072
/* Temporal #sec-temporal.calendar.prototype.dayofyear */
\
2073
CPP(TemporalCalendarPrototypeDayOfYear, kDontAdaptArgumentsSentinel) \
2074
/* Temporal #sec-temporal.calendar.prototype.weekofyear */
\
2075
CPP(TemporalCalendarPrototypeWeekOfYear, kDontAdaptArgumentsSentinel) \
2076
/* Temporal #sec-temporal.calendar.prototype.daysinweek */
\
2077
CPP(TemporalCalendarPrototypeDaysInWeek, kDontAdaptArgumentsSentinel) \
2078
/* Temporal #sec-temporal.calendar.prototype.daysinmonth */
\
2079
CPP(TemporalCalendarPrototypeDaysInMonth, kDontAdaptArgumentsSentinel) \
2080
/* Temporal #sec-temporal.calendar.prototype.daysinyear */
\
2081
CPP(TemporalCalendarPrototypeDaysInYear, kDontAdaptArgumentsSentinel) \
2082
/* Temporal #sec-temporal.calendar.prototype.monthsinyear */
\
2083
CPP(TemporalCalendarPrototypeMonthsInYear, kDontAdaptArgumentsSentinel) \
2084
/* Temporal #sec-temporal.calendar.prototype.inleapyear */
\
2085
CPP(TemporalCalendarPrototypeInLeapYear, kDontAdaptArgumentsSentinel) \
2086
/* Temporal #sec-temporal.calendar.prototype.fields */
\
2087
TFJ(TemporalCalendarPrototypeFields, kJSArgcReceiverSlots + 1, kReceiver, \
2088
kIterable) \
2089
/* Temporal #sec-temporal.calendar.prototype.mergefields */
\
2090
CPP(TemporalCalendarPrototypeMergeFields, kDontAdaptArgumentsSentinel) \
2091
/* Temporal #sec-temporal.calendar.prototype.tostring */
\
2092
CPP(TemporalCalendarPrototypeToString, kDontAdaptArgumentsSentinel) \
2093
/* Temporal #sec-temporal.calendar.prototype.tojson */
\
2094
CPP(TemporalCalendarPrototypeToJSON, kDontAdaptArgumentsSentinel) \
2095
/* Temporal #sec-date.prototype.totemporalinstant */
\
2096
CPP(DatePrototypeToTemporalInstant, kDontAdaptArgumentsSentinel) \
2097
\
2098
/* "Private" (created but not exposed) Bulitins needed by Temporal */
\
2099
TFJ(StringFixedArrayFromIterable, kJSArgcReceiverSlots + 1, kReceiver, \
2100
kIterable) \
2101
TFJ(TemporalInstantFixedArrayFromIterable, kJSArgcReceiverSlots + 1, \
2102
kReceiver, kIterable)
2103
2104
#define BUILTIN_LIST_BASE(CPP, TSJ, TFJ, TSC, TFC, TFS, TFH, ASM) \
2105
BUILTIN_LIST_BASE_TIER0(CPP, TFJ, TFC, TFS, TFH, ASM) \
2106
BUILTIN_LIST_BASE_TIER1(CPP, TSJ, TFJ, TSC, TFC, TFS, TFH, ASM)
2107
2108
#ifdef V8_INTL_SUPPORT
2109
#define BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
2110
/* ecma402 #sec-intl.collator */
\
2111
CPP(CollatorConstructor, kDontAdaptArgumentsSentinel) \
2112
/* ecma 402 #sec-collator-compare-functions*/
\
2113
CPP(CollatorInternalCompare, JSParameterCount(2)) \
2114
/* ecma402 #sec-intl.collator.prototype.compare */
\
2115
CPP(CollatorPrototypeCompare, kDontAdaptArgumentsSentinel) \
2116
/* ecma402 #sec-intl.collator.supportedlocalesof */
\
2117
CPP(CollatorSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2118
/* ecma402 #sec-intl.collator.prototype.resolvedoptions */
\
2119
CPP(CollatorPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2120
/* ecma402 #sup-date.prototype.tolocaledatestring */
\
2121
CPP(DatePrototypeToLocaleDateString, kDontAdaptArgumentsSentinel) \
2122
/* ecma402 #sup-date.prototype.tolocalestring */
\
2123
CPP(DatePrototypeToLocaleString, kDontAdaptArgumentsSentinel) \
2124
/* ecma402 #sup-date.prototype.tolocaletimestring */
\
2125
CPP(DatePrototypeToLocaleTimeString, kDontAdaptArgumentsSentinel) \
2126
/* ecma402 #sec-intl.datetimeformat */
\
2127
CPP(DateTimeFormatConstructor, kDontAdaptArgumentsSentinel) \
2128
/* ecma402 #sec-datetime-format-functions */
\
2129
CPP(DateTimeFormatInternalFormat, JSParameterCount(1)) \
2130
/* ecma402 #sec-intl.datetimeformat.prototype.format */
\
2131
CPP(DateTimeFormatPrototypeFormat, kDontAdaptArgumentsSentinel) \
2132
/* ecma402 #sec-intl.datetimeformat.prototype.formatrange */
\
2133
CPP(DateTimeFormatPrototypeFormatRange, kDontAdaptArgumentsSentinel) \
2134
/* ecma402 #sec-intl.datetimeformat.prototype.formatrangetoparts */
\
2135
CPP(DateTimeFormatPrototypeFormatRangeToParts, kDontAdaptArgumentsSentinel) \
2136
/* ecma402 #sec-intl.datetimeformat.prototype.formattoparts */
\
2137
CPP(DateTimeFormatPrototypeFormatToParts, kDontAdaptArgumentsSentinel) \
2138
/* ecma402 #sec-intl.datetimeformat.prototype.resolvedoptions */
\
2139
CPP(DateTimeFormatPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2140
/* ecma402 #sec-intl.datetimeformat.supportedlocalesof */
\
2141
CPP(DateTimeFormatSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2142
/* ecma402 #sec-Intl.DisplayNames */
\
2143
CPP(DisplayNamesConstructor, kDontAdaptArgumentsSentinel) \
2144
/* ecma402 #sec-Intl.DisplayNames.prototype.of */
\
2145
CPP(DisplayNamesPrototypeOf, kDontAdaptArgumentsSentinel) \
2146
/* ecma402 #sec-Intl.DisplayNames.prototype.resolvedOptions */
\
2147
CPP(DisplayNamesPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2148
/* ecma402 #sec-Intl.DisplayNames.supportedLocalesOf */
\
2149
CPP(DisplayNamesSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2150
/* ecma402 #sec-intl-durationformat-constructor */
\
2151
CPP(DurationFormatConstructor, kDontAdaptArgumentsSentinel) \
2152
/* ecma402 #sec-Intl.DurationFormat.prototype.format */
\
2153
CPP(DurationFormatPrototypeFormat, kDontAdaptArgumentsSentinel) \
2154
/* ecma402 #sec-Intl.DurationFormat.prototype.formatToParts */
\
2155
CPP(DurationFormatPrototypeFormatToParts, kDontAdaptArgumentsSentinel) \
2156
/* ecma402 #sec-Intl.DurationFormat.prototype.resolvedOptions */
\
2157
CPP(DurationFormatPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2158
/* ecma402 #sec-Intl.DurationFormat.supportedLocalesOf */
\
2159
CPP(DurationFormatSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2160
/* ecma402 #sec-intl.getcanonicallocales */
\
2161
CPP(IntlGetCanonicalLocales, kDontAdaptArgumentsSentinel) \
2162
/* ecma402 #sec-intl.supportedvaluesof */
\
2163
CPP(IntlSupportedValuesOf, kDontAdaptArgumentsSentinel) \
2164
/* ecma402 #sec-intl-listformat-constructor */
\
2165
CPP(ListFormatConstructor, kDontAdaptArgumentsSentinel) \
2166
/* ecma402 #sec-intl-list-format.prototype.format */
\
2167
TFJ(ListFormatPrototypeFormat, kDontAdaptArgumentsSentinel) \
2168
/* ecma402 #sec-intl-list-format.prototype.formattoparts */
\
2169
TFJ(ListFormatPrototypeFormatToParts, kDontAdaptArgumentsSentinel) \
2170
/* ecma402 #sec-intl.listformat.prototype.resolvedoptions */
\
2171
CPP(ListFormatPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2172
/* ecma402 #sec-intl.ListFormat.supportedlocalesof */
\
2173
CPP(ListFormatSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2174
/* ecma402 #sec-intl-locale-constructor */
\
2175
CPP(LocaleConstructor, kDontAdaptArgumentsSentinel) \
2176
/* ecma402 #sec-Intl.Locale.prototype.baseName */
\
2177
CPP(LocalePrototypeBaseName, JSParameterCount(0)) \
2178
/* ecma402 #sec-Intl.Locale.prototype.calendar */
\
2179
CPP(LocalePrototypeCalendar, JSParameterCount(0)) \
2180
/* ecma402 #sec-Intl.Locale.prototype.calendars */
\
2181
CPP(LocalePrototypeCalendars, JSParameterCount(0)) \
2182
/* ecma402 #sec-Intl.Locale.prototype.caseFirst */
\
2183
CPP(LocalePrototypeCaseFirst, JSParameterCount(0)) \
2184
/* ecma402 #sec-Intl.Locale.prototype.collation */
\
2185
CPP(LocalePrototypeCollation, JSParameterCount(0)) \
2186
/* ecma402 #sec-Intl.Locale.prototype.collations */
\
2187
CPP(LocalePrototypeCollations, JSParameterCount(0)) \
2188
/* ecma402 #sec-Intl.Locale.prototype.firstDayOfWeek */
\
2189
CPP(LocalePrototypeFirstDayOfWeek, JSParameterCount(0)) \
2190
/* ecma402 #sec-Intl.Locale.prototype.getCalendars */
\
2191
CPP(LocalePrototypeGetCalendars, kDontAdaptArgumentsSentinel) \
2192
/* ecma402 #sec-Intl.Locale.prototype.getCollations */
\
2193
CPP(LocalePrototypeGetCollations, kDontAdaptArgumentsSentinel) \
2194
/* ecma402 #sec-Intl.Locale.prototype.getHourCycles */
\
2195
CPP(LocalePrototypeGetHourCycles, kDontAdaptArgumentsSentinel) \
2196
/* ecma402 #sec-Intl.Locale.prototype.getNumberingSystems */
\
2197
CPP(LocalePrototypeGetNumberingSystems, kDontAdaptArgumentsSentinel) \
2198
/* ecma402 #sec-Intl.Locale.prototype.getTimeZones */
\
2199
CPP(LocalePrototypeGetTimeZones, kDontAdaptArgumentsSentinel) \
2200
/* ecma402 #sec-Intl.Locale.prototype.getTextInfo */
\
2201
CPP(LocalePrototypeGetTextInfo, kDontAdaptArgumentsSentinel) \
2202
/* ecma402 #sec-Intl.Locale.prototype.getWeekInfo */
\
2203
CPP(LocalePrototypeGetWeekInfo, kDontAdaptArgumentsSentinel) \
2204
/* ecma402 #sec-Intl.Locale.prototype.hourCycle */
\
2205
CPP(LocalePrototypeHourCycle, JSParameterCount(0)) \
2206
/* ecma402 #sec-Intl.Locale.prototype.hourCycles */
\
2207
CPP(LocalePrototypeHourCycles, JSParameterCount(0)) \
2208
/* ecma402 #sec-Intl.Locale.prototype.language */
\
2209
CPP(LocalePrototypeLanguage, JSParameterCount(0)) \
2210
/* ecma402 #sec-Intl.Locale.prototype.maximize */
\
2211
CPP(LocalePrototypeMaximize, kDontAdaptArgumentsSentinel) \
2212
/* ecma402 #sec-Intl.Locale.prototype.minimize */
\
2213
CPP(LocalePrototypeMinimize, kDontAdaptArgumentsSentinel) \
2214
/* ecma402 #sec-Intl.Locale.prototype.numeric */
\
2215
CPP(LocalePrototypeNumeric, JSParameterCount(0)) \
2216
/* ecma402 #sec-Intl.Locale.prototype.numberingSystem */
\
2217
CPP(LocalePrototypeNumberingSystem, JSParameterCount(0)) \
2218
/* ecma402 #sec-Intl.Locale.prototype.numberingSystems */
\
2219
CPP(LocalePrototypeNumberingSystems, JSParameterCount(0)) \
2220
/* ecma402 #sec-Intl.Locale.prototype.region */
\
2221
CPP(LocalePrototypeRegion, JSParameterCount(0)) \
2222
/* ecma402 #sec-Intl.Locale.prototype.script */
\
2223
CPP(LocalePrototypeScript, JSParameterCount(0)) \
2224
/* ecma402 #sec-Intl.Locale.prototype.textInfo */
\
2225
CPP(LocalePrototypeTextInfo, JSParameterCount(0)) \
2226
/* ecma402 #sec-Intl.Locale.prototype.timezones */
\
2227
CPP(LocalePrototypeTimeZones, JSParameterCount(0)) \
2228
/* ecma402 #sec-Intl.Locale.prototype.toString */
\
2229
CPP(LocalePrototypeToString, kDontAdaptArgumentsSentinel) \
2230
/* ecma402 #sec-Intl.Locale.prototype.weekInfo */
\
2231
CPP(LocalePrototypeWeekInfo, JSParameterCount(0)) \
2232
/* ecma402 #sec-intl.numberformat */
\
2233
CPP(NumberFormatConstructor, kDontAdaptArgumentsSentinel) \
2234
/* ecma402 #sec-number-format-functions */
\
2235
CPP(NumberFormatInternalFormatNumber, JSParameterCount(1)) \
2236
/* ecma402 #sec-intl.numberformat.prototype.format */
\
2237
CPP(NumberFormatPrototypeFormatNumber, kDontAdaptArgumentsSentinel) \
2238
/* ecma402 #sec-intl.numberformat.prototype.formatrange */
\
2239
CPP(NumberFormatPrototypeFormatRange, kDontAdaptArgumentsSentinel) \
2240
/* ecma402 #sec-intl.numberformat.prototype.formatrangetoparts */
\
2241
CPP(NumberFormatPrototypeFormatRangeToParts, kDontAdaptArgumentsSentinel) \
2242
/* ecma402 #sec-intl.numberformat.prototype.formattoparts */
\
2243
CPP(NumberFormatPrototypeFormatToParts, kDontAdaptArgumentsSentinel) \
2244
/* ecma402 #sec-intl.numberformat.prototype.resolvedoptions */
\
2245
CPP(NumberFormatPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2246
/* ecma402 #sec-intl.numberformat.supportedlocalesof */
\
2247
CPP(NumberFormatSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2248
/* ecma402 #sec-intl.pluralrules */
\
2249
CPP(PluralRulesConstructor, kDontAdaptArgumentsSentinel) \
2250
/* ecma402 #sec-intl.pluralrules.prototype.resolvedoptions */
\
2251
CPP(PluralRulesPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2252
/* ecma402 #sec-intl.pluralrules.prototype.select */
\
2253
CPP(PluralRulesPrototypeSelect, kDontAdaptArgumentsSentinel) \
2254
/* ecma402 #sec-intl.pluralrules.prototype.selectrange */
\
2255
CPP(PluralRulesPrototypeSelectRange, kDontAdaptArgumentsSentinel) \
2256
/* ecma402 #sec-intl.pluralrules.supportedlocalesof */
\
2257
CPP(PluralRulesSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2258
/* ecma402 #sec-intl.RelativeTimeFormat.constructor */
\
2259
CPP(RelativeTimeFormatConstructor, kDontAdaptArgumentsSentinel) \
2260
/* ecma402 #sec-intl.RelativeTimeFormat.prototype.format */
\
2261
CPP(RelativeTimeFormatPrototypeFormat, kDontAdaptArgumentsSentinel) \
2262
/* ecma402 #sec-intl.RelativeTimeFormat.prototype.formatToParts */
\
2263
CPP(RelativeTimeFormatPrototypeFormatToParts, kDontAdaptArgumentsSentinel) \
2264
/* ecma402 #sec-intl.RelativeTimeFormat.prototype.resolvedOptions */
\
2265
CPP(RelativeTimeFormatPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2266
/* ecma402 #sec-intl.RelativeTimeFormat.supportedlocalesof */
\
2267
CPP(RelativeTimeFormatSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2268
/* ecma402 #sec-Intl.Segmenter */
\
2269
CPP(SegmenterConstructor, kDontAdaptArgumentsSentinel) \
2270
/* ecma402 #sec-Intl.Segmenter.prototype.resolvedOptions */
\
2271
CPP(SegmenterPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2272
/* ecma402 #sec-Intl.Segmenter.prototype.segment */
\
2273
CPP(SegmenterPrototypeSegment, kDontAdaptArgumentsSentinel) \
2274
/* ecma402 #sec-Intl.Segmenter.supportedLocalesOf */
\
2275
CPP(SegmenterSupportedLocalesOf, kDontAdaptArgumentsSentinel) \
2276
/* ecma402 #sec-segment-iterator-prototype-next */
\
2277
CPP(SegmentIteratorPrototypeNext, kDontAdaptArgumentsSentinel) \
2278
/* ecma402 #sec-%segmentsprototype%.containing */
\
2279
CPP(SegmentsPrototypeContaining, kDontAdaptArgumentsSentinel) \
2280
/* ecma402 #sec-%segmentsprototype%-@@iterator */
\
2281
CPP(SegmentsPrototypeIterator, JSParameterCount(0)) \
2282
/* ecma402 #sup-properties-of-the-string-prototype-object */
\
2283
CPP(StringPrototypeLocaleCompareIntl, kDontAdaptArgumentsSentinel) \
2284
/* ES #sec-string.prototype.normalize */
\
2285
CPP(StringPrototypeNormalizeIntl, kDontAdaptArgumentsSentinel) \
2286
/* ecma402 #sup-string.prototype.tolocalelowercase */
\
2287
TFJ(StringPrototypeToLocaleLowerCase, kDontAdaptArgumentsSentinel) \
2288
/* ecma402 #sup-string.prototype.tolocaleuppercase */
\
2289
CPP(StringPrototypeToLocaleUpperCase, kDontAdaptArgumentsSentinel) \
2290
/* ES #sec-string.prototype.tolowercase */
\
2291
TFJ(StringPrototypeToLowerCaseIntl, kJSArgcReceiverSlots, kReceiver) \
2292
/* ES #sec-string.prototype.touppercase */
\
2293
CPP(StringPrototypeToUpperCaseIntl, kDontAdaptArgumentsSentinel) \
2294
TFS(StringToLowerCaseIntl, NeedsContext::kYes, kString) \
2295
\
2296
/* Temporal */
\
2297
/* Temporal #sec-temporal.calendar.prototype.era */
\
2298
CPP(TemporalCalendarPrototypeEra, kDontAdaptArgumentsSentinel) \
2299
/* Temporal #sec-temporal.calendar.prototype.erayear */
\
2300
CPP(TemporalCalendarPrototypeEraYear, kDontAdaptArgumentsSentinel) \
2301
/* Temporal #sec-get-temporal.plaindate.prototype.era */
\
2302
CPP(TemporalPlainDatePrototypeEra, JSParameterCount(0)) \
2303
/* Temporal #sec-get-temporal.plaindate.prototype.erayear */
\
2304
CPP(TemporalPlainDatePrototypeEraYear, JSParameterCount(0)) \
2305
/* Temporal #sec-get-temporal.plaindatetime.prototype.era */
\
2306
CPP(TemporalPlainDateTimePrototypeEra, JSParameterCount(0)) \
2307
/* Temporal #sec-get-temporal.plaindatetime.prototype.erayear */
\
2308
CPP(TemporalPlainDateTimePrototypeEraYear, JSParameterCount(0)) \
2309
/* Temporal #sec-get-temporal.plainyearmonth.prototype.era */
\
2310
CPP(TemporalPlainYearMonthPrototypeEra, JSParameterCount(0)) \
2311
/* Temporal #sec-get-temporal.plainyearmonth.prototype.erayear */
\
2312
CPP(TemporalPlainYearMonthPrototypeEraYear, JSParameterCount(0)) \
2313
/* Temporal #sec-get-temporal.zoneddatetime.prototype.era */
\
2314
CPP(TemporalZonedDateTimePrototypeEra, JSParameterCount(0)) \
2315
/* Temporal #sec-get-temporal.zoneddatetime.prototype.erayear */
\
2316
CPP(TemporalZonedDateTimePrototypeEraYear, JSParameterCount(0)) \
2317
\
2318
CPP(V8BreakIteratorConstructor, kDontAdaptArgumentsSentinel) \
2319
CPP(V8BreakIteratorInternalAdoptText, JSParameterCount(1)) \
2320
CPP(V8BreakIteratorInternalBreakType, JSParameterCount(0)) \
2321
CPP(V8BreakIteratorInternalCurrent, JSParameterCount(0)) \
2322
CPP(V8BreakIteratorInternalFirst, JSParameterCount(0)) \
2323
CPP(V8BreakIteratorInternalNext, JSParameterCount(0)) \
2324
CPP(V8BreakIteratorPrototypeAdoptText, kDontAdaptArgumentsSentinel) \
2325
CPP(V8BreakIteratorPrototypeBreakType, kDontAdaptArgumentsSentinel) \
2326
CPP(V8BreakIteratorPrototypeCurrent, kDontAdaptArgumentsSentinel) \
2327
CPP(V8BreakIteratorPrototypeFirst, kDontAdaptArgumentsSentinel) \
2328
CPP(V8BreakIteratorPrototypeNext, kDontAdaptArgumentsSentinel) \
2329
CPP(V8BreakIteratorPrototypeResolvedOptions, kDontAdaptArgumentsSentinel) \
2330
CPP(V8BreakIteratorSupportedLocalesOf, kDontAdaptArgumentsSentinel)
2331
#else
2332
#define BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
2333
/* ES6 #sec-string.prototype.localecompare */
\
2334
/* non-locale specific fallback version */
\
2335
CPP(StringPrototypeLocaleCompare, JSParameterCount(1)) \
2336
/* no-op fallback version */
\
2337
CPP(StringPrototypeNormalize, kDontAdaptArgumentsSentinel) \
2338
/* same as toLowercase; fallback version */
\
2339
CPP(StringPrototypeToLocaleLowerCase, kDontAdaptArgumentsSentinel) \
2340
/* same as toUppercase; fallback version */
\
2341
CPP(StringPrototypeToLocaleUpperCase, kDontAdaptArgumentsSentinel) \
2342
/* (obsolete) Unibrow version */
\
2343
CPP(StringPrototypeToLowerCase, kDontAdaptArgumentsSentinel) \
2344
/* (obsolete) Unibrow version */
\
2345
CPP(StringPrototypeToUpperCase, kDontAdaptArgumentsSentinel)
2346
#endif
// V8_INTL_SUPPORT
2347
2348
#define BUILTIN_LIST(CPP, TSJ, TFJ, TSC, TFC, TFS, TFH, BCH, ASM) \
2349
BUILTIN_LIST_BASE(CPP, TSJ, TFJ, TSC, TFC, TFS, TFH, ASM) \
2350
BUILTIN_LIST_FROM_TORQUE(CPP, TFJ, TFC, TFS, TFH, ASM) \
2351
BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
2352
BUILTIN_LIST_BYTECODE_HANDLERS(BCH)
2353
2354
// See the comment on top of BUILTIN_LIST_BASE_TIER0 for an explanation of
2355
// tiers.
2356
#define BUILTIN_LIST_TIER0(CPP, TFJ, TFC, TFS, TFH, BCH, ASM) \
2357
BUILTIN_LIST_BASE_TIER0(CPP, TFJ, TFC, TFS, TFH, ASM)
2358
2359
#define BUILTIN_LIST_TIER1(CPP, TSJ, TFJ, TFC, TFS, TFH, BCH, ASM) \
2360
BUILTIN_LIST_BASE_TIER1(CPP, TSJ, TFJ, TFC, TFS, TFH, ASM) \
2361
BUILTIN_LIST_FROM_TORQUE(CPP, TFJ, TFC, TFS, TFH, ASM) \
2362
BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
2363
BUILTIN_LIST_BYTECODE_HANDLERS(BCH)
2364
2365
// The exception thrown in the following builtins are caught
2366
// internally and result in a promise rejection.
2367
#define BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(V) \
2368
V(AsyncFromSyncIteratorPrototypeNext) \
2369
V(AsyncFromSyncIteratorPrototypeReturn) \
2370
V(AsyncFromSyncIteratorPrototypeThrow) \
2371
V(AsyncFunctionAwait) \
2372
V(AsyncGeneratorResolve) \
2373
V(AsyncGeneratorAwait) \
2374
V(PromiseAll) \
2375
V(PromiseAny) \
2376
V(PromiseConstructor) \
2377
V(PromiseConstructorLazyDeoptContinuation) \
2378
V(PromiseFulfillReactionJob) \
2379
V(PromiseRejectReactionJob) \
2380
V(PromiseRace) \
2381
V(PromiseTry) \
2382
V(ResolvePromise) \
2383
V(AsyncDisposeFromSyncDispose)
2384
2385
#define IGNORE_BUILTIN(...)
2386
2387
#define BUILTIN_LIST_C(V) \
2388
BUILTIN_LIST(V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2389
IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2390
IGNORE_BUILTIN)
2391
2392
#define BUILTIN_LIST_TSJ(V) \
2393
BUILTIN_LIST(IGNORE_BUILTIN, V, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2394
IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2395
IGNORE_BUILTIN)
2396
2397
#define BUILTIN_LIST_TFJ(V) \
2398
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, V, IGNORE_BUILTIN, \
2399
IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2400
IGNORE_BUILTIN)
2401
2402
#define BUILTIN_LIST_TSC(V) \
2403
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, V, \
2404
IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2405
IGNORE_BUILTIN)
2406
2407
#define BUILTIN_LIST_TFC(V) \
2408
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2409
V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2410
IGNORE_BUILTIN)
2411
2412
#define BUILTIN_LIST_TFS(V) \
2413
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2414
IGNORE_BUILTIN, V, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2415
IGNORE_BUILTIN)
2416
2417
#define BUILTIN_LIST_TFH(V) \
2418
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2419
IGNORE_BUILTIN, IGNORE_BUILTIN, V, IGNORE_BUILTIN, \
2420
IGNORE_BUILTIN)
2421
2422
#define BUILTIN_LIST_BCH(V) \
2423
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2424
IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, V, \
2425
IGNORE_BUILTIN)
2426
2427
#define BUILTIN_LIST_A(V) \
2428
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2429
IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
2430
V)
2431
2432
}
// namespace internal
2433
}
// namespace v8
2434
2435
#endif
// V8_BUILTINS_BUILTINS_DEFINITIONS_H_
globals.h
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
src
builtins
builtins-definitions.h
Generated on Sun Apr 6 2025 21:08:50 for v8 by
1.12.0