OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_BUILTINS_BUILTINS_H_ | 5 #ifndef V8_BUILTINS_BUILTINS_H_ |
6 #define V8_BUILTINS_BUILTINS_H_ | 6 #define V8_BUILTINS_BUILTINS_H_ |
7 | 7 |
8 #include "src/base/flags.h" | 8 #include "src/base/flags.h" |
9 #include "src/globals.h" | 9 #include "src/globals.h" |
10 | 10 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 // Args: name, arguments count, explicit argument names... | 44 // Args: name, arguments count, explicit argument names... |
45 // TFS: Builtin in Turbofan, with CodeStub linkage. | 45 // TFS: Builtin in Turbofan, with CodeStub linkage. |
46 // Args: name, code kind, extra IC state, interface descriptor, return_size | 46 // Args: name, code kind, extra IC state, interface descriptor, return_size |
47 // ASM: Builtin in platform-dependent assembly. | 47 // ASM: Builtin in platform-dependent assembly. |
48 // Args: name | 48 // Args: name |
49 // ASH: Handlers implemented in platform-dependent assembly. | 49 // ASH: Handlers implemented in platform-dependent assembly. |
50 // Args: name, code kind, extra IC state | 50 // Args: name, code kind, extra IC state |
51 // DBG: Builtin in platform-dependent assembly, used by the debugger. | 51 // DBG: Builtin in platform-dependent assembly, used by the debugger. |
52 // Args: name | 52 // Args: name |
53 | 53 |
54 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ | 54 #define BUILTIN_LIST_BASE(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
55 ASM(Abort) \ | 55 ASM(Abort) \ |
56 /* Code aging */ \ | 56 /* Code aging */ \ |
57 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ | 57 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ |
58 \ | 58 \ |
59 /* Declared first for dependency reasons */ \ | 59 /* Declared first for dependency reasons */ \ |
60 ASM(CompileLazy) \ | 60 ASM(CompileLazy) \ |
61 TFS(ToObject, BUILTIN, kNoExtraICState, TypeConversion, 1) \ | 61 TFS(ToObject, BUILTIN, kNoExtraICState, TypeConversion, 1) \ |
62 TFS(FastNewObject, BUILTIN, kNoExtraICState, FastNewObject, 1) \ | 62 TFS(FastNewObject, BUILTIN, kNoExtraICState, FastNewObject, 1) \ |
63 TFS(HasProperty, BUILTIN, kNoExtraICState, HasProperty, 1) \ | 63 TFS(HasProperty, BUILTIN, kNoExtraICState, HasProperty, 1) \ |
64 \ | 64 \ |
(...skipping 771 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
836 /* ES6 #sec-string.prototype.substring */ \ | 836 /* ES6 #sec-string.prototype.substring */ \ |
837 TFJ(StringPrototypeSubstring, 2, kStart, kEnd) \ | 837 TFJ(StringPrototypeSubstring, 2, kStart, kEnd) \ |
838 /* ES6 #sec-string.prototype.startswith */ \ | 838 /* ES6 #sec-string.prototype.startswith */ \ |
839 CPP(StringPrototypeStartsWith) \ | 839 CPP(StringPrototypeStartsWith) \ |
840 /* ES6 #sec-string.prototype.tostring */ \ | 840 /* ES6 #sec-string.prototype.tostring */ \ |
841 TFJ(StringPrototypeToString, 0) \ | 841 TFJ(StringPrototypeToString, 0) \ |
842 /* ES #sec-string.prototype.tolocalelowercase */ \ | 842 /* ES #sec-string.prototype.tolocalelowercase */ \ |
843 CPP(StringPrototypeToLocaleLowerCase) \ | 843 CPP(StringPrototypeToLocaleLowerCase) \ |
844 /* ES #sec-string.prototype.tolocaleuppercase */ \ | 844 /* ES #sec-string.prototype.tolocaleuppercase */ \ |
845 CPP(StringPrototypeToLocaleUpperCase) \ | 845 CPP(StringPrototypeToLocaleUpperCase) \ |
846 /* ES #sec-string.prototype.tolowercase */ \ | 846 /* (obsolete) Unibrow version */ \ |
847 CPP(StringPrototypeToLowerCase) \ | 847 CPP(StringPrototypeToLowerCase) \ |
848 /* ES #sec-string.prototype.touppercase */ \ | 848 /* (obsolete) Unibrow version */ \ |
849 CPP(StringPrototypeToUpperCase) \ | 849 CPP(StringPrototypeToUpperCase) \ |
850 CPP(StringPrototypeTrim) \ | 850 CPP(StringPrototypeTrim) \ |
851 CPP(StringPrototypeTrimLeft) \ | 851 CPP(StringPrototypeTrimLeft) \ |
852 CPP(StringPrototypeTrimRight) \ | 852 CPP(StringPrototypeTrimRight) \ |
853 /* ES6 #sec-string.prototype.valueof */ \ | 853 /* ES6 #sec-string.prototype.valueof */ \ |
854 TFJ(StringPrototypeValueOf, 0) \ | 854 TFJ(StringPrototypeValueOf, 0) \ |
855 /* ES6 #sec-string.prototype-@@iterator */ \ | 855 /* ES6 #sec-string.prototype-@@iterator */ \ |
856 TFJ(StringPrototypeIterator, 0) \ | 856 TFJ(StringPrototypeIterator, 0) \ |
857 \ | 857 \ |
858 /* StringIterator */ \ | 858 /* StringIterator */ \ |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
927 /* See tc39.github.io/proposal-async-iteration/ */ \ | 927 /* See tc39.github.io/proposal-async-iteration/ */ \ |
928 /* #sec-%asyncfromsynciteratorprototype%-object) */ \ | 928 /* #sec-%asyncfromsynciteratorprototype%-object) */ \ |
929 TFJ(AsyncFromSyncIteratorPrototypeNext, 1, kValue) \ | 929 TFJ(AsyncFromSyncIteratorPrototypeNext, 1, kValue) \ |
930 /* #sec-%asyncfromsynciteratorprototype%.throw */ \ | 930 /* #sec-%asyncfromsynciteratorprototype%.throw */ \ |
931 TFJ(AsyncFromSyncIteratorPrototypeThrow, 1, kReason) \ | 931 TFJ(AsyncFromSyncIteratorPrototypeThrow, 1, kReason) \ |
932 /* #sec-%asyncfromsynciteratorprototype%.return */ \ | 932 /* #sec-%asyncfromsynciteratorprototype%.return */ \ |
933 TFJ(AsyncFromSyncIteratorPrototypeReturn, 1, kValue) \ | 933 TFJ(AsyncFromSyncIteratorPrototypeReturn, 1, kValue) \ |
934 /* #sec-async-iterator-value-unwrap-functions */ \ | 934 /* #sec-async-iterator-value-unwrap-functions */ \ |
935 TFJ(AsyncIteratorValueUnwrap, 1, kValue) | 935 TFJ(AsyncIteratorValueUnwrap, 1, kValue) |
936 | 936 |
| 937 #ifdef V8_I18N_SUPPORT |
| 938 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
| 939 BUILTIN_LIST_BASE(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
| 940 \ |
| 941 /* ES #sec-string.prototype.tolowercase */ \ |
| 942 CPP(StringPrototypeToLowerCaseI18N) \ |
| 943 /* ES #sec-string.prototype.touppercase */ \ |
| 944 CPP(StringPrototypeToUpperCaseI18N) |
| 945 #else |
| 946 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
| 947 BUILTIN_LIST_BASE(CPP, API, TFJ, TFS, ASM, ASH, DBG) |
| 948 #endif // V8_I18N_SUPPORT |
| 949 |
937 #define BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(V) \ | 950 #define BUILTIN_PROMISE_REJECTION_PREDICTION_LIST(V) \ |
938 V(AsyncFromSyncIteratorPrototypeNext) \ | 951 V(AsyncFromSyncIteratorPrototypeNext) \ |
939 V(AsyncFromSyncIteratorPrototypeReturn) \ | 952 V(AsyncFromSyncIteratorPrototypeReturn) \ |
940 V(AsyncFromSyncIteratorPrototypeThrow) \ | 953 V(AsyncFromSyncIteratorPrototypeThrow) \ |
941 V(AsyncFunctionAwaitCaught) \ | 954 V(AsyncFunctionAwaitCaught) \ |
942 V(AsyncFunctionAwaitUncaught) \ | 955 V(AsyncFunctionAwaitUncaught) \ |
943 V(PromiseConstructor) \ | 956 V(PromiseConstructor) \ |
944 V(PromiseHandle) \ | 957 V(PromiseHandle) \ |
945 V(PromiseResolve) \ | 958 V(PromiseResolve) \ |
946 V(PromiseResolveClosure) \ | 959 V(PromiseResolveClosure) \ |
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1099 | 1112 |
1100 friend class Isolate; | 1113 friend class Isolate; |
1101 | 1114 |
1102 DISALLOW_COPY_AND_ASSIGN(Builtins); | 1115 DISALLOW_COPY_AND_ASSIGN(Builtins); |
1103 }; | 1116 }; |
1104 | 1117 |
1105 } // namespace internal | 1118 } // namespace internal |
1106 } // namespace v8 | 1119 } // namespace v8 |
1107 | 1120 |
1108 #endif // V8_BUILTINS_BUILTINS_H_ | 1121 #endif // V8_BUILTINS_BUILTINS_H_ |
OLD | NEW |