summaryrefslogtreecommitdiff
path: root/deps/v8/src/builtins/builtins-definitions.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/builtins/builtins-definitions.h')
-rw-r--r--deps/v8/src/builtins/builtins-definitions.h715
1 files changed, 382 insertions, 333 deletions
diff --git a/deps/v8/src/builtins/builtins-definitions.h b/deps/v8/src/builtins/builtins-definitions.h
index 4a4b17006c..46b02d88d8 100644
--- a/deps/v8/src/builtins/builtins-definitions.h
+++ b/deps/v8/src/builtins/builtins-definitions.h
@@ -31,8 +31,8 @@ namespace internal {
TFC(RecordWrite, RecordWrite, 1) \
\
/* Adaptors for CPP/API builtin */ \
- ASM(AdaptorWithExitFrame) \
- ASM(AdaptorWithBuiltinExitFrame) \
+ TFC(AdaptorWithExitFrame, CppBuiltinAdaptor, 1) \
+ TFC(AdaptorWithBuiltinExitFrame, CppBuiltinAdaptor, 1) \
\
/* Calls */ \
ASM(ArgumentsAdaptorTrampoline) \
@@ -78,9 +78,9 @@ namespace internal {
TFS(CreateEmptyArrayLiteral, kFeedbackVector, kSlot) \
TFS(CreateShallowArrayLiteral, kFeedbackVector, kSlot, kConstantElements) \
TFS(CreateShallowObjectLiteral, kFeedbackVector, kSlot, \
- kBoilerplateDescription, kFlags) \
+ kObjectBoilerplateDescription, kFlags) \
/* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \
- TFC(ConstructProxy, ConstructTrampoline, 1) \
+ TFC(ConstructProxy, JSTrampoline, 1) \
\
/* Apply and entries */ \
ASM(JSEntryTrampoline) \
@@ -120,9 +120,9 @@ namespace internal {
ASM(InterpreterOnStackReplacement) \
\
/* Code life-cycle */ \
- ASM(CompileLazy) \
- ASM(CompileLazyDeoptimizedCode) \
- ASM(DeserializeLazy) \
+ TFC(CompileLazy, JSTrampoline, 1) \
+ TFC(CompileLazyDeoptimizedCode, JSTrampoline, 1) \
+ TFC(DeserializeLazy, JSTrampoline, 1) \
ASM(InstantiateAsmJs) \
ASM(NotifyDeoptimized) \
\
@@ -159,8 +159,8 @@ namespace internal {
API(HandleApiCallAsConstructor) \
\
/* Adapters for Turbofan into runtime */ \
- ASM(AllocateInNewSpace) \
- ASM(AllocateInOldSpace) \
+ TFC(AllocateInNewSpace, Allocate, 1) \
+ TFC(AllocateInOldSpace, Allocate, 1) \
\
/* TurboFan support builtins */ \
TFS(CopyFastSmiOrObjectElements, kObject) \
@@ -223,8 +223,8 @@ namespace internal {
TFS(DeleteProperty, kObject, kKey, kLanguageMode) \
\
/* Abort */ \
- ASM(Abort) \
- TFC(AbortJS, AbortJS, 1) \
+ TFC(Abort, Abort, 1) \
+ TFC(AbortJS, Abort, 1) \
\
/* Built-in functions for Javascript */ \
/* Special internal builtins */ \
@@ -232,14 +232,56 @@ namespace internal {
CPP(Illegal) \
CPP(StrictPoisonPillThrower) \
CPP(UnsupportedThrower) \
- TFJ(ReturnReceiver, 0) \
+ TFJ(ReturnReceiver, 0, kReceiver) \
\
/* Array */ \
- ASM(ArrayConstructor) \
+ TFC(ArrayConstructor, JSTrampoline, 1) \
+ TFC(ArrayConstructorImpl, ArrayConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_PackedSmi_DontOverride, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_HoleySmi_DontOverride, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_PackedSmi_DisableAllocationSites, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_HoleySmi_DisableAllocationSites, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_Packed_DisableAllocationSites, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_Holey_DisableAllocationSites, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_PackedDouble_DisableAllocationSites, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArrayNoArgumentConstructor_HoleyDouble_DisableAllocationSites, \
+ ArrayNoArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_PackedSmi_DontOverride, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_HoleySmi_DontOverride, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_PackedSmi_DisableAllocationSites, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_HoleySmi_DisableAllocationSites, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_Packed_DisableAllocationSites, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_Holey_DisableAllocationSites, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_PackedDouble_DisableAllocationSites, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArraySingleArgumentConstructor_HoleyDouble_DisableAllocationSites, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(ArrayNArgumentsConstructor, ArrayNArgumentsConstructor, 1) \
ASM(InternalArrayConstructor) \
+ ASM(InternalArrayConstructorImpl) \
+ TFC(InternalArrayNoArgumentConstructor_Packed, ArrayNoArgumentConstructor, \
+ 1) \
+ TFC(InternalArrayNoArgumentConstructor_Holey, ArrayNoArgumentConstructor, 1) \
+ TFC(InternalArraySingleArgumentConstructor_Packed, \
+ ArraySingleArgumentConstructor, 1) \
+ TFC(InternalArraySingleArgumentConstructor_Holey, \
+ ArraySingleArgumentConstructor, 1) \
CPP(ArrayConcat) \
/* ES6 #sec-array.isarray */ \
- TFJ(ArrayIsArray, 1, kArg) \
+ TFJ(ArrayIsArray, 1, kReceiver, kArg) \
/* ES6 #sec-array.from */ \
TFJ(ArrayFrom, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.of */ \
@@ -280,88 +322,90 @@ namespace internal {
/* ES6 #sec-array.prototype.every */ \
TFS(ArrayEveryLoopContinuation, kReceiver, kCallbackFn, kThisArg, kArray, \
kObject, kInitialK, kLength, kTo) \
- TFJ(ArrayEveryLoopEagerDeoptContinuation, 4, kCallbackFn, kThisArg, \
- kInitialK, kLength) \
- TFJ(ArrayEveryLoopLazyDeoptContinuation, 5, kCallbackFn, kThisArg, \
- kInitialK, kLength, kResult) \
+ TFJ(ArrayEveryLoopEagerDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kThisArg, kInitialK, kLength) \
+ TFJ(ArrayEveryLoopLazyDeoptContinuation, 5, kReceiver, kCallbackFn, \
+ kThisArg, kInitialK, kLength, kResult) \
TFJ(ArrayEvery, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.some */ \
TFS(ArraySomeLoopContinuation, kReceiver, kCallbackFn, kThisArg, kArray, \
kObject, kInitialK, kLength, kTo) \
- TFJ(ArraySomeLoopEagerDeoptContinuation, 4, kCallbackFn, kThisArg, \
- kInitialK, kLength) \
- TFJ(ArraySomeLoopLazyDeoptContinuation, 5, kCallbackFn, kThisArg, kInitialK, \
- kLength, kResult) \
+ TFJ(ArraySomeLoopEagerDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kThisArg, kInitialK, kLength) \
+ TFJ(ArraySomeLoopLazyDeoptContinuation, 5, kReceiver, kCallbackFn, kThisArg, \
+ kInitialK, kLength, kResult) \
TFJ(ArraySome, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.filter */ \
TFS(ArrayFilterLoopContinuation, kReceiver, kCallbackFn, kThisArg, kArray, \
kObject, kInitialK, kLength, kTo) \
TFJ(ArrayFilter, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
- TFJ(ArrayFilterLoopEagerDeoptContinuation, 6, kCallbackFn, kThisArg, kArray, \
- kInitialK, kLength, kTo) \
- TFJ(ArrayFilterLoopLazyDeoptContinuation, 8, kCallbackFn, kThisArg, kArray, \
- kInitialK, kLength, kValueK, kTo, kResult) \
+ TFJ(ArrayFilterLoopEagerDeoptContinuation, 6, kReceiver, kCallbackFn, \
+ kThisArg, kArray, kInitialK, kLength, kTo) \
+ TFJ(ArrayFilterLoopLazyDeoptContinuation, 8, kReceiver, kCallbackFn, \
+ kThisArg, kArray, kInitialK, kLength, kValueK, kTo, kResult) \
/* ES6 #sec-array.prototype.foreach */ \
TFS(ArrayMapLoopContinuation, kReceiver, kCallbackFn, kThisArg, kArray, \
kObject, kInitialK, kLength, kTo) \
- TFJ(ArrayMapLoopEagerDeoptContinuation, 5, kCallbackFn, kThisArg, kArray, \
- kInitialK, kLength) \
- TFJ(ArrayMapLoopLazyDeoptContinuation, 6, kCallbackFn, kThisArg, kArray, \
- kInitialK, kLength, kResult) \
+ TFJ(ArrayMapLoopEagerDeoptContinuation, 5, kReceiver, kCallbackFn, kThisArg, \
+ kArray, kInitialK, kLength) \
+ TFJ(ArrayMapLoopLazyDeoptContinuation, 6, kReceiver, kCallbackFn, kThisArg, \
+ kArray, kInitialK, kLength, kResult) \
TFJ(ArrayMap, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.reduce */ \
TFS(ArrayReduceLoopContinuation, kReceiver, kCallbackFn, kThisArg, \
kAccumulator, kObject, kInitialK, kLength, kTo) \
- TFJ(ArrayReducePreLoopEagerDeoptContinuation, 2, kCallbackFn, kLength) \
- TFJ(ArrayReduceLoopEagerDeoptContinuation, 4, kCallbackFn, kInitialK, \
- kLength, kAccumulator) \
- TFJ(ArrayReduceLoopLazyDeoptContinuation, 4, kCallbackFn, kInitialK, \
- kLength, kResult) \
+ TFJ(ArrayReducePreLoopEagerDeoptContinuation, 2, kReceiver, kCallbackFn, \
+ kLength) \
+ TFJ(ArrayReduceLoopEagerDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kInitialK, kLength, kAccumulator) \
+ TFJ(ArrayReduceLoopLazyDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kInitialK, kLength, kResult) \
TFJ(ArrayReduce, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.reduceRight */ \
TFS(ArrayReduceRightLoopContinuation, kReceiver, kCallbackFn, kThisArg, \
kAccumulator, kObject, kInitialK, kLength, kTo) \
- TFJ(ArrayReduceRightPreLoopEagerDeoptContinuation, 2, kCallbackFn, kLength) \
- TFJ(ArrayReduceRightLoopEagerDeoptContinuation, 4, kCallbackFn, kInitialK, \
- kLength, kAccumulator) \
- TFJ(ArrayReduceRightLoopLazyDeoptContinuation, 4, kCallbackFn, kInitialK, \
- kLength, kResult) \
+ TFJ(ArrayReduceRightPreLoopEagerDeoptContinuation, 2, kReceiver, \
+ kCallbackFn, kLength) \
+ TFJ(ArrayReduceRightLoopEagerDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kInitialK, kLength, kAccumulator) \
+ TFJ(ArrayReduceRightLoopLazyDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kInitialK, kLength, kResult) \
TFJ(ArrayReduceRight, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.entries */ \
- TFJ(ArrayPrototypeEntries, 0) \
+ TFJ(ArrayPrototypeEntries, 0, kReceiver) \
/* ES6 #sec-array.prototype.find */ \
TFS(ArrayFindLoopContinuation, kReceiver, kCallbackFn, kThisArg, kArray, \
kObject, kInitialK, kLength, kTo) \
- TFJ(ArrayFindLoopEagerDeoptContinuation, 4, kCallbackFn, kThisArg, \
- kInitialK, kLength) \
- TFJ(ArrayFindLoopLazyDeoptContinuation, 5, kCallbackFn, kThisArg, kInitialK, \
- kLength, kResult) \
- TFJ(ArrayFindLoopAfterCallbackLazyDeoptContinuation, 6, kCallbackFn, \
- kThisArg, kInitialK, kLength, kFoundValue, kIsFound) \
+ TFJ(ArrayFindLoopEagerDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kThisArg, kInitialK, kLength) \
+ TFJ(ArrayFindLoopLazyDeoptContinuation, 5, kReceiver, kCallbackFn, kThisArg, \
+ kInitialK, kLength, kResult) \
+ TFJ(ArrayFindLoopAfterCallbackLazyDeoptContinuation, 6, kReceiver, \
+ kCallbackFn, kThisArg, kInitialK, kLength, kFoundValue, kIsFound) \
TFJ(ArrayPrototypeFind, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.findIndex */ \
TFS(ArrayFindIndexLoopContinuation, kReceiver, kCallbackFn, kThisArg, \
kArray, kObject, kInitialK, kLength, kTo) \
- TFJ(ArrayFindIndexLoopEagerDeoptContinuation, 4, kCallbackFn, kThisArg, \
- kInitialK, kLength) \
- TFJ(ArrayFindIndexLoopLazyDeoptContinuation, 5, kCallbackFn, kThisArg, \
- kInitialK, kLength, kResult) \
- TFJ(ArrayFindIndexLoopAfterCallbackLazyDeoptContinuation, 6, kCallbackFn, \
- kThisArg, kInitialK, kLength, kFoundValue, kIsFound) \
+ TFJ(ArrayFindIndexLoopEagerDeoptContinuation, 4, kReceiver, kCallbackFn, \
+ kThisArg, kInitialK, kLength) \
+ TFJ(ArrayFindIndexLoopLazyDeoptContinuation, 5, kReceiver, kCallbackFn, \
+ kThisArg, kInitialK, kLength, kResult) \
+ TFJ(ArrayFindIndexLoopAfterCallbackLazyDeoptContinuation, 6, kReceiver, \
+ kCallbackFn, kThisArg, kInitialK, kLength, kFoundValue, kIsFound) \
TFJ(ArrayPrototypeFindIndex, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.prototype.keys */ \
- TFJ(ArrayPrototypeKeys, 0) \
+ TFJ(ArrayPrototypeKeys, 0, kReceiver) \
/* ES6 #sec-array.prototype.values */ \
- TFJ(ArrayPrototypeValues, 0) \
+ TFJ(ArrayPrototypeValues, 0, kReceiver) \
/* ES6 #sec-%arrayiteratorprototype%.next */ \
- TFJ(ArrayIteratorPrototypeNext, 0) \
+ TFJ(ArrayIteratorPrototypeNext, 0, kReceiver) \
/* https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray */ \
TFS(FlattenIntoArray, kTarget, kSource, kSourceLength, kStart, kDepth) \
TFS(FlatMapIntoArray, kTarget, kSource, kSourceLength, kStart, kDepth, \
kMapperFunction, kThisArg) \
- /* https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten */ \
- TFJ(ArrayPrototypeFlatten, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
+ /* https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flat */ \
+ TFJ(ArrayPrototypeFlat, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap */ \
TFJ(ArrayPrototypeFlatMap, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
\
@@ -374,12 +418,18 @@ namespace internal {
CPP(ArrayBufferPrototypeSlice) \
\
/* AsyncFunction */ \
- TFJ(AsyncFunctionAwaitCaught, 3, kGenerator, kAwaited, kOuterPromise) \
- TFJ(AsyncFunctionAwaitUncaught, 3, kGenerator, kAwaited, kOuterPromise) \
- TFJ(AsyncFunctionAwaitRejectClosure, 1, kSentError) \
- TFJ(AsyncFunctionAwaitResolveClosure, 1, kSentValue) \
- TFJ(AsyncFunctionPromiseCreate, 0) \
- TFJ(AsyncFunctionPromiseRelease, 1, kPromise) \
+ TFJ(AsyncFunctionAwaitCaught, 3, kReceiver, kGenerator, kAwaited, \
+ kOuterPromise) \
+ TFJ(AsyncFunctionAwaitCaughtOptimized, 3, kReceiver, kGenerator, kAwaited, \
+ kOuterPromise) \
+ TFJ(AsyncFunctionAwaitUncaught, 3, kReceiver, kGenerator, kAwaited, \
+ kOuterPromise) \
+ TFJ(AsyncFunctionAwaitUncaughtOptimized, 3, kReceiver, kGenerator, kAwaited, \
+ kOuterPromise) \
+ TFJ(AsyncFunctionAwaitRejectClosure, 1, kReceiver, kSentError) \
+ TFJ(AsyncFunctionAwaitResolveClosure, 1, kReceiver, kSentValue) \
+ TFJ(AsyncFunctionPromiseCreate, 0, kReceiver) \
+ TFJ(AsyncFunctionPromiseRelease, 2, kReceiver, kPromise, kCanSuspend) \
\
/* BigInt */ \
CPP(BigIntConstructor) \
@@ -393,9 +443,9 @@ namespace internal {
/* ES #sec-boolean-constructor */ \
CPP(BooleanConstructor) \
/* ES6 #sec-boolean.prototype.tostring */ \
- TFJ(BooleanPrototypeToString, 0) \
+ TFJ(BooleanPrototypeToString, 0, kReceiver) \
/* ES6 #sec-boolean.prototype.valueof */ \
- TFJ(BooleanPrototypeValueOf, 0) \
+ TFJ(BooleanPrototypeValueOf, 0, kReceiver) \
\
/* CallSite */ \
CPP(CallSitePrototypeGetColumnNumber) \
@@ -433,11 +483,8 @@ namespace internal {
CPP(ConsoleCountReset) \
CPP(ConsoleAssert) \
TFJ(FastConsoleAssert, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
- CPP(ConsoleMarkTimeline) \
CPP(ConsoleProfile) \
CPP(ConsoleProfileEnd) \
- CPP(ConsoleTimeline) \
- CPP(ConsoleTimelineEnd) \
CPP(ConsoleTime) \
CPP(ConsoleTimeEnd) \
CPP(ConsoleTimeStamp) \
@@ -446,73 +493,50 @@ namespace internal {
/* DataView */ \
/* ES #sec-dataview-constructor */ \
CPP(DataViewConstructor) \
- CPP(DataViewPrototypeGetBuffer) \
- CPP(DataViewPrototypeGetByteLength) \
- CPP(DataViewPrototypeGetByteOffset) \
- CPP(DataViewPrototypeGetInt8) \
- CPP(DataViewPrototypeSetInt8) \
- CPP(DataViewPrototypeGetUint8) \
- CPP(DataViewPrototypeSetUint8) \
- CPP(DataViewPrototypeGetInt16) \
- CPP(DataViewPrototypeSetInt16) \
- CPP(DataViewPrototypeGetUint16) \
- CPP(DataViewPrototypeSetUint16) \
- CPP(DataViewPrototypeGetInt32) \
- CPP(DataViewPrototypeSetInt32) \
- CPP(DataViewPrototypeGetUint32) \
- CPP(DataViewPrototypeSetUint32) \
- CPP(DataViewPrototypeGetFloat32) \
- CPP(DataViewPrototypeSetFloat32) \
- CPP(DataViewPrototypeGetFloat64) \
- CPP(DataViewPrototypeSetFloat64) \
- CPP(DataViewPrototypeGetBigInt64) \
- CPP(DataViewPrototypeSetBigInt64) \
- CPP(DataViewPrototypeGetBigUint64) \
- CPP(DataViewPrototypeSetBigUint64) \
\
/* Date */ \
/* ES #sec-date-constructor */ \
CPP(DateConstructor) \
/* ES6 #sec-date.prototype.getdate */ \
- TFJ(DatePrototypeGetDate, 0) \
+ TFJ(DatePrototypeGetDate, 0, kReceiver) \
/* ES6 #sec-date.prototype.getday */ \
- TFJ(DatePrototypeGetDay, 0) \
+ TFJ(DatePrototypeGetDay, 0, kReceiver) \
/* ES6 #sec-date.prototype.getfullyear */ \
- TFJ(DatePrototypeGetFullYear, 0) \
+ TFJ(DatePrototypeGetFullYear, 0, kReceiver) \
/* ES6 #sec-date.prototype.gethours */ \
- TFJ(DatePrototypeGetHours, 0) \
+ TFJ(DatePrototypeGetHours, 0, kReceiver) \
/* ES6 #sec-date.prototype.getmilliseconds */ \
- TFJ(DatePrototypeGetMilliseconds, 0) \
+ TFJ(DatePrototypeGetMilliseconds, 0, kReceiver) \
/* ES6 #sec-date.prototype.getminutes */ \
- TFJ(DatePrototypeGetMinutes, 0) \
+ TFJ(DatePrototypeGetMinutes, 0, kReceiver) \
/* ES6 #sec-date.prototype.getmonth */ \
- TFJ(DatePrototypeGetMonth, 0) \
+ TFJ(DatePrototypeGetMonth, 0, kReceiver) \
/* ES6 #sec-date.prototype.getseconds */ \
- TFJ(DatePrototypeGetSeconds, 0) \
+ TFJ(DatePrototypeGetSeconds, 0, kReceiver) \
/* ES6 #sec-date.prototype.gettime */ \
- TFJ(DatePrototypeGetTime, 0) \
+ TFJ(DatePrototypeGetTime, 0, kReceiver) \
/* ES6 #sec-date.prototype.gettimezoneoffset */ \
- TFJ(DatePrototypeGetTimezoneOffset, 0) \
+ TFJ(DatePrototypeGetTimezoneOffset, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcdate */ \
- TFJ(DatePrototypeGetUTCDate, 0) \
+ TFJ(DatePrototypeGetUTCDate, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcday */ \
- TFJ(DatePrototypeGetUTCDay, 0) \
+ TFJ(DatePrototypeGetUTCDay, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcfullyear */ \
- TFJ(DatePrototypeGetUTCFullYear, 0) \
+ TFJ(DatePrototypeGetUTCFullYear, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutchours */ \
- TFJ(DatePrototypeGetUTCHours, 0) \
+ TFJ(DatePrototypeGetUTCHours, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcmilliseconds */ \
- TFJ(DatePrototypeGetUTCMilliseconds, 0) \
+ TFJ(DatePrototypeGetUTCMilliseconds, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcminutes */ \
- TFJ(DatePrototypeGetUTCMinutes, 0) \
+ TFJ(DatePrototypeGetUTCMinutes, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcmonth */ \
- TFJ(DatePrototypeGetUTCMonth, 0) \
+ TFJ(DatePrototypeGetUTCMonth, 0, kReceiver) \
/* ES6 #sec-date.prototype.getutcseconds */ \
- TFJ(DatePrototypeGetUTCSeconds, 0) \
+ TFJ(DatePrototypeGetUTCSeconds, 0, kReceiver) \
/* ES6 #sec-date.prototype.valueof */ \
- TFJ(DatePrototypeValueOf, 0) \
+ TFJ(DatePrototypeValueOf, 0, kReceiver) \
/* ES6 #sec-date.prototype-@@toprimitive */ \
- TFJ(DatePrototypeToPrimitive, 1, kHint) \
+ TFJ(DatePrototypeToPrimitive, 1, kReceiver, kHint) \
CPP(DatePrototypeGetYear) \
CPP(DatePrototypeSetYear) \
CPP(DateNow) \
@@ -559,7 +583,7 @@ namespace internal {
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
ASM(FunctionPrototypeCall) \
/* ES6 #sec-function.prototype-@@hasinstance */ \
- TFJ(FunctionPrototypeHasInstance, 1, kV) \
+ TFJ(FunctionPrototypeHasInstance, 1, kReceiver, kV) \
/* ES6 #sec-function.prototype.tostring */ \
CPP(FunctionPrototypeToString) \
\
@@ -588,9 +612,9 @@ namespace internal {
CPP(GlobalUnescape) \
CPP(GlobalEval) \
/* ES6 #sec-isfinite-number */ \
- TFJ(GlobalIsFinite, 1, kNumber) \
+ TFJ(GlobalIsFinite, 1, kReceiver, kNumber) \
/* ES6 #sec-isnan-number */ \
- TFJ(GlobalIsNaN, 1, kNumber) \
+ TFJ(GlobalIsNaN, 1, kReceiver, kNumber) \
\
/* JSON */ \
CPP(JsonParse) \
@@ -617,112 +641,112 @@ namespace internal {
/* Map */ \
TFS(FindOrderedHashMapEntry, kTable, kKey) \
TFJ(MapConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
- TFJ(MapPrototypeSet, 2, kKey, kValue) \
- TFJ(MapPrototypeDelete, 1, kKey) \
- TFJ(MapPrototypeGet, 1, kKey) \
- TFJ(MapPrototypeHas, 1, kKey) \
+ TFJ(MapPrototypeSet, 2, kReceiver, kKey, kValue) \
+ TFJ(MapPrototypeDelete, 1, kReceiver, kKey) \
+ TFJ(MapPrototypeGet, 1, kReceiver, kKey) \
+ TFJ(MapPrototypeHas, 1, kReceiver, kKey) \
CPP(MapPrototypeClear) \
/* ES #sec-map.prototype.entries */ \
- TFJ(MapPrototypeEntries, 0) \
+ TFJ(MapPrototypeEntries, 0, kReceiver) \
/* ES #sec-get-map.prototype.size */ \
- TFJ(MapPrototypeGetSize, 0) \
+ TFJ(MapPrototypeGetSize, 0, kReceiver) \
/* ES #sec-map.prototype.forEach */ \
TFJ(MapPrototypeForEach, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES #sec-map.prototype.keys */ \
- TFJ(MapPrototypeKeys, 0) \
+ TFJ(MapPrototypeKeys, 0, kReceiver) \
/* ES #sec-map.prototype.values */ \
- TFJ(MapPrototypeValues, 0) \
+ TFJ(MapPrototypeValues, 0, kReceiver) \
/* ES #sec-%mapiteratorprototype%.next */ \
- TFJ(MapIteratorPrototypeNext, 0) \
+ TFJ(MapIteratorPrototypeNext, 0, kReceiver) \
\
/* Math */ \
/* ES6 #sec-math.abs */ \
- TFJ(MathAbs, 1, kX) \
+ TFJ(MathAbs, 1, kReceiver, kX) \
/* ES6 #sec-math.acos */ \
- TFJ(MathAcos, 1, kX) \
+ TFJ(MathAcos, 1, kReceiver, kX) \
/* ES6 #sec-math.acosh */ \
- TFJ(MathAcosh, 1, kX) \
+ TFJ(MathAcosh, 1, kReceiver, kX) \
/* ES6 #sec-math.asin */ \
- TFJ(MathAsin, 1, kX) \
+ TFJ(MathAsin, 1, kReceiver, kX) \
/* ES6 #sec-math.asinh */ \
- TFJ(MathAsinh, 1, kX) \
+ TFJ(MathAsinh, 1, kReceiver, kX) \
/* ES6 #sec-math.atan */ \
- TFJ(MathAtan, 1, kX) \
+ TFJ(MathAtan, 1, kReceiver, kX) \
/* ES6 #sec-math.atanh */ \
- TFJ(MathAtanh, 1, kX) \
+ TFJ(MathAtanh, 1, kReceiver, kX) \
/* ES6 #sec-math.atan2 */ \
- TFJ(MathAtan2, 2, kY, kX) \
+ TFJ(MathAtan2, 2, kReceiver, kY, kX) \
/* ES6 #sec-math.cbrt */ \
- TFJ(MathCbrt, 1, kX) \
+ TFJ(MathCbrt, 1, kReceiver, kX) \
/* ES6 #sec-math.ceil */ \
- TFJ(MathCeil, 1, kX) \
+ TFJ(MathCeil, 1, kReceiver, kX) \
/* ES6 #sec-math.clz32 */ \
- TFJ(MathClz32, 1, kX) \
+ TFJ(MathClz32, 1, kReceiver, kX) \
/* ES6 #sec-math.cos */ \
- TFJ(MathCos, 1, kX) \
+ TFJ(MathCos, 1, kReceiver, kX) \
/* ES6 #sec-math.cosh */ \
- TFJ(MathCosh, 1, kX) \
+ TFJ(MathCosh, 1, kReceiver, kX) \
/* ES6 #sec-math.exp */ \
- TFJ(MathExp, 1, kX) \
+ TFJ(MathExp, 1, kReceiver, kX) \
/* ES6 #sec-math.expm1 */ \
- TFJ(MathExpm1, 1, kX) \
+ TFJ(MathExpm1, 1, kReceiver, kX) \
/* ES6 #sec-math.floor */ \
- TFJ(MathFloor, 1, kX) \
+ TFJ(MathFloor, 1, kReceiver, kX) \
/* ES6 #sec-math.fround */ \
- TFJ(MathFround, 1, kX) \
+ TFJ(MathFround, 1, kReceiver, kX) \
/* ES6 #sec-math.hypot */ \
CPP(MathHypot) \
/* ES6 #sec-math.imul */ \
- TFJ(MathImul, 2, kX, kY) \
+ TFJ(MathImul, 2, kReceiver, kX, kY) \
/* ES6 #sec-math.log */ \
- TFJ(MathLog, 1, kX) \
+ TFJ(MathLog, 1, kReceiver, kX) \
/* ES6 #sec-math.log1p */ \
- TFJ(MathLog1p, 1, kX) \
+ TFJ(MathLog1p, 1, kReceiver, kX) \
/* ES6 #sec-math.log10 */ \
- TFJ(MathLog10, 1, kX) \
+ TFJ(MathLog10, 1, kReceiver, kX) \
/* ES6 #sec-math.log2 */ \
- TFJ(MathLog2, 1, kX) \
+ TFJ(MathLog2, 1, kReceiver, kX) \
/* ES6 #sec-math.max */ \
TFJ(MathMax, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-math.min */ \
TFJ(MathMin, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-math.pow */ \
- TFJ(MathPow, 2, kBase, kExponent) \
+ TFJ(MathPow, 2, kReceiver, kBase, kExponent) \
/* ES6 #sec-math.random */ \
- TFJ(MathRandom, 0) \
+ TFJ(MathRandom, 0, kReceiver) \
/* ES6 #sec-math.round */ \
- TFJ(MathRound, 1, kX) \
+ TFJ(MathRound, 1, kReceiver, kX) \
/* ES6 #sec-math.sign */ \
- TFJ(MathSign, 1, kX) \
+ TFJ(MathSign, 1, kReceiver, kX) \
/* ES6 #sec-math.sin */ \
- TFJ(MathSin, 1, kX) \
+ TFJ(MathSin, 1, kReceiver, kX) \
/* ES6 #sec-math.sinh */ \
- TFJ(MathSinh, 1, kX) \
+ TFJ(MathSinh, 1, kReceiver, kX) \
/* ES6 #sec-math.sqrt */ \
- TFJ(MathTan, 1, kX) \
+ TFJ(MathTan, 1, kReceiver, kX) \
/* ES6 #sec-math.tan */ \
- TFJ(MathTanh, 1, kX) \
+ TFJ(MathTanh, 1, kReceiver, kX) \
/* ES6 #sec-math.tanh */ \
- TFJ(MathSqrt, 1, kX) \
+ TFJ(MathSqrt, 1, kReceiver, kX) \
/* ES6 #sec-math.trunc */ \
- TFJ(MathTrunc, 1, kX) \
+ TFJ(MathTrunc, 1, kReceiver, kX) \
\
/* Number */ \
TFC(AllocateHeapNumber, AllocateHeapNumber, 1) \
/* ES #sec-number-constructor */ \
TFJ(NumberConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-number.isfinite */ \
- TFJ(NumberIsFinite, 1, kNumber) \
+ TFJ(NumberIsFinite, 1, kReceiver, kNumber) \
/* ES6 #sec-number.isinteger */ \
- TFJ(NumberIsInteger, 1, kNumber) \
+ TFJ(NumberIsInteger, 1, kReceiver, kNumber) \
/* ES6 #sec-number.isnan */ \
- TFJ(NumberIsNaN, 1, kNumber) \
+ TFJ(NumberIsNaN, 1, kReceiver, kNumber) \
/* ES6 #sec-number.issafeinteger */ \
- TFJ(NumberIsSafeInteger, 1, kNumber) \
+ TFJ(NumberIsSafeInteger, 1, kReceiver, kNumber) \
/* ES6 #sec-number.parsefloat */ \
- TFJ(NumberParseFloat, 1, kString) \
+ TFJ(NumberParseFloat, 1, kReceiver, kString) \
/* ES6 #sec-number.parseint */ \
- TFJ(NumberParseInt, 2, kString, kRadix) \
+ TFJ(NumberParseInt, 2, kReceiver, kString, kRadix) \
TFS(ParseInt, kString, kRadix) \
CPP(NumberPrototypeToExponential) \
CPP(NumberPrototypeToFixed) \
@@ -730,7 +754,7 @@ namespace internal {
CPP(NumberPrototypeToPrecision) \
CPP(NumberPrototypeToString) \
/* ES6 #sec-number.prototype.valueof */ \
- TFJ(NumberPrototypeValueOf, 0) \
+ TFJ(NumberPrototypeValueOf, 0, kReceiver) \
TFC(Add, BinaryOp, 1) \
TFC(Subtract, BinaryOp, 1) \
TFC(Multiply, BinaryOp, 1) \
@@ -766,37 +790,37 @@ namespace internal {
CPP(ObjectDefineProperties) \
CPP(ObjectDefineProperty) \
CPP(ObjectDefineSetter) \
- TFJ(ObjectEntries, 1, kObject) \
+ TFJ(ObjectEntries, 1, kReceiver, kObject) \
CPP(ObjectFreeze) \
TFJ(ObjectGetOwnPropertyDescriptor, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
CPP(ObjectGetOwnPropertyDescriptors) \
- CPP(ObjectGetOwnPropertyNames) \
+ TFJ(ObjectGetOwnPropertyNames, 1, kReceiver, kObject) \
CPP(ObjectGetOwnPropertySymbols) \
CPP(ObjectGetPrototypeOf) \
CPP(ObjectSetPrototypeOf) \
- TFJ(ObjectIs, 2, kLeft, kRight) \
+ TFJ(ObjectIs, 2, kReceiver, kLeft, kRight) \
CPP(ObjectIsExtensible) \
CPP(ObjectIsFrozen) \
CPP(ObjectIsSealed) \
- TFJ(ObjectKeys, 1, kObject) \
+ TFJ(ObjectKeys, 1, kReceiver, kObject) \
CPP(ObjectLookupGetter) \
CPP(ObjectLookupSetter) \
CPP(ObjectPreventExtensions) \
/* ES6 #sec-object.prototype.tostring */ \
- TFJ(ObjectPrototypeToString, 0) \
+ TFJ(ObjectPrototypeToString, 0, kReceiver) \
/* ES6 #sec-object.prototype.valueof */ \
- TFJ(ObjectPrototypeValueOf, 0) \
+ TFJ(ObjectPrototypeValueOf, 0, kReceiver) \
/* ES6 #sec-object.prototype.hasownproperty */ \
- TFJ(ObjectPrototypeHasOwnProperty, 1, kKey) \
- TFJ(ObjectPrototypeIsPrototypeOf, 1, kValue) \
+ TFJ(ObjectPrototypeHasOwnProperty, 1, kReceiver, kKey) \
+ TFJ(ObjectPrototypeIsPrototypeOf, 1, kReceiver, kValue) \
CPP(ObjectPrototypePropertyIsEnumerable) \
CPP(ObjectPrototypeGetProto) \
CPP(ObjectPrototypeSetProto) \
/* ES #sec-object.prototype.tolocalestring */ \
- TFJ(ObjectPrototypeToLocaleString, 0) \
+ TFJ(ObjectPrototypeToLocaleString, 0, kReceiver) \
CPP(ObjectSeal) \
- TFJ(ObjectValues, 1, kObject) \
+ TFJ(ObjectValues, 1, kReceiver, kObject) \
\
/* instanceof */ \
TFC(OrdinaryHasInstance, Compare, 1) \
@@ -815,57 +839,57 @@ namespace internal {
/* Starting at step 6 of "Promise Resolve Functions" */ \
TFS(ResolvePromise, kPromise, kResolution) \
/* ES #sec-promise-reject-functions */ \
- TFJ(PromiseCapabilityDefaultReject, 1, kReason) \
+ TFJ(PromiseCapabilityDefaultReject, 1, kReceiver, kReason) \
/* ES #sec-promise-resolve-functions */ \
- TFJ(PromiseCapabilityDefaultResolve, 1, kResolution) \
+ TFJ(PromiseCapabilityDefaultResolve, 1, kReceiver, kResolution) \
/* ES6 #sec-getcapabilitiesexecutor-functions */ \
- TFJ(PromiseGetCapabilitiesExecutor, 2, kResolve, kReject) \
+ TFJ(PromiseGetCapabilitiesExecutor, 2, kReceiver, kResolve, kReject) \
/* ES6 #sec-newpromisecapability */ \
TFS(NewPromiseCapability, kConstructor, kDebugEvent) \
- TFJ(PromiseConstructorLazyDeoptContinuation, 4, kPromise, kReject, \
- kException, kResult) \
+ TFJ(PromiseConstructorLazyDeoptContinuation, 4, kReceiver, kPromise, \
+ kReject, kException, kResult) \
/* ES6 #sec-promise-executor */ \
- TFJ(PromiseConstructor, 1, kExecutor) \
+ TFJ(PromiseConstructor, 1, kReceiver, kExecutor) \
CPP(IsPromise) \
/* ES #sec-promise.prototype.then */ \
- TFJ(PromisePrototypeThen, 2, kOnFulfilled, kOnRejected) \
+ TFJ(PromisePrototypeThen, 2, kReceiver, kOnFulfilled, kOnRejected) \
/* ES #sec-performpromisethen */ \
TFS(PerformPromiseThen, kPromise, kOnFulfilled, kOnRejected, kResultPromise) \
/* ES #sec-promise.prototype.catch */ \
- TFJ(PromisePrototypeCatch, 1, kOnRejected) \
+ TFJ(PromisePrototypeCatch, 1, kReceiver, kOnRejected) \
/* ES #sec-promisereactionjob */ \
TFS(PromiseRejectReactionJob, kReason, kHandler, kPromiseOrCapability) \
TFS(PromiseFulfillReactionJob, kValue, kHandler, kPromiseOrCapability) \
/* ES #sec-promiseresolvethenablejob */ \
TFS(PromiseResolveThenableJob, kPromiseToResolve, kThenable, kThen) \
/* ES #sec-promise.resolve */ \
- TFJ(PromiseResolveTrampoline, 1, kValue) \
+ TFJ(PromiseResolveTrampoline, 1, kReceiver, kValue) \
/* ES #sec-promise-resolve */ \
TFS(PromiseResolve, kConstructor, kValue) \
/* ES #sec-promise.reject */ \
- TFJ(PromiseReject, 1, kReason) \
- TFJ(PromisePrototypeFinally, 1, kOnFinally) \
- TFJ(PromiseThenFinally, 1, kValue) \
- TFJ(PromiseCatchFinally, 1, kReason) \
- TFJ(PromiseValueThunkFinally, 0) \
- TFJ(PromiseThrowerFinally, 0) \
+ TFJ(PromiseReject, 1, kReceiver, kReason) \
+ TFJ(PromisePrototypeFinally, 1, kReceiver, kOnFinally) \
+ TFJ(PromiseThenFinally, 1, kReceiver, kValue) \
+ TFJ(PromiseCatchFinally, 1, kReceiver, kReason) \
+ TFJ(PromiseValueThunkFinally, 0, kReceiver) \
+ TFJ(PromiseThrowerFinally, 0, kReceiver) \
/* ES #sec-promise.all */ \
- TFJ(PromiseAll, 1, kIterable) \
- TFJ(PromiseAllResolveElementClosure, 1, kValue) \
+ TFJ(PromiseAll, 1, kReceiver, kIterable) \
+ TFJ(PromiseAllResolveElementClosure, 1, kReceiver, kValue) \
/* ES #sec-promise.race */ \
- TFJ(PromiseRace, 1, kIterable) \
+ TFJ(PromiseRace, 1, kReceiver, kIterable) \
/* V8 Extras: v8.createPromise(parent) */ \
- TFJ(PromiseInternalConstructor, 1, kParent) \
+ TFJ(PromiseInternalConstructor, 1, kReceiver, kParent) \
/* V8 Extras: v8.rejectPromise(promise, reason) */ \
- TFJ(PromiseInternalReject, 2, kPromise, kReason) \
+ TFJ(PromiseInternalReject, 2, kReceiver, kPromise, kReason) \
/* V8 Extras: v8.resolvePromise(promise, resolution) */ \
- TFJ(PromiseInternalResolve, 2, kPromise, kResolution) \
+ TFJ(PromiseInternalResolve, 2, kReceiver, kPromise, kResolution) \
\
/* Proxy */ \
- TFJ(ProxyConstructor, 2, kTarget, kHandler) \
- TFJ(ProxyRevocable, 2, kTarget, kHandler) \
- TFJ(ProxyRevoke, 0) \
- TFS(ProxyGetProperty, kProxy, kName, kReceiverValue) \
+ TFJ(ProxyConstructor, 2, kReceiver, kTarget, kHandler) \
+ TFJ(ProxyRevocable, 2, kReceiver, kTarget, kHandler) \
+ TFJ(ProxyRevoke, 0, kReceiver) \
+ TFS(ProxyGetProperty, kProxy, kName, kReceiverValue, kOnNonExistent) \
TFS(ProxyHasProperty, kProxy, kName) \
TFS(ProxySetProperty, kProxy, kName, kValue, kReceiverValue, kLanguageMode) \
\
@@ -877,7 +901,7 @@ namespace internal {
CPP(ReflectGet) \
CPP(ReflectGetOwnPropertyDescriptor) \
CPP(ReflectGetPrototypeOf) \
- TFJ(ReflectHas, 2, kTarget, kKey) \
+ TFJ(ReflectHas, 2, kReceiver, kTarget, kKey) \
CPP(ReflectIsExtensible) \
CPP(ReflectOwnKeys) \
CPP(ReflectPreventExtensions) \
@@ -895,42 +919,43 @@ namespace internal {
CPP(RegExpCapture8Getter) \
CPP(RegExpCapture9Getter) \
/* ES #sec-regexp-pattern-flags */ \
- TFJ(RegExpConstructor, 2, kPattern, kFlags) \
- TFJ(RegExpInternalMatch, 2, kRegExp, kString) \
+ TFJ(RegExpConstructor, 2, kReceiver, kPattern, kFlags) \
+ TFJ(RegExpInternalMatch, 2, kReceiver, kRegExp, kString) \
CPP(RegExpInputGetter) \
CPP(RegExpInputSetter) \
CPP(RegExpLastMatchGetter) \
CPP(RegExpLastParenGetter) \
CPP(RegExpLeftContextGetter) \
/* ES #sec-regexp.prototype.compile */ \
- TFJ(RegExpPrototypeCompile, 2, kPattern, kFlags) \
+ TFJ(RegExpPrototypeCompile, 2, kReceiver, kPattern, kFlags) \
/* ES #sec-regexp.prototype.exec */ \
- TFJ(RegExpPrototypeExec, 1, kString) \
+ TFJ(RegExpPrototypeExec, 1, kReceiver, kString) \
/* ES #sec-get-regexp.prototype.dotAll */ \
- TFJ(RegExpPrototypeDotAllGetter, 0) \
+ TFJ(RegExpPrototypeDotAllGetter, 0, kReceiver) \
/* ES #sec-get-regexp.prototype.flags */ \
- TFJ(RegExpPrototypeFlagsGetter, 0) \
+ TFJ(RegExpPrototypeFlagsGetter, 0, kReceiver) \
/* ES #sec-get-regexp.prototype.global */ \
- TFJ(RegExpPrototypeGlobalGetter, 0) \
+ TFJ(RegExpPrototypeGlobalGetter, 0, kReceiver) \
/* ES #sec-get-regexp.prototype.ignorecase */ \
- TFJ(RegExpPrototypeIgnoreCaseGetter, 0) \
+ TFJ(RegExpPrototypeIgnoreCaseGetter, 0, kReceiver) \
/* ES #sec-regexp.prototype-@@match */ \
- TFJ(RegExpPrototypeMatch, 1, kString) \
+ TFJ(RegExpPrototypeMatch, 1, kReceiver, kString) \
/* https://tc39.github.io/proposal-string-matchall/ */ \
- TFJ(RegExpPrototypeMatchAll, 1, kString) \
+ TFJ(RegExpPrototypeMatchAll, 1, kReceiver, kString) \
/* ES #sec-get-regexp.prototype.multiline */ \
- TFJ(RegExpPrototypeMultilineGetter, 0) \
+ TFJ(RegExpPrototypeMultilineGetter, 0, kReceiver) \
/* ES #sec-regexp.prototype-@@search */ \
- TFJ(RegExpPrototypeSearch, 1, kString) \
+ TFJ(RegExpPrototypeSearch, 1, kReceiver, kString) \
/* ES #sec-get-regexp.prototype.source */ \
- TFJ(RegExpPrototypeSourceGetter, 0) \
+ TFJ(RegExpPrototypeSourceGetter, 0, kReceiver) \
/* ES #sec-get-regexp.prototype.sticky */ \
- TFJ(RegExpPrototypeStickyGetter, 0) \
+ TFJ(RegExpPrototypeStickyGetter, 0, kReceiver) \
/* ES #sec-regexp.prototype.test */ \
- TFJ(RegExpPrototypeTest, 1, kString) \
+ TFJ(RegExpPrototypeTest, 1, kReceiver, kString) \
+ TFS(RegExpPrototypeTestFast, kReceiver, kString) \
CPP(RegExpPrototypeToString) \
/* ES #sec-get-regexp.prototype.unicode */ \
- TFJ(RegExpPrototypeUnicodeGetter, 0) \
+ TFJ(RegExpPrototypeUnicodeGetter, 0, kReceiver) \
CPP(RegExpRightContextGetter) \
\
/* ES #sec-regexp.prototype-@@replace */ \
@@ -939,6 +964,7 @@ namespace internal {
TFJ(RegExpPrototypeSplit, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* RegExp helpers */ \
TFS(RegExpExecAtom, kRegExp, kString, kLastIndex, kMatchInfo) \
+ TFS(RegExpExecInternal, kRegExp, kString, kLastIndex, kMatchInfo) \
TFS(RegExpMatchFast, kReceiver, kPattern) \
TFS(RegExpPrototypeExecSlow, kReceiver, kString) \
TFS(RegExpReplace, kRegExp, kString, kReplaceValue) \
@@ -947,37 +973,38 @@ namespace internal {
\
/* RegExp String Iterator */ \
/* https://tc39.github.io/proposal-string-matchall/ */ \
- TFJ(RegExpStringIteratorPrototypeNext, 0) \
+ TFJ(RegExpStringIteratorPrototypeNext, 0, kReceiver) \
\
/* Set */ \
TFJ(SetConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
- TFJ(SetPrototypeHas, 1, kKey) \
- TFJ(SetPrototypeAdd, 1, kKey) \
- TFJ(SetPrototypeDelete, 1, kKey) \
+ TFJ(SetPrototypeHas, 1, kReceiver, kKey) \
+ TFJ(SetPrototypeAdd, 1, kReceiver, kKey) \
+ TFJ(SetPrototypeDelete, 1, kReceiver, kKey) \
CPP(SetPrototypeClear) \
/* ES #sec-set.prototype.entries */ \
- TFJ(SetPrototypeEntries, 0) \
+ TFJ(SetPrototypeEntries, 0, kReceiver) \
/* ES #sec-get-set.prototype.size */ \
- TFJ(SetPrototypeGetSize, 0) \
+ TFJ(SetPrototypeGetSize, 0, kReceiver) \
/* ES #sec-set.prototype.foreach */ \
TFJ(SetPrototypeForEach, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES #sec-set.prototype.values */ \
- TFJ(SetPrototypeValues, 0) \
+ TFJ(SetPrototypeValues, 0, kReceiver) \
/* ES #sec-%setiteratorprototype%.next */ \
- TFJ(SetIteratorPrototypeNext, 0) \
+ TFJ(SetIteratorPrototypeNext, 0, kReceiver) \
\
/* SharedArrayBuffer */ \
CPP(SharedArrayBufferPrototypeGetByteLength) \
CPP(SharedArrayBufferPrototypeSlice) \
- TFJ(AtomicsLoad, 2, kArray, kIndex) \
- TFJ(AtomicsStore, 3, kArray, kIndex, kValue) \
- TFJ(AtomicsExchange, 3, kArray, kIndex, kValue) \
- TFJ(AtomicsCompareExchange, 4, kArray, kIndex, kOldValue, kNewValue) \
- TFJ(AtomicsAdd, 3, kArray, kIndex, kValue) \
- TFJ(AtomicsSub, 3, kArray, kIndex, kValue) \
- TFJ(AtomicsAnd, 3, kArray, kIndex, kValue) \
- TFJ(AtomicsOr, 3, kArray, kIndex, kValue) \
- TFJ(AtomicsXor, 3, kArray, kIndex, kValue) \
+ TFJ(AtomicsLoad, 2, kReceiver, kArray, kIndex) \
+ TFJ(AtomicsStore, 3, kReceiver, kArray, kIndex, kValue) \
+ TFJ(AtomicsExchange, 3, kReceiver, kArray, kIndex, kValue) \
+ TFJ(AtomicsCompareExchange, 4, kReceiver, kArray, kIndex, kOldValue, \
+ kNewValue) \
+ TFJ(AtomicsAdd, 3, kReceiver, kArray, kIndex, kValue) \
+ TFJ(AtomicsSub, 3, kReceiver, kArray, kIndex, kValue) \
+ TFJ(AtomicsAnd, 3, kReceiver, kArray, kIndex, kValue) \
+ TFJ(AtomicsOr, 3, kReceiver, kArray, kIndex, kValue) \
+ TFJ(AtomicsXor, 3, kReceiver, kArray, kIndex, kValue) \
CPP(AtomicsIsLockFree) \
CPP(AtomicsWait) \
CPP(AtomicsWake) \
@@ -990,44 +1017,44 @@ namespace internal {
/* ES6 #sec-string.fromcharcode */ \
TFJ(StringFromCharCode, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.anchor */ \
- TFJ(StringPrototypeAnchor, 1, kValue) \
+ TFJ(StringPrototypeAnchor, 1, kReceiver, kValue) \
/* ES6 #sec-string.prototype.big */ \
- TFJ(StringPrototypeBig, 0) \
+ TFJ(StringPrototypeBig, 0, kReceiver) \
/* ES6 #sec-string.prototype.blink */ \
- TFJ(StringPrototypeBlink, 0) \
+ TFJ(StringPrototypeBlink, 0, kReceiver) \
/* ES6 #sec-string.prototype.bold */ \
- TFJ(StringPrototypeBold, 0) \
+ TFJ(StringPrototypeBold, 0, kReceiver) \
/* ES6 #sec-string.prototype.charat */ \
- TFJ(StringPrototypeCharAt, 1, kPosition) \
+ TFJ(StringPrototypeCharAt, 1, kReceiver, kPosition) \
/* ES6 #sec-string.prototype.charcodeat */ \
- TFJ(StringPrototypeCharCodeAt, 1, kPosition) \
+ TFJ(StringPrototypeCharCodeAt, 1, kReceiver, kPosition) \
/* ES6 #sec-string.prototype.codepointat */ \
- TFJ(StringPrototypeCodePointAt, 1, kPosition) \
+ TFJ(StringPrototypeCodePointAt, 1, kReceiver, kPosition) \
/* ES6 #sec-string.prototype.concat */ \
TFJ(StringPrototypeConcat, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.endswith */ \
CPP(StringPrototypeEndsWith) \
/* ES6 #sec-string.prototype.fontcolor */ \
- TFJ(StringPrototypeFontcolor, 1, kValue) \
+ TFJ(StringPrototypeFontcolor, 1, kReceiver, kValue) \
/* ES6 #sec-string.prototype.fontsize */ \
- TFJ(StringPrototypeFontsize, 1, kValue) \
+ TFJ(StringPrototypeFontsize, 1, kReceiver, kValue) \
/* ES6 #sec-string.prototype.fixed */ \
- TFJ(StringPrototypeFixed, 0) \
+ TFJ(StringPrototypeFixed, 0, kReceiver) \
/* ES6 #sec-string.prototype.includes */ \
TFJ(StringPrototypeIncludes, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.indexof */ \
TFJ(StringPrototypeIndexOf, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.italics */ \
- TFJ(StringPrototypeItalics, 0) \
+ TFJ(StringPrototypeItalics, 0, kReceiver) \
/* ES6 #sec-string.prototype.lastindexof */ \
CPP(StringPrototypeLastIndexOf) \
/* ES6 #sec-string.prototype.link */ \
- TFJ(StringPrototypeLink, 1, kValue) \
+ TFJ(StringPrototypeLink, 1, kReceiver, kValue) \
/* ES6 #sec-string.prototype.match */ \
- TFJ(StringPrototypeMatch, 1, kRegexp) \
+ TFJ(StringPrototypeMatch, 1, kReceiver, kRegexp) \
/* ES #sec-string.prototype.matchAll */ \
- TFJ(StringPrototypeMatchAll, 1, kRegexp) \
+ TFJ(StringPrototypeMatchAll, 1, kReceiver, kRegexp) \
/* ES6 #sec-string.prototype.localecompare */ \
CPP(StringPrototypeLocaleCompare) \
/* ES6 #sec-string.prototype.padEnd */ \
@@ -1036,46 +1063,46 @@ namespace internal {
TFJ(StringPrototypePadStart, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.repeat */ \
- TFJ(StringPrototypeRepeat, 1, kCount) \
+ TFJ(StringPrototypeRepeat, 1, kReceiver, kCount) \
/* ES6 #sec-string.prototype.replace */ \
- TFJ(StringPrototypeReplace, 2, kSearch, kReplace) \
+ TFJ(StringPrototypeReplace, 2, kReceiver, kSearch, kReplace) \
/* ES6 #sec-string.prototype.search */ \
- TFJ(StringPrototypeSearch, 1, kRegexp) \
+ TFJ(StringPrototypeSearch, 1, kReceiver, kRegexp) \
/* ES6 #sec-string.prototype.slice */ \
TFJ(StringPrototypeSlice, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.small */ \
- TFJ(StringPrototypeSmall, 0) \
+ TFJ(StringPrototypeSmall, 0, kReceiver) \
/* ES6 #sec-string.prototype.split */ \
TFJ(StringPrototypeSplit, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.strike */ \
- TFJ(StringPrototypeStrike, 0) \
+ TFJ(StringPrototypeStrike, 0, kReceiver) \
/* ES6 #sec-string.prototype.sub */ \
- TFJ(StringPrototypeSub, 0) \
+ TFJ(StringPrototypeSub, 0, kReceiver) \
/* ES6 #sec-string.prototype.substr */ \
TFJ(StringPrototypeSubstr, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.substring */ \
TFJ(StringPrototypeSubstring, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.sup */ \
- TFJ(StringPrototypeSup, 0) \
+ TFJ(StringPrototypeSup, 0, kReceiver) \
/* ES6 #sec-string.prototype.startswith */ \
CPP(StringPrototypeStartsWith) \
/* ES6 #sec-string.prototype.tostring */ \
- TFJ(StringPrototypeToString, 0) \
+ TFJ(StringPrototypeToString, 0, kReceiver) \
TFJ(StringPrototypeTrim, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
TFJ(StringPrototypeTrimEnd, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
TFJ(StringPrototypeTrimStart, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-string.prototype.valueof */ \
- TFJ(StringPrototypeValueOf, 0) \
+ TFJ(StringPrototypeValueOf, 0, kReceiver) \
/* ES6 #sec-string.raw */ \
CPP(StringRaw) \
/* ES6 #sec-string.prototype-@@iterator */ \
- TFJ(StringPrototypeIterator, 0) \
+ TFJ(StringPrototypeIterator, 0, kReceiver) \
\
/* StringIterator */ \
/* ES6 #sec-%stringiteratorprototype%.next */ \
- TFJ(StringIteratorPrototypeNext, 0) \
+ TFJ(StringIteratorPrototypeNext, 0, kReceiver) \
\
/* Symbol */ \
/* ES #sec-symbol-constructor */ \
@@ -1084,12 +1111,14 @@ namespace internal {
CPP(SymbolFor) \
/* ES6 #sec-symbol.keyfor */ \
CPP(SymbolKeyFor) \
+ /* ES #sec-symbol.prototype.description */ \
+ TFJ(SymbolPrototypeDescriptionGetter, 0, kReceiver) \
/* ES6 #sec-symbol.prototype-@@toprimitive */ \
- TFJ(SymbolPrototypeToPrimitive, 1, kHint) \
+ TFJ(SymbolPrototypeToPrimitive, 1, kReceiver, kHint) \
/* ES6 #sec-symbol.prototype.tostring */ \
- TFJ(SymbolPrototypeToString, 0) \
+ TFJ(SymbolPrototypeToString, 0, kReceiver) \
/* ES6 #sec-symbol.prototype.valueof */ \
- TFJ(SymbolPrototypeValueOf, 0) \
+ TFJ(SymbolPrototypeValueOf, 0, kReceiver) \
\
/* TypedArray */ \
TFS(IterableToList, kIterable, kIteratorFn) \
@@ -1099,22 +1128,22 @@ namespace internal {
kByteOffset) \
/* ES #sec-typedarray-constructors */ \
TFS(CreateTypedArray, kTarget, kNewTarget, kArg1, kArg2, kArg3) \
- TFJ(TypedArrayBaseConstructor, 0) \
- TFJ(TypedArrayConstructorLazyDeoptContinuation, 1, kResult) \
+ TFJ(TypedArrayBaseConstructor, 0, kReceiver) \
+ TFJ(TypedArrayConstructorLazyDeoptContinuation, 1, kReceiver, kResult) \
TFJ(TypedArrayConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
CPP(TypedArrayPrototypeBuffer) \
/* ES6 #sec-get-%typedarray%.prototype.bytelength */ \
- TFJ(TypedArrayPrototypeByteLength, 0) \
+ TFJ(TypedArrayPrototypeByteLength, 0, kReceiver) \
/* ES6 #sec-get-%typedarray%.prototype.byteoffset */ \
- TFJ(TypedArrayPrototypeByteOffset, 0) \
+ TFJ(TypedArrayPrototypeByteOffset, 0, kReceiver) \
/* ES6 #sec-get-%typedarray%.prototype.length */ \
- TFJ(TypedArrayPrototypeLength, 0) \
+ TFJ(TypedArrayPrototypeLength, 0, kReceiver) \
/* ES6 #sec-%typedarray%.prototype.entries */ \
- TFJ(TypedArrayPrototypeEntries, 0) \
+ TFJ(TypedArrayPrototypeEntries, 0, kReceiver) \
/* ES6 #sec-%typedarray%.prototype.keys */ \
- TFJ(TypedArrayPrototypeKeys, 0) \
+ TFJ(TypedArrayPrototypeKeys, 0, kReceiver) \
/* ES6 #sec-%typedarray%.prototype.values */ \
- TFJ(TypedArrayPrototypeValues, 0) \
+ TFJ(TypedArrayPrototypeValues, 0, kReceiver) \
/* ES6 #sec-%typedarray%.prototype.copywithin */ \
CPP(TypedArrayPrototypeCopyWithin) \
/* ES6 #sec-%typedarray%.prototype.fill */ \
@@ -1145,7 +1174,7 @@ namespace internal {
TFJ(TypedArrayPrototypeSubArray, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-get-%typedarray%.prototype-@@tostringtag */ \
- TFJ(TypedArrayPrototypeToStringTag, 0) \
+ TFJ(TypedArrayPrototypeToStringTag, 0, kReceiver) \
/* ES6 %TypedArray%.prototype.every */ \
TFJ(TypedArrayPrototypeEvery, \
SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
@@ -1167,34 +1196,37 @@ namespace internal {
TFJ(TypedArrayOf, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 %TypedArray%.from */ \
TFJ(TypedArrayFrom, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
- TFS(TypedArrayLoadElementAsTagged, kArray, kKind, kIndex) \
- TFS(TypedArrayStoreElementFromTagged, kArray, kKind, kIndex, kValue) \
\
/* Wasm */ \
ASM(WasmCompileLazy) \
- TFC(WasmStackGuard, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapUnreachable, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapMemOutOfBounds, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapDivByZero, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapDivUnrepresentable, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapRemByZero, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapFloatUnrepresentable, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapFuncInvalid, WasmRuntimeCall, 1) \
- TFC(ThrowWasmTrapFuncSigMismatch, WasmRuntimeCall, 1) \
+ TFC(WasmAllocateHeapNumber, AllocateHeapNumber, 1) \
+ TFC(WasmArgumentsAdaptor, ArgumentAdaptor, 1) \
+ TFC(WasmCallJavaScript, CallTrampoline, 1) \
+ TFC(WasmGrowMemory, WasmGrowMemory, 1) \
+ TFC(WasmStackGuard, NoContext, 1) \
+ TFC(WasmToNumber, TypeConversion, 1) \
+ TFS(ThrowWasmTrapUnreachable) \
+ TFS(ThrowWasmTrapMemOutOfBounds) \
+ TFS(ThrowWasmTrapDivByZero) \
+ TFS(ThrowWasmTrapDivUnrepresentable) \
+ TFS(ThrowWasmTrapRemByZero) \
+ TFS(ThrowWasmTrapFloatUnrepresentable) \
+ TFS(ThrowWasmTrapFuncInvalid) \
+ TFS(ThrowWasmTrapFuncSigMismatch) \
\
/* WeakMap */ \
TFJ(WeakMapConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
TFS(WeakMapLookupHashIndex, kTable, kKey) \
- TFJ(WeakMapGet, 1, kKey) \
- TFJ(WeakMapHas, 1, kKey) \
- TFJ(WeakMapPrototypeSet, 2, kKey, kValue) \
- TFJ(WeakMapPrototypeDelete, 1, kKey) \
+ TFJ(WeakMapGet, 1, kReceiver, kKey) \
+ TFJ(WeakMapHas, 1, kReceiver, kKey) \
+ TFJ(WeakMapPrototypeSet, 2, kReceiver, kKey, kValue) \
+ TFJ(WeakMapPrototypeDelete, 1, kReceiver, kKey) \
\
/* WeakSet */ \
TFJ(WeakSetConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
- TFJ(WeakSetHas, 1, kKey) \
- TFJ(WeakSetPrototypeAdd, 1, kValue) \
- TFJ(WeakSetPrototypeDelete, 1, kValue) \
+ TFJ(WeakSetHas, 1, kReceiver, kKey) \
+ TFJ(WeakSetPrototypeAdd, 1, kReceiver, kValue) \
+ TFJ(WeakSetPrototypeDelete, 1, kReceiver, kValue) \
\
/* WeakSet / WeakMap Helpers */ \
TFS(WeakCollectionDelete, kCollection, kKey) \
@@ -1226,27 +1258,30 @@ namespace internal {
\
/* Await (proposal-async-iteration/#await), with resume behaviour */ \
/* specific to Async Generators. Internal / Not exposed to JS code. */ \
- TFJ(AsyncGeneratorAwaitCaught, 2, kGenerator, kAwaited) \
- TFJ(AsyncGeneratorAwaitUncaught, 2, kGenerator, kAwaited) \
- TFJ(AsyncGeneratorAwaitResolveClosure, 1, kValue) \
- TFJ(AsyncGeneratorAwaitRejectClosure, 1, kValue) \
- TFJ(AsyncGeneratorYieldResolveClosure, 1, kValue) \
- TFJ(AsyncGeneratorReturnClosedResolveClosure, 1, kValue) \
- TFJ(AsyncGeneratorReturnClosedRejectClosure, 1, kValue) \
- TFJ(AsyncGeneratorReturnResolveClosure, 1, kValue) \
+ TFJ(AsyncGeneratorAwaitCaught, 2, kReceiver, kGenerator, kAwaited) \
+ TFJ(AsyncGeneratorAwaitUncaught, 2, kReceiver, kGenerator, kAwaited) \
+ TFJ(AsyncGeneratorAwaitResolveClosure, 1, kReceiver, kValue) \
+ TFJ(AsyncGeneratorAwaitRejectClosure, 1, kReceiver, kValue) \
+ TFJ(AsyncGeneratorYieldResolveClosure, 1, kReceiver, kValue) \
+ TFJ(AsyncGeneratorReturnClosedResolveClosure, 1, kReceiver, kValue) \
+ TFJ(AsyncGeneratorReturnClosedRejectClosure, 1, kReceiver, kValue) \
+ TFJ(AsyncGeneratorReturnResolveClosure, 1, kReceiver, kValue) \
\
/* Async-from-Sync Iterator */ \
\
/* %AsyncFromSyncIteratorPrototype% */ \
/* See tc39.github.io/proposal-async-iteration/ */ \
/* #sec-%asyncfromsynciteratorprototype%-object) */ \
- TFJ(AsyncFromSyncIteratorPrototypeNext, 1, kValue) \
+ TFJ(AsyncFromSyncIteratorPrototypeNext, 1, kReceiver, kValue) \
+ TFJ(AsyncFromSyncIteratorPrototypeNextOptimized, 1, kReceiver, kValue) \
/* #sec-%asyncfromsynciteratorprototype%.throw */ \
- TFJ(AsyncFromSyncIteratorPrototypeThrow, 1, kReason) \
+ TFJ(AsyncFromSyncIteratorPrototypeThrow, 1, kReceiver, kReason) \
+ TFJ(AsyncFromSyncIteratorPrototypeThrowOptimized, 1, kReceiver, kReason) \
/* #sec-%asyncfromsynciteratorprototype%.return */ \
- TFJ(AsyncFromSyncIteratorPrototypeReturn, 1, kValue) \
+ TFJ(AsyncFromSyncIteratorPrototypeReturn, 1, kReceiver, kValue) \
+ TFJ(AsyncFromSyncIteratorPrototypeReturnOptimized, 1, kReceiver, kValue) \
/* #sec-async-iterator-value-unwrap-functions */ \
- TFJ(AsyncIteratorValueUnwrap, 1, kValue) \
+ TFJ(AsyncIteratorValueUnwrap, 1, kReceiver, kValue) \
\
/* CEntry */ \
ASM(CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit) \
@@ -1260,50 +1295,59 @@ namespace internal {
ASM(CEntry_Return2_SaveFPRegs_ArgvOnStack_NoBuiltinExit) \
ASM(CEntry_Return2_SaveFPRegs_ArgvOnStack_BuiltinExit) \
\
- /* StringAdd */ \
+ /* String helpers */ \
TFS(StringAdd_CheckNone_NotTenured, kLeft, kRight) \
TFS(StringAdd_CheckNone_Tenured, kLeft, kRight) \
TFS(StringAdd_ConvertLeft_NotTenured, kLeft, kRight) \
TFS(StringAdd_ConvertRight_NotTenured, kLeft, kRight) \
+ TFS(SubString, kString, kFrom, kTo) \
\
/* Miscellaneous */ \
+ ASM(CallApiCallback_Argc0) \
+ ASM(CallApiCallback_Argc1) \
+ ASM(CallApiGetter) \
ASM(DoubleToI) \
TFC(GetProperty, GetProperty, 1) \
- ASM(MathPowInternal) \
- \
- /* Trace */ \
- CPP(IsTraceCategoryEnabled) \
- CPP(Trace)
+ ASM(MathPowInternal)
#ifdef V8_INTL_SUPPORT
-#define BUILTIN_LIST(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
- BUILTIN_LIST_BASE(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
- BUILTIN_LIST_FROM_DSL(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
- \
- TFS(StringToLowerCaseIntl, kString) \
- /* ES #sec-string.prototype.tolowercase */ \
- TFJ(StringPrototypeToLowerCaseIntl, 0) \
- /* ES #sec-string.prototype.touppercase */ \
- CPP(StringPrototypeToUpperCaseIntl) \
- /* ES #sec-string.prototype.normalize */ \
- CPP(StringPrototypeNormalizeIntl) \
- /* ecma402 #sec-intl.numberformat.prototype.formattoparts */ \
- CPP(NumberFormatPrototypeFormatToParts) \
- /* ecma402 #sec-intl.datetimeformat.prototype.formattoparts */ \
- CPP(DateTimeFormatPrototypeFormatToParts) \
- /* ecma402 #new proposal */ \
- CPP(LocaleConstructor) \
- CPP(LocalePrototypeLanguage) \
- CPP(LocalePrototypeScript) \
- CPP(LocalePrototypeRegion) \
- CPP(LocalePrototypeBaseName) \
- CPP(LocalePrototypeCalendar) \
- CPP(LocalePrototypeCaseFirst) \
- CPP(LocalePrototypeCollation) \
- CPP(LocalePrototypeHourCycle) \
- CPP(LocalePrototypeNumeric) \
- CPP(LocalePrototypeNumberingSystem) \
- CPP(LocalePrototypeToString)
+#define BUILTIN_LIST(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
+ BUILTIN_LIST_BASE(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
+ BUILTIN_LIST_FROM_DSL(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
+ \
+ TFS(StringToLowerCaseIntl, kString) \
+ /* ES #sec-string.prototype.tolowercase */ \
+ TFJ(StringPrototypeToLowerCaseIntl, 0, kReceiver) \
+ /* ES #sec-string.prototype.touppercase */ \
+ CPP(StringPrototypeToUpperCaseIntl) \
+ /* ES #sec-string.prototype.normalize */ \
+ CPP(StringPrototypeNormalizeIntl) \
+ /* ecma402 #sec-intl.numberformat.prototype.formattoparts */ \
+ CPP(NumberFormatPrototypeFormatToParts) \
+ /* ecma402 #sec-intl.datetimeformat.prototype.formattoparts */ \
+ CPP(DateTimeFormatPrototypeFormatToParts) \
+ /* ecma402 #new proposal */ \
+ /* ecma402 #sec-intl-locale-constructor */ \
+ CPP(LocaleConstructor) \
+ CPP(LocalePrototypeLanguage) \
+ CPP(LocalePrototypeScript) \
+ CPP(LocalePrototypeRegion) \
+ CPP(LocalePrototypeBaseName) \
+ CPP(LocalePrototypeCalendar) \
+ CPP(LocalePrototypeCaseFirst) \
+ CPP(LocalePrototypeCollation) \
+ CPP(LocalePrototypeHourCycle) \
+ CPP(LocalePrototypeNumeric) \
+ CPP(LocalePrototypeNumberingSystem) \
+ CPP(LocalePrototypeToString) \
+ /* ecma402 #sec-number-format-functions */ \
+ CPP(NumberFormatInternalFormatNumber) \
+ /* ecma402 #sec-intl.numberformat.prototype.format */ \
+ CPP(NumberFormatPrototypeFormatNumber) \
+ /* ecma402 #sec-intl-relativetimeformat-constructor */ \
+ CPP(RelativeTimeFormatConstructor) \
+ /* ecma402 #sec-intl.relativetimeformat.prototype.resolvedoptions */ \
+ CPP(RelativeTimeFormatPrototypeResolvedOptions)
#else
#define BUILTIN_LIST(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
BUILTIN_LIST_BASE(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
@@ -1326,9 +1370,14 @@ namespace internal {
#define BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(V) \
V(AsyncFromSyncIteratorPrototypeNext) \
V(AsyncFromSyncIteratorPrototypeReturn) \
+ V(AsyncFromSyncIteratorPrototypeNextOptimized) \
+ V(AsyncFromSyncIteratorPrototypeThrowOptimized) \
+ V(AsyncFromSyncIteratorPrototypeReturnOptimized) \
V(AsyncFromSyncIteratorPrototypeThrow) \
V(AsyncFunctionAwaitCaught) \
+ V(AsyncFunctionAwaitCaughtOptimized) \
V(AsyncFunctionAwaitUncaught) \
+ V(AsyncFunctionAwaitUncaughtOptimized) \
V(AsyncGeneratorResolve) \
V(AsyncGeneratorAwaitCaught) \
V(AsyncGeneratorAwaitUncaught) \