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.h120
1 files changed, 91 insertions, 29 deletions
diff --git a/deps/v8/src/builtins/builtins-definitions.h b/deps/v8/src/builtins/builtins-definitions.h
index 2d7c780c70..62765b802f 100644
--- a/deps/v8/src/builtins/builtins-definitions.h
+++ b/deps/v8/src/builtins/builtins-definitions.h
@@ -5,6 +5,8 @@
#ifndef V8_BUILTINS_BUILTINS_DEFINITIONS_H_
#define V8_BUILTINS_BUILTINS_DEFINITIONS_H_
+#include "src/interpreter/bytecodes.h"
+
// include generated header
#include "torque-generated/builtin-definitions-from-dsl.h"
@@ -23,6 +25,8 @@ namespace internal {
// Args: name, interface descriptor, return_size
// TFH: Handlers in Turbofan, with CodeStub linkage.
// Args: name, interface descriptor
+// BCH: Bytecode Handlers, with bytecode dispatch linkage.
+// Args: name
// ASM: Builtin in platform-dependent assembly.
// Args: name
@@ -186,6 +190,7 @@ namespace internal {
TFC(NonNumberToNumber, TypeConversion, 1) \
TFC(NonNumberToNumeric, TypeConversion, 1) \
TFC(ToNumber, TypeConversion, 1) \
+ TFC(ToNumberConvertBigInt, TypeConversion, 1) \
TFC(ToNumeric, TypeConversion, 1) \
TFC(NumberToString, TypeConversion, 1) \
TFC(ToString, TypeConversion, 1) \
@@ -219,7 +224,7 @@ namespace internal {
TFC(RunMicrotasks, RunMicrotasks, 1) \
\
/* Object property helpers */ \
- TFS(HasProperty, kKey, kObject) \
+ TFS(HasProperty, kObject, kKey) \
TFS(DeleteProperty, kObject, kKey, kLanguageMode) \
\
/* Abort */ \
@@ -282,6 +287,8 @@ namespace internal {
CPP(ArrayConcat) \
/* ES6 #sec-array.isarray */ \
TFJ(ArrayIsArray, 1, kReceiver, kArg) \
+ /* ES6 #sec-array.prototype.fill */ \
+ CPP(ArrayPrototypeFill) \
/* ES6 #sec-array.from */ \
TFJ(ArrayFrom, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ES6 #sec-array.of */ \
@@ -637,6 +644,7 @@ namespace internal {
TFH(LoadGlobalICInsideTypeof, LoadGlobalWithVector) \
TFH(LoadGlobalICTrampoline, LoadGlobal) \
TFH(LoadGlobalICInsideTypeofTrampoline, LoadGlobal) \
+ TFH(CloneObjectIC, CloneObjectWithVector) \
\
/* Map */ \
TFS(FindOrderedHashMapEntry, kTable, kKey) \
@@ -1129,7 +1137,7 @@ namespace internal {
/* ES #sec-typedarray-constructors */ \
TFS(CreateTypedArray, kTarget, kNewTarget, kArg1, kArg2, kArg3) \
TFJ(TypedArrayBaseConstructor, 0, kReceiver) \
- TFJ(TypedArrayConstructorLazyDeoptContinuation, 1, kReceiver, kResult) \
+ TFJ(GenericConstructorLazyDeoptContinuation, 1, kReceiver, kResult) \
TFJ(TypedArrayConstructor, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
CPP(TypedArrayPrototypeBuffer) \
/* ES6 #sec-get-%typedarray%.prototype.bytelength */ \
@@ -1207,6 +1215,7 @@ namespace internal {
TFC(WasmToNumber, TypeConversion, 1) \
TFS(ThrowWasmTrapUnreachable) \
TFS(ThrowWasmTrapMemOutOfBounds) \
+ TFS(ThrowWasmTrapUnalignedAccess) \
TFS(ThrowWasmTrapDivByZero) \
TFS(ThrowWasmTrapDivUnrepresentable) \
TFS(ThrowWasmTrapRemByZero) \
@@ -1308,6 +1317,7 @@ namespace internal {
ASM(CallApiGetter) \
ASM(DoubleToI) \
TFC(GetProperty, GetProperty, 1) \
+ TFS(SetProperty, kReceiver, kKey, kValue) \
ASM(MathPowInternal) \
\
/* Trace */ \
@@ -1315,10 +1325,9 @@ namespace internal {
CPP(Trace)
#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) \
- \
+#define BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
+ /* ecma402 #sec-intl.collator */ \
+ CPP(CollatorConstructor) \
TFS(StringToLowerCaseIntl, kString) \
/* ES #sec-string.prototype.tolowercase */ \
TFJ(StringPrototypeToLowerCaseIntl, 0, kReceiver) \
@@ -1331,6 +1340,16 @@ namespace internal {
/* ecma402 #sec-intl.datetimeformat.prototype.formattoparts */ \
CPP(DateTimeFormatPrototypeFormatToParts) \
/* ecma402 #new proposal */ \
+ /* ecma402 #sec-intl-listformat-constructor */ \
+ CPP(ListFormatConstructor) \
+ /* ecma402 #sec-intl.listformat.prototype.resolvedoptions */ \
+ CPP(ListFormatPrototypeResolvedOptions) \
+ /* ecma402 #sec-intl-list-format.prototype.format */ \
+ TFJ(ListFormatPrototypeFormat, \
+ SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
+ /* ecma402 #sec-intl-list-format.prototype.formattoparts */ \
+ TFJ(ListFormatPrototypeFormatToParts, \
+ SharedFunctionInfo::kDontAdaptArgumentsSentinel) \
/* ecma402 #sec-intl-locale-constructor */ \
CPP(LocaleConstructor) \
CPP(LocalePrototypeLanguage) \
@@ -1344,31 +1363,64 @@ namespace internal {
CPP(LocalePrototypeNumeric) \
CPP(LocalePrototypeNumberingSystem) \
CPP(LocalePrototypeToString) \
+ /* ecma402 #sec-Intl.Locale.prototype.maximize */ \
+ CPP(LocalePrototypeMaximize) \
+ /* ecma402 #sec-Intl.Locale.prototype.minimize */ \
+ CPP(LocalePrototypeMinimize) \
/* ecma402 #sec-number-format-functions */ \
CPP(NumberFormatInternalFormatNumber) \
/* ecma402 #sec-intl.numberformat.prototype.format */ \
CPP(NumberFormatPrototypeFormatNumber) \
- /* ecma402 #sec-intl-relativetimeformat-constructor */ \
+ /* ecma402 #sec-datetime-format-functions */ \
+ CPP(DateTimeFormatInternalFormat) \
+ /* ecma402 #sec-intl.datetimeformat.prototype.format */ \
+ CPP(DateTimeFormatPrototypeFormat) \
+ /* ecma402 #sec-intl.pluralrules */ \
+ CPP(PluralRulesConstructor) \
+ /* ecma402 #sec-intl.RelativeTimeFormat.constructor */ \
CPP(RelativeTimeFormatConstructor) \
- /* ecma402 #sec-intl.relativetimeformat.prototype.resolvedoptions */ \
- CPP(RelativeTimeFormatPrototypeResolvedOptions)
+ /* ecma402 #sec-intl.RelativeTimeFormat.prototype.resolvedOptions */ \
+ CPP(RelativeTimeFormatPrototypeResolvedOptions) \
+ /* ecma402 #sec-intl.RelativeTimeFormat.prototype.format */ \
+ CPP(RelativeTimeFormatPrototypeFormat) \
+ /* ecma402 #sec-intl.RelativeTimeFormat.prototype.formatToParts */ \
+ CPP(RelativeTimeFormatPrototypeFormatToParts) \
+ /* ecma402 #sup-string.prototype.tolocalelowercase */ \
+ CPP(StringPrototypeToLocaleLowerCase) \
+ /* ecma402 #sup-string.prototype.tolocaleuppercase */ \
+ CPP(StringPrototypeToLocaleUpperCase) \
+ /* ecma402 #sec-intl.collator.prototype.compare */ \
+ CPP(CollatorPrototypeCompare) \
+ /* ecma 402 #sec-collator-compare-functions*/ \
+ CPP(CollatorInternalCompare) \
+ CPP(BreakIteratorInternalAdoptText) \
+ CPP(BreakIteratorPrototypeAdoptText)
#else
-#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) \
- \
- /* no-op fallback version */ \
- CPP(StringPrototypeNormalize) \
- /* same as toLowercase; fallback version */ \
- CPP(StringPrototypeToLocaleLowerCase) \
- /* same as toUppercase; fallback version */ \
- CPP(StringPrototypeToLocaleUpperCase) \
- /* (obsolete) Unibrow version */ \
- CPP(StringPrototypeToLowerCase) \
- /* (obsolete) Unibrow version */ \
+#define BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
+ /* no-op fallback version */ \
+ CPP(StringPrototypeNormalize) \
+ /* same as toLowercase; fallback version */ \
+ CPP(StringPrototypeToLocaleLowerCase) \
+ /* same as toUppercase; fallback version */ \
+ CPP(StringPrototypeToLocaleUpperCase) \
+ /* (obsolete) Unibrow version */ \
+ CPP(StringPrototypeToLowerCase) \
+ /* (obsolete) Unibrow version */ \
CPP(StringPrototypeToUpperCase)
#endif // V8_INTL_SUPPORT
+#ifdef V8_EMBEDDED_BYTECODE_HANDLERS
+#define BUILTIN_LIST_BYTECODE_HANDLERS(BCH) BYTECODE_LIST(BCH)
+#else
+#define BUILTIN_LIST_BYTECODE_HANDLERS(BCH)
+#endif // V8_EMBEDDED_BYTECODE_HANDLERS
+
+#define BUILTIN_LIST(CPP, API, TFJ, TFC, TFS, TFH, BCH, ASM) \
+ BUILTIN_LIST_BASE(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
+ BUILTIN_LIST_FROM_DSL(CPP, API, TFJ, TFC, TFS, TFH, ASM) \
+ BUILTIN_LIST_INTL(CPP, TFJ, TFS) \
+ BUILTIN_LIST_BYTECODE_HANDLERS(BCH)
+
// The exception thrown in the following builtins are caught
// internally and result in a promise rejection.
#define BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(V) \
@@ -1392,33 +1444,43 @@ namespace internal {
V(PromiseRace) \
V(ResolvePromise)
+// Convenience macro listing all wasm runtime stubs. Note that the first few
+// elements of the list coincide with {compiler::TrapId}, order matters.
+#define WASM_RUNTIME_STUB_LIST(V, VTRAP) \
+ FOREACH_WASM_TRAPREASON(VTRAP) \
+ V(WasmAllocateHeapNumber) \
+ V(WasmArgumentsAdaptor) \
+ V(WasmCallJavaScript) \
+ V(WasmGrowMemory) \
+ V(WasmStackGuard) \
+ V(WasmToNumber) \
+ V(DoubleToI)
+
// The exception thrown in the following builtins are caught internally and will
// not be propagated further or re-thrown
#define BUILTIN_EXCEPTION_CAUGHT_PREDICTION_LIST(V) V(PromiseRejectReactionJob)
#define IGNORE_BUILTIN(...)
-#define BUILTIN_LIST_ALL(V) BUILTIN_LIST(V, V, V, V, V, V, V)
-
#define BUILTIN_LIST_C(V) \
BUILTIN_LIST(V, V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
- IGNORE_BUILTIN, IGNORE_BUILTIN)
+ IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
#define BUILTIN_LIST_A(V) \
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
- IGNORE_BUILTIN, IGNORE_BUILTIN, V)
+ IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, V)
#define BUILTIN_LIST_TFS(V) \
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
- V, IGNORE_BUILTIN, IGNORE_BUILTIN)
+ V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
#define BUILTIN_LIST_TFJ(V) \
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, V, IGNORE_BUILTIN, \
- IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
+ IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
#define BUILTIN_LIST_TFC(V) \
BUILTIN_LIST(IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, V, \
- IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
+ IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
} // namespace internal
} // namespace v8