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/handles.h" | 9 #include "src/handles.h" |
10 | 10 |
(...skipping 27 matching lines...) Expand all Loading... |
38 // TFJ: Builtin in Turbofan, with JS linkage (callable as Javascript function). | 38 // TFJ: Builtin in Turbofan, with JS linkage (callable as Javascript function). |
39 // Args: name, arguments count | 39 // Args: name, arguments count |
40 // TFS: Builtin in Turbofan, with CodeStub linkage. | 40 // TFS: Builtin in Turbofan, with CodeStub linkage. |
41 // Args: name, code kind, extra IC state, interface descriptor | 41 // Args: name, code kind, extra IC state, interface descriptor |
42 // ASM: Builtin in platform-dependent assembly. | 42 // ASM: Builtin in platform-dependent assembly. |
43 // Args: name | 43 // Args: name |
44 // ASH: Handlers implemented in platform-dependent assembly. | 44 // ASH: Handlers implemented in platform-dependent assembly. |
45 // Args: name, code kind, extra IC state | 45 // Args: name, code kind, extra IC state |
46 // DBG: Builtin in platform-dependent assembly, used by the debugger. | 46 // DBG: Builtin in platform-dependent assembly, used by the debugger. |
47 // Args: name | 47 // Args: name |
48 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ | 48 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
49 ASM(Abort) \ | 49 ASM(Abort) \ |
50 /* Code aging */ \ | 50 /* Code aging */ \ |
51 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ | 51 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ |
52 \ | 52 \ |
53 TFS(ToObject, BUILTIN, kNoExtraICState, TypeConversion) \ | 53 TFS(ToObject, BUILTIN, kNoExtraICState, TypeConversion) \ |
54 \ | 54 \ |
55 /* Calls */ \ | 55 /* Calls */ \ |
56 ASM(ArgumentsAdaptorTrampoline) \ | 56 ASM(ArgumentsAdaptorTrampoline) \ |
57 /* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */ \ | 57 /* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */ \ |
58 ASM(CallFunction_ReceiverIsNullOrUndefined) \ | 58 ASM(CallFunction_ReceiverIsNullOrUndefined) \ |
59 ASM(CallFunction_ReceiverIsNotNullOrUndefined) \ | 59 ASM(CallFunction_ReceiverIsNotNullOrUndefined) \ |
60 ASM(CallFunction_ReceiverIsAny) \ | 60 ASM(CallFunction_ReceiverIsAny) \ |
61 ASM(TailCallFunction_ReceiverIsNullOrUndefined) \ | 61 ASM(TailCallFunction_ReceiverIsNullOrUndefined) \ |
62 ASM(TailCallFunction_ReceiverIsNotNullOrUndefined) \ | 62 ASM(TailCallFunction_ReceiverIsNotNullOrUndefined) \ |
63 ASM(TailCallFunction_ReceiverIsAny) \ | 63 ASM(TailCallFunction_ReceiverIsAny) \ |
64 /* ES6 section 9.4.1.1 [[Call]] ( thisArgument, argumentsList) */ \ | 64 /* ES6 section 9.4.1.1 [[Call]] ( thisArgument, argumentsList) */ \ |
65 ASM(CallBoundFunction) \ | 65 ASM(CallBoundFunction) \ |
66 ASM(TailCallBoundFunction) \ | 66 ASM(TailCallBoundFunction) \ |
67 /* ES6 section 7.3.12 Call(F, V, [argumentsList]) */ \ | 67 /* ES6 section 7.3.12 Call(F, V, [argumentsList]) */ \ |
68 ASM(Call_ReceiverIsNullOrUndefined) \ | 68 ASM(Call_ReceiverIsNullOrUndefined) \ |
69 ASM(Call_ReceiverIsNotNullOrUndefined) \ | 69 ASM(Call_ReceiverIsNotNullOrUndefined) \ |
70 ASM(Call_ReceiverIsAny) \ | 70 ASM(Call_ReceiverIsAny) \ |
71 ASM(TailCall_ReceiverIsNullOrUndefined) \ | 71 ASM(TailCall_ReceiverIsNullOrUndefined) \ |
72 ASM(TailCall_ReceiverIsNotNullOrUndefined) \ | 72 ASM(TailCall_ReceiverIsNotNullOrUndefined) \ |
73 ASM(TailCall_ReceiverIsAny) \ | 73 ASM(TailCall_ReceiverIsAny) \ |
74 \ | 74 \ |
75 /* Construct */ \ | 75 /* Construct */ \ |
76 /* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */ \ | 76 /* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */ \ |
77 ASM(ConstructFunction) \ | 77 ASM(ConstructFunction) \ |
78 /* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */ \ | 78 /* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */ \ |
79 ASM(ConstructBoundFunction) \ | 79 ASM(ConstructBoundFunction) \ |
80 ASM(ConstructedNonConstructable) \ | 80 ASM(ConstructedNonConstructable) \ |
81 /* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \ | 81 /* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \ |
82 ASM(ConstructProxy) \ | 82 ASM(ConstructProxy) \ |
83 /* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */ \ | 83 /* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */ \ |
84 ASM(Construct) \ | 84 ASM(Construct) \ |
85 ASM(JSConstructStubApi) \ | 85 ASM(JSConstructStubApi) \ |
86 ASM(JSConstructStubGeneric) \ | 86 ASM(JSConstructStubGeneric) \ |
87 ASM(JSBuiltinsConstructStub) \ | 87 ASM(JSBuiltinsConstructStub) \ |
88 ASM(JSBuiltinsConstructStubForDerived) \ | 88 ASM(JSBuiltinsConstructStubForDerived) \ |
89 \ | 89 \ |
90 /* Apply and entries */ \ | 90 /* Apply and entries */ \ |
91 ASM(Apply) \ | 91 ASM(Apply) \ |
92 ASM(JSEntryTrampoline) \ | 92 ASM(JSEntryTrampoline) \ |
93 ASM(JSConstructEntryTrampoline) \ | 93 ASM(JSConstructEntryTrampoline) \ |
94 ASM(ResumeGeneratorTrampoline) \ | 94 ASM(ResumeGeneratorTrampoline) \ |
95 \ | 95 \ |
96 /* Stack and interrupt check */ \ | 96 /* Stack and interrupt check */ \ |
97 ASM(InterruptCheck) \ | 97 ASM(InterruptCheck) \ |
98 ASM(StackCheck) \ | 98 ASM(StackCheck) \ |
99 \ | 99 \ |
100 /* String helpers */ \ | 100 /* String helpers */ \ |
101 TFS(StringEqual, BUILTIN, kNoExtraICState, Compare) \ | 101 TFS(StringEqual, BUILTIN, kNoExtraICState, Compare) \ |
102 TFS(StringNotEqual, BUILTIN, kNoExtraICState, Compare) \ | 102 TFS(StringNotEqual, BUILTIN, kNoExtraICState, Compare) \ |
103 TFS(StringLessThan, BUILTIN, kNoExtraICState, Compare) \ | 103 TFS(StringLessThan, BUILTIN, kNoExtraICState, Compare) \ |
104 TFS(StringLessThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ | 104 TFS(StringLessThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ |
105 TFS(StringGreaterThan, BUILTIN, kNoExtraICState, Compare) \ | 105 TFS(StringGreaterThan, BUILTIN, kNoExtraICState, Compare) \ |
106 TFS(StringGreaterThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ | 106 TFS(StringGreaterThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ |
107 \ | 107 \ |
108 /* Interpreter */ \ | 108 /* Interpreter */ \ |
109 ASM(InterpreterEntryTrampoline) \ | 109 ASM(InterpreterEntryTrampoline) \ |
110 ASM(InterpreterPushArgsAndCall) \ | 110 ASM(InterpreterPushArgsAndCall) \ |
111 ASM(InterpreterPushArgsAndCallFunction) \ | 111 ASM(InterpreterPushArgsAndCallFunction) \ |
112 ASM(InterpreterPushArgsAndTailCall) \ | 112 ASM(InterpreterPushArgsAndTailCall) \ |
113 ASM(InterpreterPushArgsAndTailCallFunction) \ | 113 ASM(InterpreterPushArgsAndTailCallFunction) \ |
114 ASM(InterpreterPushArgsAndConstruct) \ | 114 ASM(InterpreterPushArgsAndConstruct) \ |
115 ASM(InterpreterPushArgsAndConstructFunction) \ | 115 ASM(InterpreterPushArgsAndConstructFunction) \ |
116 ASM(InterpreterPushArgsAndConstructArray) \ | 116 ASM(InterpreterPushArgsAndConstructArray) \ |
117 ASM(InterpreterEnterBytecodeAdvance) \ | 117 ASM(InterpreterEnterBytecodeAdvance) \ |
118 ASM(InterpreterEnterBytecodeDispatch) \ | 118 ASM(InterpreterEnterBytecodeDispatch) \ |
119 ASM(InterpreterOnStackReplacement) \ | 119 ASM(InterpreterOnStackReplacement) \ |
120 \ | 120 \ |
121 /* Code life-cycle */ \ | 121 /* Code life-cycle */ \ |
122 ASM(CompileLazy) \ | 122 ASM(CompileLazy) \ |
123 ASM(CompileBaseline) \ | 123 ASM(CompileBaseline) \ |
124 ASM(CompileOptimized) \ | 124 ASM(CompileOptimized) \ |
125 ASM(CompileOptimizedConcurrent) \ | 125 ASM(CompileOptimizedConcurrent) \ |
126 ASM(InOptimizationQueue) \ | 126 ASM(InOptimizationQueue) \ |
127 ASM(InstantiateAsmJs) \ | 127 ASM(InstantiateAsmJs) \ |
128 ASM(MarkCodeAsToBeExecutedOnce) \ | 128 ASM(MarkCodeAsToBeExecutedOnce) \ |
129 ASM(MarkCodeAsExecutedOnce) \ | 129 ASM(MarkCodeAsExecutedOnce) \ |
130 ASM(MarkCodeAsExecutedTwice) \ | 130 ASM(MarkCodeAsExecutedTwice) \ |
131 ASM(NotifyDeoptimized) \ | 131 ASM(NotifyDeoptimized) \ |
132 ASM(NotifySoftDeoptimized) \ | 132 ASM(NotifySoftDeoptimized) \ |
133 ASM(NotifyLazyDeoptimized) \ | 133 ASM(NotifyLazyDeoptimized) \ |
134 ASM(NotifyStubFailure) \ | 134 ASM(NotifyStubFailure) \ |
135 ASM(NotifyStubFailureSaveDoubles) \ | 135 ASM(NotifyStubFailureSaveDoubles) \ |
136 ASM(OnStackReplacement) \ | 136 ASM(OnStackReplacement) \ |
137 \ | 137 \ |
138 /* API callback handling */ \ | 138 /* API callback handling */ \ |
139 API(HandleApiCall) \ | 139 API(HandleApiCall) \ |
140 API(HandleApiCallAsFunction) \ | 140 API(HandleApiCallAsFunction) \ |
141 API(HandleApiCallAsConstructor) \ | 141 API(HandleApiCallAsConstructor) \ |
142 ASM(HandleFastApiCall) \ | 142 ASM(HandleFastApiCall) \ |
143 \ | 143 \ |
144 /* Adapters for Turbofan into runtime */ \ | 144 /* Adapters for Turbofan into runtime */ \ |
145 ASM(AllocateInNewSpace) \ | 145 ASM(AllocateInNewSpace) \ |
146 ASM(AllocateInOldSpace) \ | 146 ASM(AllocateInOldSpace) \ |
147 \ | 147 \ |
148 /* TurboFan support builtins */ \ | 148 /* TurboFan support builtins */ \ |
149 TFS(CopyFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ | 149 TFS(CopyFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ |
150 CopyFastSmiOrObjectElements) \ | 150 CopyFastSmiOrObjectElements) \ |
151 TFS(GrowFastDoubleElements, BUILTIN, kNoExtraICState, GrowArrayElements) \ | 151 TFS(GrowFastDoubleElements, BUILTIN, kNoExtraICState, GrowArrayElements) \ |
152 TFS(GrowFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ | 152 TFS(GrowFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ |
153 GrowArrayElements) \ | 153 GrowArrayElements) \ |
154 \ | 154 \ |
155 /* Debugger */ \ | 155 /* Debugger */ \ |
156 DBG(FrameDropper_LiveEdit) \ | 156 DBG(FrameDropper_LiveEdit) \ |
157 DBG(Return_DebugBreak) \ | 157 DBG(Return_DebugBreak) \ |
158 DBG(Slot_DebugBreak) \ | 158 DBG(Slot_DebugBreak) \ |
159 \ | 159 \ |
160 /* Type conversions */ \ | 160 /* Type conversions */ \ |
161 TFS(ToBoolean, BUILTIN, kNoExtraICState, TypeConversion) \ | 161 TFS(ToBoolean, BUILTIN, kNoExtraICState, TypeConversion) \ |
162 TFS(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ | 162 TFS(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ |
163 TFS(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ | 163 TFS(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ |
164 TFS(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, \ | 164 TFS(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, \ |
165 TypeConversion) \ | 165 TypeConversion) \ |
166 TFS(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, \ | 166 TFS(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, \ |
167 TypeConversion) \ | 167 TypeConversion) \ |
168 TFS(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, \ | 168 TFS(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, \ |
169 TypeConversion) \ | 169 TypeConversion) \ |
170 TFS(StringToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ | 170 TFS(StringToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ |
171 TFS(ToName, BUILTIN, kNoExtraICState, TypeConversion) \ | 171 TFS(ToName, BUILTIN, kNoExtraICState, TypeConversion) \ |
172 TFS(NonNumberToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ | 172 TFS(NonNumberToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ |
173 TFS(ToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ | 173 TFS(ToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ |
174 TFS(ToString, BUILTIN, kNoExtraICState, TypeConversion) \ | 174 TFS(ToString, BUILTIN, kNoExtraICState, TypeConversion) \ |
175 TFS(ToInteger, BUILTIN, kNoExtraICState, TypeConversion) \ | 175 TFS(ToInteger, BUILTIN, kNoExtraICState, TypeConversion) \ |
176 TFS(ToLength, BUILTIN, kNoExtraICState, TypeConversion) \ | 176 TFS(ToLength, BUILTIN, kNoExtraICState, TypeConversion) \ |
177 TFS(Typeof, BUILTIN, kNoExtraICState, Typeof) \ | 177 TFS(Typeof, BUILTIN, kNoExtraICState, Typeof) \ |
178 \ | 178 \ |
179 /* Handlers */ \ | 179 /* Handlers */ \ |
180 TFS(KeyedLoadIC_Megamorphic_TF, KEYED_LOAD_IC, kNoExtraICState, \ | 180 TFS(KeyedLoadIC_Megamorphic_TF, KEYED_LOAD_IC, kNoExtraICState, \ |
181 LoadWithVector) \ | 181 LoadWithVector) \ |
182 ASM(KeyedLoadIC_Miss) \ | 182 ASM(KeyedLoadIC_Miss) \ |
183 ASH(KeyedLoadIC_Slow, HANDLER, Code::KEYED_LOAD_IC) \ | 183 ASH(KeyedLoadIC_Slow, HANDLER, Code::KEYED_LOAD_IC) \ |
184 TFS(KeyedStoreIC_Megamorphic_TF, KEYED_STORE_IC, kNoExtraICState, \ | 184 TFS(KeyedStoreIC_Megamorphic_TF, KEYED_STORE_IC, kNoExtraICState, \ |
185 StoreWithVector) \ | 185 StoreWithVector) \ |
186 TFS(KeyedStoreIC_Megamorphic_Strict_TF, KEYED_STORE_IC, \ | 186 TFS(KeyedStoreIC_Megamorphic_Strict_TF, KEYED_STORE_IC, \ |
187 StoreICState::kStrictModeState, StoreWithVector) \ | 187 StoreICState::kStrictModeState, StoreWithVector) \ |
188 ASM(KeyedStoreIC_Miss) \ | 188 ASM(KeyedStoreIC_Miss) \ |
189 ASH(KeyedStoreIC_Slow, HANDLER, Code::KEYED_STORE_IC) \ | 189 ASH(KeyedStoreIC_Slow, HANDLER, Code::KEYED_STORE_IC) \ |
190 TFS(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ | 190 TFS(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ |
191 TFS(LoadGlobalIC_Slow, HANDLER, Code::LOAD_GLOBAL_IC, LoadGlobalWithVector) \ | 191 TFS(LoadGlobalIC_Slow, HANDLER, Code::LOAD_GLOBAL_IC, LoadGlobalWithVector) \ |
192 ASH(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState) \ | 192 ASH(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState) \ |
193 TFS(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ | 193 TFS(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ |
194 ASH(LoadIC_Normal, HANDLER, Code::LOAD_IC) \ | 194 ASH(LoadIC_Normal, HANDLER, Code::LOAD_IC) \ |
195 TFS(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ | 195 TFS(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ |
196 TFS(StoreIC_Miss, BUILTIN, kNoExtraICState, StoreWithVector) \ | 196 TFS(StoreIC_Miss, BUILTIN, kNoExtraICState, StoreWithVector) \ |
197 ASH(StoreIC_Normal, HANDLER, Code::STORE_IC) \ | 197 ASH(StoreIC_Normal, HANDLER, Code::STORE_IC) \ |
198 ASH(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState) \ | 198 ASH(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState) \ |
199 TFS(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, StoreWithVector) \ | 199 TFS(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, StoreWithVector) \ |
200 TFS(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, StoreWithVector) \ | 200 TFS(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, StoreWithVector) \ |
201 \ | 201 \ |
202 /* Built-in functions for Javascript */ \ | 202 /* Built-in functions for Javascript */ \ |
203 /* Special internal builtins */ \ | 203 /* Special internal builtins */ \ |
204 CPP(EmptyFunction) \ | 204 CPP(EmptyFunction) \ |
205 CPP(Illegal) \ | 205 CPP(Illegal) \ |
206 CPP(RestrictedFunctionPropertiesThrower) \ | 206 CPP(RestrictedFunctionPropertiesThrower) \ |
207 CPP(RestrictedStrictArgumentsPropertiesThrower) \ | 207 CPP(RestrictedStrictArgumentsPropertiesThrower) \ |
208 CPP(UnsupportedThrower) \ | 208 CPP(UnsupportedThrower) \ |
209 \ | 209 \ |
210 /* Array */ \ | 210 /* Array */ \ |
211 ASM(ArrayCode) \ | 211 ASM(ArrayCode) \ |
212 ASM(InternalArrayCode) \ | 212 ASM(InternalArrayCode) \ |
213 CPP(ArrayConcat) \ | 213 CPP(ArrayConcat) \ |
214 /* ES6 section 22.1.2.2 Array.isArray */ \ | 214 /* ES6 section 22.1.2.2 Array.isArray */ \ |
215 TFJ(ArrayIsArray, 1) \ | 215 TFJ(ArrayIsArray, 1) \ |
216 /* ES7 #sec-array.prototype.includes */ \ | 216 /* ES7 #sec-array.prototype.includes */ \ |
217 TFJ(ArrayIncludes, 2) \ | 217 TFJ(ArrayIncludes, 2) \ |
218 TFJ(ArrayIndexOf, 2) \ | 218 TFJ(ArrayIndexOf, 2) \ |
219 CPP(ArrayPop) \ | 219 CPP(ArrayPop) \ |
220 CPP(ArrayPush) \ | 220 CPP(ArrayPush) \ |
221 TFJ(FastArrayPush, -1) \ | 221 TFJ(FastArrayPush, -1) \ |
222 CPP(ArrayShift) \ | 222 CPP(ArrayShift) \ |
223 CPP(ArraySlice) \ | 223 CPP(ArraySlice) \ |
224 CPP(ArraySplice) \ | 224 CPP(ArraySplice) \ |
225 CPP(ArrayUnshift) \ | 225 CPP(ArrayUnshift) \ |
226 /* ES6 #sec-array.prototype.entries */ \ | 226 /* ES6 #sec-array.prototype.entries */ \ |
227 TFJ(ArrayPrototypeEntries, 0) \ | 227 TFJ(ArrayPrototypeEntries, 0) \ |
228 /* ES6 #sec-array.prototype.keys */ \ | 228 /* ES6 #sec-array.prototype.keys */ \ |
229 TFJ(ArrayPrototypeKeys, 0) \ | 229 TFJ(ArrayPrototypeKeys, 0) \ |
230 /* ES6 #sec-array.prototype.values */ \ | 230 /* ES6 #sec-array.prototype.values */ \ |
231 TFJ(ArrayPrototypeValues, 0) \ | 231 TFJ(ArrayPrototypeValues, 0) \ |
232 /* ES6 #sec-%arrayiteratorprototype%.next */ \ | 232 /* ES6 #sec-%arrayiteratorprototype%.next */ \ |
233 TFJ(ArrayIteratorPrototypeNext, 0) \ | 233 TFJ(ArrayIteratorPrototypeNext, 0) \ |
234 \ | 234 \ |
235 /* ArrayBuffer */ \ | 235 /* ArrayBuffer */ \ |
236 CPP(ArrayBufferConstructor) \ | 236 CPP(ArrayBufferConstructor) \ |
237 CPP(ArrayBufferConstructor_ConstructStub) \ | 237 CPP(ArrayBufferConstructor_ConstructStub) \ |
238 CPP(ArrayBufferPrototypeGetByteLength) \ | 238 CPP(ArrayBufferPrototypeGetByteLength) \ |
239 CPP(ArrayBufferIsView) \ | 239 CPP(ArrayBufferIsView) \ |
240 \ | 240 \ |
241 /* Boolean */ \ | 241 /* Boolean */ \ |
242 CPP(BooleanConstructor) \ | 242 CPP(BooleanConstructor) \ |
243 CPP(BooleanConstructor_ConstructStub) \ | 243 CPP(BooleanConstructor_ConstructStub) \ |
244 /* ES6 section 19.3.3.2 Boolean.prototype.toString ( ) */ \ | 244 /* ES6 section 19.3.3.2 Boolean.prototype.toString ( ) */ \ |
245 TFJ(BooleanPrototypeToString, 0) \ | 245 TFJ(BooleanPrototypeToString, 0) \ |
246 /* ES6 section 19.3.3.3 Boolean.prototype.valueOf ( ) */ \ | 246 /* ES6 section 19.3.3.3 Boolean.prototype.valueOf ( ) */ \ |
247 TFJ(BooleanPrototypeValueOf, 0) \ | 247 TFJ(BooleanPrototypeValueOf, 0) \ |
248 \ | 248 \ |
249 /* CallSite */ \ | 249 /* CallSite */ \ |
250 CPP(CallSitePrototypeGetColumnNumber) \ | 250 CPP(CallSitePrototypeGetColumnNumber) \ |
251 CPP(CallSitePrototypeGetEvalOrigin) \ | 251 CPP(CallSitePrototypeGetEvalOrigin) \ |
252 CPP(CallSitePrototypeGetFileName) \ | 252 CPP(CallSitePrototypeGetFileName) \ |
253 CPP(CallSitePrototypeGetFunction) \ | 253 CPP(CallSitePrototypeGetFunction) \ |
254 CPP(CallSitePrototypeGetFunctionName) \ | 254 CPP(CallSitePrototypeGetFunctionName) \ |
255 CPP(CallSitePrototypeGetLineNumber) \ | 255 CPP(CallSitePrototypeGetLineNumber) \ |
256 CPP(CallSitePrototypeGetMethodName) \ | 256 CPP(CallSitePrototypeGetMethodName) \ |
257 CPP(CallSitePrototypeGetPosition) \ | 257 CPP(CallSitePrototypeGetPosition) \ |
258 CPP(CallSitePrototypeGetScriptNameOrSourceURL) \ | 258 CPP(CallSitePrototypeGetScriptNameOrSourceURL) \ |
259 CPP(CallSitePrototypeGetThis) \ | 259 CPP(CallSitePrototypeGetThis) \ |
260 CPP(CallSitePrototypeGetTypeName) \ | 260 CPP(CallSitePrototypeGetTypeName) \ |
261 CPP(CallSitePrototypeIsConstructor) \ | 261 CPP(CallSitePrototypeIsConstructor) \ |
262 CPP(CallSitePrototypeIsEval) \ | 262 CPP(CallSitePrototypeIsEval) \ |
263 CPP(CallSitePrototypeIsNative) \ | 263 CPP(CallSitePrototypeIsNative) \ |
264 CPP(CallSitePrototypeIsToplevel) \ | 264 CPP(CallSitePrototypeIsToplevel) \ |
265 CPP(CallSitePrototypeToString) \ | 265 CPP(CallSitePrototypeToString) \ |
266 \ | 266 \ |
267 /* DataView */ \ | 267 /* DataView */ \ |
268 CPP(DataViewConstructor) \ | 268 CPP(DataViewConstructor) \ |
269 CPP(DataViewConstructor_ConstructStub) \ | 269 CPP(DataViewConstructor_ConstructStub) \ |
270 CPP(DataViewPrototypeGetBuffer) \ | 270 CPP(DataViewPrototypeGetBuffer) \ |
271 CPP(DataViewPrototypeGetByteLength) \ | 271 CPP(DataViewPrototypeGetByteLength) \ |
272 CPP(DataViewPrototypeGetByteOffset) \ | 272 CPP(DataViewPrototypeGetByteOffset) \ |
273 CPP(DataViewPrototypeGetInt8) \ | 273 CPP(DataViewPrototypeGetInt8) \ |
274 CPP(DataViewPrototypeSetInt8) \ | 274 CPP(DataViewPrototypeSetInt8) \ |
275 CPP(DataViewPrototypeGetUint8) \ | 275 CPP(DataViewPrototypeGetUint8) \ |
276 CPP(DataViewPrototypeSetUint8) \ | 276 CPP(DataViewPrototypeSetUint8) \ |
277 CPP(DataViewPrototypeGetInt16) \ | 277 CPP(DataViewPrototypeGetInt16) \ |
278 CPP(DataViewPrototypeSetInt16) \ | 278 CPP(DataViewPrototypeSetInt16) \ |
279 CPP(DataViewPrototypeGetUint16) \ | 279 CPP(DataViewPrototypeGetUint16) \ |
280 CPP(DataViewPrototypeSetUint16) \ | 280 CPP(DataViewPrototypeSetUint16) \ |
281 CPP(DataViewPrototypeGetInt32) \ | 281 CPP(DataViewPrototypeGetInt32) \ |
282 CPP(DataViewPrototypeSetInt32) \ | 282 CPP(DataViewPrototypeSetInt32) \ |
283 CPP(DataViewPrototypeGetUint32) \ | 283 CPP(DataViewPrototypeGetUint32) \ |
284 CPP(DataViewPrototypeSetUint32) \ | 284 CPP(DataViewPrototypeSetUint32) \ |
285 CPP(DataViewPrototypeGetFloat32) \ | 285 CPP(DataViewPrototypeGetFloat32) \ |
286 CPP(DataViewPrototypeSetFloat32) \ | 286 CPP(DataViewPrototypeSetFloat32) \ |
287 CPP(DataViewPrototypeGetFloat64) \ | 287 CPP(DataViewPrototypeGetFloat64) \ |
288 CPP(DataViewPrototypeSetFloat64) \ | 288 CPP(DataViewPrototypeSetFloat64) \ |
289 \ | 289 \ |
290 /* Date */ \ | 290 /* Date */ \ |
291 CPP(DateConstructor) \ | 291 CPP(DateConstructor) \ |
292 CPP(DateConstructor_ConstructStub) \ | 292 CPP(DateConstructor_ConstructStub) \ |
293 /* ES6 section 20.3.4.2 Date.prototype.getDate ( ) */ \ | 293 /* ES6 section 20.3.4.2 Date.prototype.getDate ( ) */ \ |
294 TFJ(DatePrototypeGetDate, 0) \ | 294 TFJ(DatePrototypeGetDate, 0) \ |
295 /* ES6 section 20.3.4.3 Date.prototype.getDay ( ) */ \ | 295 /* ES6 section 20.3.4.3 Date.prototype.getDay ( ) */ \ |
296 TFJ(DatePrototypeGetDay, 0) \ | 296 TFJ(DatePrototypeGetDay, 0) \ |
297 /* ES6 section 20.3.4.4 Date.prototype.getFullYear ( ) */ \ | 297 /* ES6 section 20.3.4.4 Date.prototype.getFullYear ( ) */ \ |
298 TFJ(DatePrototypeGetFullYear, 0) \ | 298 TFJ(DatePrototypeGetFullYear, 0) \ |
299 /* ES6 section 20.3.4.5 Date.prototype.getHours ( ) */ \ | 299 /* ES6 section 20.3.4.5 Date.prototype.getHours ( ) */ \ |
300 TFJ(DatePrototypeGetHours, 0) \ | 300 TFJ(DatePrototypeGetHours, 0) \ |
301 /* ES6 section 20.3.4.6 Date.prototype.getMilliseconds ( ) */ \ | 301 /* ES6 section 20.3.4.6 Date.prototype.getMilliseconds ( ) */ \ |
302 TFJ(DatePrototypeGetMilliseconds, 0) \ | 302 TFJ(DatePrototypeGetMilliseconds, 0) \ |
303 /* ES6 section 20.3.4.7 Date.prototype.getMinutes ( ) */ \ | 303 /* ES6 section 20.3.4.7 Date.prototype.getMinutes ( ) */ \ |
304 TFJ(DatePrototypeGetMinutes, 0) \ | 304 TFJ(DatePrototypeGetMinutes, 0) \ |
305 /* ES6 section 20.3.4.8 Date.prototype.getMonth */ \ | 305 /* ES6 section 20.3.4.8 Date.prototype.getMonth */ \ |
306 TFJ(DatePrototypeGetMonth, 0) \ | 306 TFJ(DatePrototypeGetMonth, 0) \ |
307 /* ES6 section 20.3.4.9 Date.prototype.getSeconds ( ) */ \ | 307 /* ES6 section 20.3.4.9 Date.prototype.getSeconds ( ) */ \ |
308 TFJ(DatePrototypeGetSeconds, 0) \ | 308 TFJ(DatePrototypeGetSeconds, 0) \ |
309 /* ES6 section 20.3.4.10 Date.prototype.getTime ( ) */ \ | 309 /* ES6 section 20.3.4.10 Date.prototype.getTime ( ) */ \ |
310 TFJ(DatePrototypeGetTime, 0) \ | 310 TFJ(DatePrototypeGetTime, 0) \ |
311 /* ES6 section 20.3.4.11 Date.prototype.getTimezoneOffset ( ) */ \ | 311 /* ES6 section 20.3.4.11 Date.prototype.getTimezoneOffset ( ) */ \ |
312 TFJ(DatePrototypeGetTimezoneOffset, 0) \ | 312 TFJ(DatePrototypeGetTimezoneOffset, 0) \ |
313 /* ES6 section 20.3.4.12 Date.prototype.getUTCDate ( ) */ \ | 313 /* ES6 section 20.3.4.12 Date.prototype.getUTCDate ( ) */ \ |
314 TFJ(DatePrototypeGetUTCDate, 0) \ | 314 TFJ(DatePrototypeGetUTCDate, 0) \ |
315 /* ES6 section 20.3.4.13 Date.prototype.getUTCDay ( ) */ \ | 315 /* ES6 section 20.3.4.13 Date.prototype.getUTCDay ( ) */ \ |
316 TFJ(DatePrototypeGetUTCDay, 0) \ | 316 TFJ(DatePrototypeGetUTCDay, 0) \ |
317 /* ES6 section 20.3.4.14 Date.prototype.getUTCFullYear ( ) */ \ | 317 /* ES6 section 20.3.4.14 Date.prototype.getUTCFullYear ( ) */ \ |
318 TFJ(DatePrototypeGetUTCFullYear, 0) \ | 318 TFJ(DatePrototypeGetUTCFullYear, 0) \ |
319 /* ES6 section 20.3.4.15 Date.prototype.getUTCHours ( ) */ \ | 319 /* ES6 section 20.3.4.15 Date.prototype.getUTCHours ( ) */ \ |
320 TFJ(DatePrototypeGetUTCHours, 0) \ | 320 TFJ(DatePrototypeGetUTCHours, 0) \ |
321 /* ES6 section 20.3.4.16 Date.prototype.getUTCMilliseconds ( ) */ \ | 321 /* ES6 section 20.3.4.16 Date.prototype.getUTCMilliseconds ( ) */ \ |
322 TFJ(DatePrototypeGetUTCMilliseconds, 0) \ | 322 TFJ(DatePrototypeGetUTCMilliseconds, 0) \ |
323 /* ES6 section 20.3.4.17 Date.prototype.getUTCMinutes ( ) */ \ | 323 /* ES6 section 20.3.4.17 Date.prototype.getUTCMinutes ( ) */ \ |
324 TFJ(DatePrototypeGetUTCMinutes, 0) \ | 324 TFJ(DatePrototypeGetUTCMinutes, 0) \ |
325 /* ES6 section 20.3.4.18 Date.prototype.getUTCMonth ( ) */ \ | 325 /* ES6 section 20.3.4.18 Date.prototype.getUTCMonth ( ) */ \ |
326 TFJ(DatePrototypeGetUTCMonth, 0) \ | 326 TFJ(DatePrototypeGetUTCMonth, 0) \ |
327 /* ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( ) */ \ | 327 /* ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( ) */ \ |
328 TFJ(DatePrototypeGetUTCSeconds, 0) \ | 328 TFJ(DatePrototypeGetUTCSeconds, 0) \ |
329 CPP(DatePrototypeGetYear) \ | 329 CPP(DatePrototypeGetYear) \ |
330 CPP(DatePrototypeSetYear) \ | 330 CPP(DatePrototypeSetYear) \ |
331 CPP(DateNow) \ | 331 CPP(DateNow) \ |
332 CPP(DateParse) \ | 332 CPP(DateParse) \ |
333 CPP(DatePrototypeSetDate) \ | 333 CPP(DatePrototypeSetDate) \ |
334 CPP(DatePrototypeSetFullYear) \ | 334 CPP(DatePrototypeSetFullYear) \ |
335 CPP(DatePrototypeSetHours) \ | 335 CPP(DatePrototypeSetHours) \ |
336 CPP(DatePrototypeSetMilliseconds) \ | 336 CPP(DatePrototypeSetMilliseconds) \ |
337 CPP(DatePrototypeSetMinutes) \ | 337 CPP(DatePrototypeSetMinutes) \ |
338 CPP(DatePrototypeSetMonth) \ | 338 CPP(DatePrototypeSetMonth) \ |
339 CPP(DatePrototypeSetSeconds) \ | 339 CPP(DatePrototypeSetSeconds) \ |
340 CPP(DatePrototypeSetTime) \ | 340 CPP(DatePrototypeSetTime) \ |
341 CPP(DatePrototypeSetUTCDate) \ | 341 CPP(DatePrototypeSetUTCDate) \ |
342 CPP(DatePrototypeSetUTCFullYear) \ | 342 CPP(DatePrototypeSetUTCFullYear) \ |
343 CPP(DatePrototypeSetUTCHours) \ | 343 CPP(DatePrototypeSetUTCHours) \ |
344 CPP(DatePrototypeSetUTCMilliseconds) \ | 344 CPP(DatePrototypeSetUTCMilliseconds) \ |
345 CPP(DatePrototypeSetUTCMinutes) \ | 345 CPP(DatePrototypeSetUTCMinutes) \ |
346 CPP(DatePrototypeSetUTCMonth) \ | 346 CPP(DatePrototypeSetUTCMonth) \ |
347 CPP(DatePrototypeSetUTCSeconds) \ | 347 CPP(DatePrototypeSetUTCSeconds) \ |
348 CPP(DatePrototypeToDateString) \ | 348 CPP(DatePrototypeToDateString) \ |
349 CPP(DatePrototypeToISOString) \ | 349 CPP(DatePrototypeToISOString) \ |
350 CPP(DatePrototypeToPrimitive) \ | 350 CPP(DatePrototypeToPrimitive) \ |
351 CPP(DatePrototypeToUTCString) \ | 351 CPP(DatePrototypeToUTCString) \ |
352 CPP(DatePrototypeToString) \ | 352 CPP(DatePrototypeToString) \ |
353 CPP(DatePrototypeToTimeString) \ | 353 CPP(DatePrototypeToTimeString) \ |
354 CPP(DatePrototypeValueOf) \ | 354 CPP(DatePrototypeValueOf) \ |
355 CPP(DatePrototypeToJson) \ | 355 CPP(DatePrototypeToJson) \ |
356 CPP(DateUTC) \ | 356 CPP(DateUTC) \ |
357 \ | 357 \ |
358 /* Error */ \ | 358 /* Error */ \ |
359 CPP(ErrorConstructor) \ | 359 CPP(ErrorConstructor) \ |
360 CPP(ErrorCaptureStackTrace) \ | 360 CPP(ErrorCaptureStackTrace) \ |
361 CPP(ErrorPrototypeToString) \ | 361 CPP(ErrorPrototypeToString) \ |
362 CPP(MakeError) \ | 362 CPP(MakeError) \ |
363 CPP(MakeRangeError) \ | 363 CPP(MakeRangeError) \ |
364 CPP(MakeSyntaxError) \ | 364 CPP(MakeSyntaxError) \ |
365 CPP(MakeTypeError) \ | 365 CPP(MakeTypeError) \ |
366 CPP(MakeURIError) \ | 366 CPP(MakeURIError) \ |
367 \ | 367 \ |
368 /* Function */ \ | 368 /* Function */ \ |
369 CPP(FunctionConstructor) \ | 369 CPP(FunctionConstructor) \ |
370 ASM(FunctionPrototypeApply) \ | 370 ASM(FunctionPrototypeApply) \ |
371 CPP(FunctionPrototypeBind) \ | 371 CPP(FunctionPrototypeBind) \ |
372 ASM(FunctionPrototypeCall) \ | 372 ASM(FunctionPrototypeCall) \ |
373 /* ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V ) */ \ | 373 /* ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V ) */ \ |
374 TFJ(FunctionPrototypeHasInstance, 1) \ | 374 TFJ(FunctionPrototypeHasInstance, 1) \ |
375 CPP(FunctionPrototypeToString) \ | 375 CPP(FunctionPrototypeToString) \ |
376 \ | 376 \ |
377 /* Generator and Async */ \ | 377 /* Generator and Async */ \ |
378 CPP(GeneratorFunctionConstructor) \ | 378 CPP(GeneratorFunctionConstructor) \ |
379 /* ES6 section 25.3.1.2 Generator.prototype.next ( value ) */ \ | 379 /* ES6 section 25.3.1.2 Generator.prototype.next ( value ) */ \ |
380 TFJ(GeneratorPrototypeNext, 1) \ | 380 TFJ(GeneratorPrototypeNext, 1) \ |
381 /* ES6 section 25.3.1.3 Generator.prototype.return ( value ) */ \ | 381 /* ES6 section 25.3.1.3 Generator.prototype.return ( value ) */ \ |
382 TFJ(GeneratorPrototypeReturn, 1) \ | 382 TFJ(GeneratorPrototypeReturn, 1) \ |
383 /* ES6 section 25.3.1.4 Generator.prototype.throw ( exception ) */ \ | 383 /* ES6 section 25.3.1.4 Generator.prototype.throw ( exception ) */ \ |
384 TFJ(GeneratorPrototypeThrow, 1) \ | 384 TFJ(GeneratorPrototypeThrow, 1) \ |
385 CPP(AsyncFunctionConstructor) \ | 385 CPP(AsyncFunctionConstructor) \ |
386 \ | 386 \ |
387 /* Global object */ \ | 387 /* Global object */ \ |
388 CPP(GlobalDecodeURI) \ | 388 CPP(GlobalDecodeURI) \ |
389 CPP(GlobalDecodeURIComponent) \ | 389 CPP(GlobalDecodeURIComponent) \ |
390 CPP(GlobalEncodeURI) \ | 390 CPP(GlobalEncodeURI) \ |
391 CPP(GlobalEncodeURIComponent) \ | 391 CPP(GlobalEncodeURIComponent) \ |
392 CPP(GlobalEscape) \ | 392 CPP(GlobalEscape) \ |
393 CPP(GlobalUnescape) \ | 393 CPP(GlobalUnescape) \ |
394 CPP(GlobalEval) \ | 394 CPP(GlobalEval) \ |
395 /* ES6 section 18.2.2 isFinite ( number ) */ \ | 395 /* ES6 section 18.2.2 isFinite ( number ) */ \ |
396 TFJ(GlobalIsFinite, 1) \ | 396 TFJ(GlobalIsFinite, 1) \ |
397 /* ES6 section 18.2.3 isNaN ( number ) */ \ | 397 /* ES6 section 18.2.3 isNaN ( number ) */ \ |
398 TFJ(GlobalIsNaN, 1) \ | 398 TFJ(GlobalIsNaN, 1) \ |
399 \ | 399 \ |
400 /* ES6 #sec-%iteratorprototype%-@@iterator */ \ | 400 /* ES6 #sec-%iteratorprototype%-@@iterator */ \ |
401 TFJ(IteratorPrototypeIterator, 0) \ | 401 TFJ(IteratorPrototypeIterator, 0) \ |
402 \ | 402 \ |
403 /* JSON */ \ | 403 /* JSON */ \ |
404 CPP(JsonParse) \ | 404 CPP(JsonParse) \ |
405 CPP(JsonStringify) \ | 405 CPP(JsonStringify) \ |
406 \ | 406 \ |
407 /* Math */ \ | 407 /* Math */ \ |
408 /* ES6 section 20.2.2.1 Math.abs ( x ) */ \ | 408 /* ES6 section 20.2.2.1 Math.abs ( x ) */ \ |
409 TFJ(MathAbs, 1) \ | 409 TFJ(MathAbs, 1) \ |
410 /* ES6 section 20.2.2.2 Math.acos ( x ) */ \ | 410 /* ES6 section 20.2.2.2 Math.acos ( x ) */ \ |
411 TFJ(MathAcos, 1) \ | 411 TFJ(MathAcos, 1) \ |
412 /* ES6 section 20.2.2.3 Math.acosh ( x ) */ \ | 412 /* ES6 section 20.2.2.3 Math.acosh ( x ) */ \ |
413 TFJ(MathAcosh, 1) \ | 413 TFJ(MathAcosh, 1) \ |
414 /* ES6 section 20.2.2.4 Math.asin ( x ) */ \ | 414 /* ES6 section 20.2.2.4 Math.asin ( x ) */ \ |
415 TFJ(MathAsin, 1) \ | 415 TFJ(MathAsin, 1) \ |
416 /* ES6 section 20.2.2.5 Math.asinh ( x ) */ \ | 416 /* ES6 section 20.2.2.5 Math.asinh ( x ) */ \ |
417 TFJ(MathAsinh, 1) \ | 417 TFJ(MathAsinh, 1) \ |
418 /* ES6 section 20.2.2.6 Math.atan ( x ) */ \ | 418 /* ES6 section 20.2.2.6 Math.atan ( x ) */ \ |
419 TFJ(MathAtan, 1) \ | 419 TFJ(MathAtan, 1) \ |
420 /* ES6 section 20.2.2.7 Math.atanh ( x ) */ \ | 420 /* ES6 section 20.2.2.7 Math.atanh ( x ) */ \ |
421 TFJ(MathAtanh, 1) \ | 421 TFJ(MathAtanh, 1) \ |
422 /* ES6 section 20.2.2.8 Math.atan2 ( y, x ) */ \ | 422 /* ES6 section 20.2.2.8 Math.atan2 ( y, x ) */ \ |
423 TFJ(MathAtan2, 2) \ | 423 TFJ(MathAtan2, 2) \ |
424 /* ES6 section 20.2.2.9 Math.cbrt ( x ) */ \ | 424 /* ES6 section 20.2.2.9 Math.cbrt ( x ) */ \ |
425 TFJ(MathCbrt, 1) \ | 425 TFJ(MathCbrt, 1) \ |
426 /* ES6 section 20.2.2.10 Math.ceil ( x ) */ \ | 426 /* ES6 section 20.2.2.10 Math.ceil ( x ) */ \ |
427 TFJ(MathCeil, 1) \ | 427 TFJ(MathCeil, 1) \ |
428 /* ES6 section 20.2.2.11 Math.clz32 ( x ) */ \ | 428 /* ES6 section 20.2.2.11 Math.clz32 ( x ) */ \ |
429 TFJ(MathClz32, 1) \ | 429 TFJ(MathClz32, 1) \ |
430 /* ES6 section 20.2.2.12 Math.cos ( x ) */ \ | 430 /* ES6 section 20.2.2.12 Math.cos ( x ) */ \ |
431 TFJ(MathCos, 1) \ | 431 TFJ(MathCos, 1) \ |
432 /* ES6 section 20.2.2.13 Math.cosh ( x ) */ \ | 432 /* ES6 section 20.2.2.13 Math.cosh ( x ) */ \ |
433 TFJ(MathCosh, 1) \ | 433 TFJ(MathCosh, 1) \ |
434 /* ES6 section 20.2.2.14 Math.exp ( x ) */ \ | 434 /* ES6 section 20.2.2.14 Math.exp ( x ) */ \ |
435 TFJ(MathExp, 1) \ | 435 TFJ(MathExp, 1) \ |
436 /* ES6 section 20.2.2.15 Math.expm1 ( x ) */ \ | 436 /* ES6 section 20.2.2.15 Math.expm1 ( x ) */ \ |
437 TFJ(MathExpm1, 1) \ | 437 TFJ(MathExpm1, 1) \ |
438 /* ES6 section 20.2.2.16 Math.floor ( x ) */ \ | 438 /* ES6 section 20.2.2.16 Math.floor ( x ) */ \ |
439 TFJ(MathFloor, 1) \ | 439 TFJ(MathFloor, 1) \ |
440 /* ES6 section 20.2.2.17 Math.fround ( x ) */ \ | 440 /* ES6 section 20.2.2.17 Math.fround ( x ) */ \ |
441 TFJ(MathFround, 1) \ | 441 TFJ(MathFround, 1) \ |
442 /* ES6 section 20.2.2.18 Math.hypot ( value1, value2, ...values ) */ \ | 442 /* ES6 section 20.2.2.18 Math.hypot ( value1, value2, ...values ) */ \ |
443 CPP(MathHypot) \ | 443 CPP(MathHypot) \ |
444 /* ES6 section 20.2.2.19 Math.imul ( x, y ) */ \ | 444 /* ES6 section 20.2.2.19 Math.imul ( x, y ) */ \ |
445 TFJ(MathImul, 2) \ | 445 TFJ(MathImul, 2) \ |
446 /* ES6 section 20.2.2.20 Math.log ( x ) */ \ | 446 /* ES6 section 20.2.2.20 Math.log ( x ) */ \ |
447 TFJ(MathLog, 1) \ | 447 TFJ(MathLog, 1) \ |
448 /* ES6 section 20.2.2.21 Math.log1p ( x ) */ \ | 448 /* ES6 section 20.2.2.21 Math.log1p ( x ) */ \ |
449 TFJ(MathLog1p, 1) \ | 449 TFJ(MathLog1p, 1) \ |
450 /* ES6 section 20.2.2.22 Math.log10 ( x ) */ \ | 450 /* ES6 section 20.2.2.22 Math.log10 ( x ) */ \ |
451 TFJ(MathLog10, 1) \ | 451 TFJ(MathLog10, 1) \ |
452 /* ES6 section 20.2.2.23 Math.log2 ( x ) */ \ | 452 /* ES6 section 20.2.2.23 Math.log2 ( x ) */ \ |
453 TFJ(MathLog2, 1) \ | 453 TFJ(MathLog2, 1) \ |
454 /* ES6 section 20.2.2.24 Math.max ( value1, value2 , ...values ) */ \ | 454 /* ES6 section 20.2.2.24 Math.max ( value1, value2 , ...values ) */ \ |
455 ASM(MathMax) \ | 455 ASM(MathMax) \ |
456 /* ES6 section 20.2.2.25 Math.min ( value1, value2 , ...values ) */ \ | 456 /* ES6 section 20.2.2.25 Math.min ( value1, value2 , ...values ) */ \ |
457 ASM(MathMin) \ | 457 ASM(MathMin) \ |
458 /* ES6 section 20.2.2.26 Math.pow ( x, y ) */ \ | 458 /* ES6 section 20.2.2.26 Math.pow ( x, y ) */ \ |
459 TFJ(MathPow, 2) \ | 459 TFJ(MathPow, 2) \ |
460 /* ES6 section 20.2.2.27 Math.random */ \ | 460 /* ES6 section 20.2.2.27 Math.random */ \ |
461 TFJ(MathRandom, 0) \ | 461 TFJ(MathRandom, 0) \ |
462 /* ES6 section 20.2.2.28 Math.round ( x ) */ \ | 462 /* ES6 section 20.2.2.28 Math.round ( x ) */ \ |
463 TFJ(MathRound, 1) \ | 463 TFJ(MathRound, 1) \ |
464 /* ES6 section 20.2.2.29 Math.sign ( x ) */ \ | 464 /* ES6 section 20.2.2.29 Math.sign ( x ) */ \ |
465 TFJ(MathSign, 1) \ | 465 TFJ(MathSign, 1) \ |
466 /* ES6 section 20.2.2.30 Math.sin ( x ) */ \ | 466 /* ES6 section 20.2.2.30 Math.sin ( x ) */ \ |
467 TFJ(MathSin, 1) \ | 467 TFJ(MathSin, 1) \ |
468 /* ES6 section 20.2.2.31 Math.sinh ( x ) */ \ | 468 /* ES6 section 20.2.2.31 Math.sinh ( x ) */ \ |
469 TFJ(MathSinh, 1) \ | 469 TFJ(MathSinh, 1) \ |
470 /* ES6 section 20.2.2.32 Math.sqrt ( x ) */ \ | 470 /* ES6 section 20.2.2.32 Math.sqrt ( x ) */ \ |
471 TFJ(MathTan, 1) \ | 471 TFJ(MathTan, 1) \ |
472 /* ES6 section 20.2.2.33 Math.tan ( x ) */ \ | 472 /* ES6 section 20.2.2.33 Math.tan ( x ) */ \ |
473 TFJ(MathTanh, 1) \ | 473 TFJ(MathTanh, 1) \ |
474 /* ES6 section 20.2.2.34 Math.tanh ( x ) */ \ | 474 /* ES6 section 20.2.2.34 Math.tanh ( x ) */ \ |
475 TFJ(MathSqrt, 1) \ | 475 TFJ(MathSqrt, 1) \ |
476 /* ES6 section 20.2.2.35 Math.trunc ( x ) */ \ | 476 /* ES6 section 20.2.2.35 Math.trunc ( x ) */ \ |
477 TFJ(MathTrunc, 1) \ | 477 TFJ(MathTrunc, 1) \ |
478 \ | 478 \ |
479 /* Number */ \ | 479 /* Number */ \ |
480 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case */ \ | 480 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case */ \ |
481 ASM(NumberConstructor) \ | 481 ASM(NumberConstructor) \ |
482 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case */ \ | 482 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case */ \ |
483 ASM(NumberConstructor_ConstructStub) \ | 483 ASM(NumberConstructor_ConstructStub) \ |
484 /* ES6 section 20.1.2.2 Number.isFinite ( number ) */ \ | 484 /* ES6 section 20.1.2.2 Number.isFinite ( number ) */ \ |
485 TFJ(NumberIsFinite, 1) \ | 485 TFJ(NumberIsFinite, 1) \ |
486 /* ES6 section 20.1.2.3 Number.isInteger ( number ) */ \ | 486 /* ES6 section 20.1.2.3 Number.isInteger ( number ) */ \ |
487 TFJ(NumberIsInteger, 1) \ | 487 TFJ(NumberIsInteger, 1) \ |
488 /* ES6 section 20.1.2.4 Number.isNaN ( number ) */ \ | 488 /* ES6 section 20.1.2.4 Number.isNaN ( number ) */ \ |
489 TFJ(NumberIsNaN, 1) \ | 489 TFJ(NumberIsNaN, 1) \ |
490 /* ES6 section 20.1.2.5 Number.isSafeInteger ( number ) */ \ | 490 /* ES6 section 20.1.2.5 Number.isSafeInteger ( number ) */ \ |
491 TFJ(NumberIsSafeInteger, 1) \ | 491 TFJ(NumberIsSafeInteger, 1) \ |
492 /* ES6 section 20.1.2.12 Number.parseFloat ( string ) */ \ | 492 /* ES6 section 20.1.2.12 Number.parseFloat ( string ) */ \ |
493 TFJ(NumberParseFloat, 1) \ | 493 TFJ(NumberParseFloat, 1) \ |
494 /* ES6 section 20.1.2.13 Number.parseInt ( string, radix ) */ \ | 494 /* ES6 section 20.1.2.13 Number.parseInt ( string, radix ) */ \ |
495 TFJ(NumberParseInt, 2) \ | 495 TFJ(NumberParseInt, 2) \ |
496 CPP(NumberPrototypeToExponential) \ | 496 CPP(NumberPrototypeToExponential) \ |
497 CPP(NumberPrototypeToFixed) \ | 497 CPP(NumberPrototypeToFixed) \ |
498 CPP(NumberPrototypeToLocaleString) \ | 498 CPP(NumberPrototypeToLocaleString) \ |
499 CPP(NumberPrototypeToPrecision) \ | 499 CPP(NumberPrototypeToPrecision) \ |
500 CPP(NumberPrototypeToString) \ | 500 CPP(NumberPrototypeToString) \ |
501 /* ES6 section 20.1.3.7 Number.prototype.valueOf ( ) */ \ | 501 /* ES6 section 20.1.3.7 Number.prototype.valueOf ( ) */ \ |
502 TFJ(NumberPrototypeValueOf, 0) \ | 502 TFJ(NumberPrototypeValueOf, 0) \ |
503 TFS(Add, BUILTIN, kNoExtraICState, BinaryOp) \ | 503 TFS(Add, BUILTIN, kNoExtraICState, BinaryOp) \ |
504 TFS(Subtract, BUILTIN, kNoExtraICState, BinaryOp) \ | 504 TFS(Subtract, BUILTIN, kNoExtraICState, BinaryOp) \ |
505 TFS(Multiply, BUILTIN, kNoExtraICState, BinaryOp) \ | 505 TFS(Multiply, BUILTIN, kNoExtraICState, BinaryOp) \ |
506 TFS(Divide, BUILTIN, kNoExtraICState, BinaryOp) \ | 506 TFS(Divide, BUILTIN, kNoExtraICState, BinaryOp) \ |
507 TFS(Modulus, BUILTIN, kNoExtraICState, BinaryOp) \ | 507 TFS(Modulus, BUILTIN, kNoExtraICState, BinaryOp) \ |
508 TFS(BitwiseAnd, BUILTIN, kNoExtraICState, BinaryOp) \ | 508 TFS(BitwiseAnd, BUILTIN, kNoExtraICState, BinaryOp) \ |
509 TFS(BitwiseOr, BUILTIN, kNoExtraICState, BinaryOp) \ | 509 TFS(BitwiseOr, BUILTIN, kNoExtraICState, BinaryOp) \ |
510 TFS(BitwiseXor, BUILTIN, kNoExtraICState, BinaryOp) \ | 510 TFS(BitwiseXor, BUILTIN, kNoExtraICState, BinaryOp) \ |
511 TFS(ShiftLeft, BUILTIN, kNoExtraICState, BinaryOp) \ | 511 TFS(ShiftLeft, BUILTIN, kNoExtraICState, BinaryOp) \ |
512 TFS(ShiftRight, BUILTIN, kNoExtraICState, BinaryOp) \ | 512 TFS(ShiftRight, BUILTIN, kNoExtraICState, BinaryOp) \ |
513 TFS(ShiftRightLogical, BUILTIN, kNoExtraICState, BinaryOp) \ | 513 TFS(ShiftRightLogical, BUILTIN, kNoExtraICState, BinaryOp) \ |
514 TFS(LessThan, BUILTIN, kNoExtraICState, Compare) \ | 514 TFS(LessThan, BUILTIN, kNoExtraICState, Compare) \ |
515 TFS(LessThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ | 515 TFS(LessThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ |
516 TFS(GreaterThan, BUILTIN, kNoExtraICState, Compare) \ | 516 TFS(GreaterThan, BUILTIN, kNoExtraICState, Compare) \ |
517 TFS(GreaterThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ | 517 TFS(GreaterThanOrEqual, BUILTIN, kNoExtraICState, Compare) \ |
518 TFS(Equal, BUILTIN, kNoExtraICState, Compare) \ | 518 TFS(Equal, BUILTIN, kNoExtraICState, Compare) \ |
519 TFS(NotEqual, BUILTIN, kNoExtraICState, Compare) \ | 519 TFS(NotEqual, BUILTIN, kNoExtraICState, Compare) \ |
520 TFS(StrictEqual, BUILTIN, kNoExtraICState, Compare) \ | 520 TFS(StrictEqual, BUILTIN, kNoExtraICState, Compare) \ |
521 TFS(StrictNotEqual, BUILTIN, kNoExtraICState, Compare) \ | 521 TFS(StrictNotEqual, BUILTIN, kNoExtraICState, Compare) \ |
522 \ | 522 \ |
523 /* Object */ \ | 523 /* Object */ \ |
524 CPP(ObjectAssign) \ | 524 CPP(ObjectAssign) \ |
525 TFJ(ObjectCreate, 2) \ | 525 TFJ(ObjectCreate, 2) \ |
526 CPP(ObjectDefineGetter) \ | 526 CPP(ObjectDefineGetter) \ |
527 CPP(ObjectDefineProperties) \ | 527 CPP(ObjectDefineProperties) \ |
528 CPP(ObjectDefineProperty) \ | 528 CPP(ObjectDefineProperty) \ |
529 CPP(ObjectDefineSetter) \ | 529 CPP(ObjectDefineSetter) \ |
530 CPP(ObjectEntries) \ | 530 CPP(ObjectEntries) \ |
531 CPP(ObjectFreeze) \ | 531 CPP(ObjectFreeze) \ |
532 CPP(ObjectGetOwnPropertyDescriptor) \ | 532 CPP(ObjectGetOwnPropertyDescriptor) \ |
533 CPP(ObjectGetOwnPropertyDescriptors) \ | 533 CPP(ObjectGetOwnPropertyDescriptors) \ |
534 CPP(ObjectGetOwnPropertyNames) \ | 534 CPP(ObjectGetOwnPropertyNames) \ |
535 CPP(ObjectGetOwnPropertySymbols) \ | 535 CPP(ObjectGetOwnPropertySymbols) \ |
536 CPP(ObjectGetPrototypeOf) \ | 536 CPP(ObjectGetPrototypeOf) \ |
537 CPP(ObjectSetPrototypeOf) \ | 537 CPP(ObjectSetPrototypeOf) \ |
538 /* ES6 section 19.1.3.2 Object.prototype.hasOwnProperty */ \ | 538 /* ES6 section 19.1.3.2 Object.prototype.hasOwnProperty */ \ |
539 TFJ(ObjectHasOwnProperty, 1) \ | 539 TFJ(ObjectHasOwnProperty, 1) \ |
540 CPP(ObjectIs) \ | 540 CPP(ObjectIs) \ |
541 CPP(ObjectIsExtensible) \ | 541 CPP(ObjectIsExtensible) \ |
542 CPP(ObjectIsFrozen) \ | 542 CPP(ObjectIsFrozen) \ |
543 CPP(ObjectIsSealed) \ | 543 CPP(ObjectIsSealed) \ |
544 CPP(ObjectKeys) \ | 544 CPP(ObjectKeys) \ |
545 CPP(ObjectLookupGetter) \ | 545 CPP(ObjectLookupGetter) \ |
546 CPP(ObjectLookupSetter) \ | 546 CPP(ObjectLookupSetter) \ |
547 CPP(ObjectPreventExtensions) \ | 547 CPP(ObjectPreventExtensions) \ |
548 /* ES6 section 19.1.3.6 Object.prototype.toString () */ \ | 548 /* ES6 section 19.1.3.6 Object.prototype.toString () */ \ |
549 TFJ(ObjectProtoToString, 0) \ | 549 TFJ(ObjectProtoToString, 0) \ |
550 CPP(ObjectPrototypePropertyIsEnumerable) \ | 550 CPP(ObjectPrototypePropertyIsEnumerable) \ |
551 CPP(ObjectPrototypeGetProto) \ | 551 CPP(ObjectPrototypeGetProto) \ |
552 CPP(ObjectPrototypeSetProto) \ | 552 CPP(ObjectPrototypeSetProto) \ |
553 CPP(ObjectSeal) \ | 553 CPP(ObjectSeal) \ |
554 CPP(ObjectValues) \ | 554 CPP(ObjectValues) \ |
555 \ | 555 \ |
556 TFS(HasProperty, BUILTIN, kNoExtraICState, HasProperty) \ | 556 TFS(HasProperty, BUILTIN, kNoExtraICState, HasProperty) \ |
557 TFS(InstanceOf, BUILTIN, kNoExtraICState, Compare) \ | 557 TFS(InstanceOf, BUILTIN, kNoExtraICState, Compare) \ |
558 TFS(OrdinaryHasInstance, BUILTIN, kNoExtraICState, Compare) \ | 558 TFS(OrdinaryHasInstance, BUILTIN, kNoExtraICState, Compare) \ |
559 TFS(ForInFilter, BUILTIN, kNoExtraICState, ForInFilter) \ | 559 TFS(ForInFilter, BUILTIN, kNoExtraICState, ForInFilter) \ |
560 \ | 560 \ |
561 /* Promise */ \ | 561 /* Promise */ \ |
562 CPP(CreateResolvingFunctions) \ | 562 CPP(CreateResolvingFunctions) \ |
563 CPP(PromiseResolveClosure) \ | 563 CPP(PromiseResolveClosure) \ |
564 CPP(PromiseRejectClosure) \ | 564 CPP(PromiseRejectClosure) \ |
565 \ | 565 \ |
566 /* Proxy */ \ | 566 /* Proxy */ \ |
567 CPP(ProxyConstructor) \ | 567 CPP(ProxyConstructor) \ |
568 CPP(ProxyConstructor_ConstructStub) \ | 568 CPP(ProxyConstructor_ConstructStub) \ |
569 \ | 569 \ |
570 /* Reflect */ \ | 570 /* Reflect */ \ |
571 ASM(ReflectApply) \ | 571 ASM(ReflectApply) \ |
572 ASM(ReflectConstruct) \ | 572 ASM(ReflectConstruct) \ |
573 CPP(ReflectDefineProperty) \ | 573 CPP(ReflectDefineProperty) \ |
574 CPP(ReflectDeleteProperty) \ | 574 CPP(ReflectDeleteProperty) \ |
575 CPP(ReflectGet) \ | 575 CPP(ReflectGet) \ |
576 CPP(ReflectGetOwnPropertyDescriptor) \ | 576 CPP(ReflectGetOwnPropertyDescriptor) \ |
577 CPP(ReflectGetPrototypeOf) \ | 577 CPP(ReflectGetPrototypeOf) \ |
578 CPP(ReflectHas) \ | 578 CPP(ReflectHas) \ |
579 CPP(ReflectIsExtensible) \ | 579 CPP(ReflectIsExtensible) \ |
580 CPP(ReflectOwnKeys) \ | 580 CPP(ReflectOwnKeys) \ |
581 CPP(ReflectPreventExtensions) \ | 581 CPP(ReflectPreventExtensions) \ |
582 CPP(ReflectSet) \ | 582 CPP(ReflectSet) \ |
583 CPP(ReflectSetPrototypeOf) \ | 583 CPP(ReflectSetPrototypeOf) \ |
584 \ | 584 \ |
585 /* RegExp */ \ | 585 /* RegExp */ \ |
586 CPP(RegExpCapture1Getter) \ | 586 CPP(RegExpCapture1Getter) \ |
587 CPP(RegExpCapture2Getter) \ | 587 CPP(RegExpCapture2Getter) \ |
588 CPP(RegExpCapture3Getter) \ | 588 CPP(RegExpCapture3Getter) \ |
589 CPP(RegExpCapture4Getter) \ | 589 CPP(RegExpCapture4Getter) \ |
590 CPP(RegExpCapture5Getter) \ | 590 CPP(RegExpCapture5Getter) \ |
591 CPP(RegExpCapture6Getter) \ | 591 CPP(RegExpCapture6Getter) \ |
592 CPP(RegExpCapture7Getter) \ | 592 CPP(RegExpCapture7Getter) \ |
593 CPP(RegExpCapture8Getter) \ | 593 CPP(RegExpCapture8Getter) \ |
594 CPP(RegExpCapture9Getter) \ | 594 CPP(RegExpCapture9Getter) \ |
595 CPP(RegExpConstructor) \ | 595 CPP(RegExpConstructor) \ |
596 TFJ(RegExpInternalMatch, 2) \ | 596 TFJ(RegExpInternalMatch, 2) \ |
597 CPP(RegExpInputGetter) \ | 597 CPP(RegExpInputGetter) \ |
598 CPP(RegExpInputSetter) \ | 598 CPP(RegExpInputSetter) \ |
599 CPP(RegExpLastMatchGetter) \ | 599 CPP(RegExpLastMatchGetter) \ |
600 CPP(RegExpLastParenGetter) \ | 600 CPP(RegExpLastParenGetter) \ |
601 CPP(RegExpLeftContextGetter) \ | 601 CPP(RegExpLeftContextGetter) \ |
602 CPP(RegExpPrototypeCompile) \ | 602 CPP(RegExpPrototypeCompile) \ |
603 TFJ(RegExpPrototypeExec, 1) \ | 603 TFJ(RegExpPrototypeExec, 1) \ |
604 TFJ(RegExpPrototypeFlagsGetter, 0) \ | 604 TFJ(RegExpPrototypeFlagsGetter, 0) \ |
605 TFJ(RegExpPrototypeGlobalGetter, 0) \ | 605 TFJ(RegExpPrototypeGlobalGetter, 0) \ |
606 TFJ(RegExpPrototypeIgnoreCaseGetter, 0) \ | 606 TFJ(RegExpPrototypeIgnoreCaseGetter, 0) \ |
607 TFJ(RegExpPrototypeMatch, 1) \ | 607 TFJ(RegExpPrototypeMatch, 1) \ |
608 TFJ(RegExpPrototypeMultilineGetter, 0) \ | 608 TFJ(RegExpPrototypeMultilineGetter, 0) \ |
609 TFJ(RegExpPrototypeReplace, 2) \ | 609 TFJ(RegExpPrototypeReplace, 2) \ |
610 TFJ(RegExpPrototypeSearch, 1) \ | 610 TFJ(RegExpPrototypeSearch, 1) \ |
611 CPP(RegExpPrototypeSourceGetter) \ | 611 CPP(RegExpPrototypeSourceGetter) \ |
612 CPP(RegExpPrototypeSpeciesGetter) \ | 612 CPP(RegExpPrototypeSpeciesGetter) \ |
613 CPP(RegExpPrototypeSplit) \ | 613 CPP(RegExpPrototypeSplit) \ |
614 TFJ(RegExpPrototypeStickyGetter, 0) \ | 614 TFJ(RegExpPrototypeStickyGetter, 0) \ |
615 TFJ(RegExpPrototypeTest, 1) \ | 615 TFJ(RegExpPrototypeTest, 1) \ |
616 CPP(RegExpPrototypeToString) \ | 616 CPP(RegExpPrototypeToString) \ |
617 TFJ(RegExpPrototypeUnicodeGetter, 0) \ | 617 TFJ(RegExpPrototypeUnicodeGetter, 0) \ |
618 CPP(RegExpRightContextGetter) \ | 618 CPP(RegExpRightContextGetter) \ |
619 \ | 619 \ |
620 /* SharedArrayBuffer */ \ | 620 /* SharedArrayBuffer */ \ |
621 CPP(SharedArrayBufferPrototypeGetByteLength) \ | 621 CPP(SharedArrayBufferPrototypeGetByteLength) \ |
622 TFJ(AtomicsLoad, 2) \ | 622 TFJ(AtomicsLoad, 2) \ |
623 TFJ(AtomicsStore, 3) \ | 623 TFJ(AtomicsStore, 3) \ |
624 \ | 624 \ |
625 /* String */ \ | 625 /* String */ \ |
626 ASM(StringConstructor) \ | 626 ASM(StringConstructor) \ |
627 ASM(StringConstructor_ConstructStub) \ | 627 ASM(StringConstructor_ConstructStub) \ |
628 CPP(StringFromCodePoint) \ | 628 CPP(StringFromCodePoint) \ |
629 /* ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits ) */ \ | 629 /* ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits ) */ \ |
630 TFJ(StringFromCharCode, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \ | 630 TFJ(StringFromCharCode, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \ |
631 /* ES6 section 21.1.3.1 String.prototype.charAt ( pos ) */ \ | 631 /* ES6 section 21.1.3.1 String.prototype.charAt ( pos ) */ \ |
632 TFJ(StringPrototypeCharAt, 1) \ | 632 TFJ(StringPrototypeCharAt, 1) \ |
633 /* ES6 section 21.1.3.2 String.prototype.charCodeAt ( pos ) */ \ | 633 /* ES6 section 21.1.3.2 String.prototype.charCodeAt ( pos ) */ \ |
634 TFJ(StringPrototypeCharCodeAt, 1) \ | 634 TFJ(StringPrototypeCharCodeAt, 1) \ |
635 /* ES6 section 21.1.3.6 */ \ | 635 /* ES6 section 21.1.3.6 */ \ |
636 /* String.prototype.endsWith ( searchString [ , endPosition ] ) */ \ | 636 /* String.prototype.endsWith ( searchString [ , endPosition ] ) */ \ |
637 CPP(StringPrototypeEndsWith) \ | 637 CPP(StringPrototypeEndsWith) \ |
638 /* ES6 section 21.1.3.7 */ \ | 638 /* ES6 section 21.1.3.7 */ \ |
639 /* String.prototype.includes ( searchString [ , position ] ) */ \ | 639 /* String.prototype.includes ( searchString [ , position ] ) */ \ |
640 CPP(StringPrototypeIncludes) \ | 640 CPP(StringPrototypeIncludes) \ |
641 /* ES6 section 21.1.3.8 */ \ | 641 /* ES6 section #sec-string.prototype.indexof */ \ |
642 /* String.prototype.indexOf ( searchString [ , position ] ) */ \ | 642 /* String.prototype.indexOf ( searchString [ , position ] ) */ \ |
643 CPP(StringPrototypeIndexOf) \ | 643 TFJ(StringPrototypeIndexOf, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \ |
644 /* ES6 section 21.1.3.9 */ \ | 644 /* ES6 section 21.1.3.9 */ \ |
645 /* String.prototype.lastIndexOf ( searchString [ , position ] ) */ \ | 645 /* String.prototype.lastIndexOf ( searchString [ , position ] ) */ \ |
646 CPP(StringPrototypeLastIndexOf) \ | 646 CPP(StringPrototypeLastIndexOf) \ |
647 /* ES6 section 21.1.3.10 String.prototype.localeCompare ( that ) */ \ | 647 /* ES6 section 21.1.3.10 String.prototype.localeCompare ( that ) */ \ |
648 CPP(StringPrototypeLocaleCompare) \ | 648 CPP(StringPrototypeLocaleCompare) \ |
649 /* ES6 section 21.1.3.12 String.prototype.normalize ( [form] ) */ \ | 649 /* ES6 section 21.1.3.12 String.prototype.normalize ( [form] ) */ \ |
650 CPP(StringPrototypeNormalize) \ | 650 CPP(StringPrototypeNormalize) \ |
651 /* ES6 section B.2.3.1 String.prototype.substr ( start, length ) */ \ | 651 /* es6 section b.2.3.1 string.prototype.substr ( start, length ) */ \ |
652 TFJ(StringPrototypeSubstr, 2) \ | 652 TFJ(StringPrototypeSubstr, 2) \ |
653 /* ES6 section 21.1.3.19 String.prototype.substring ( start, end ) */ \ | 653 /* ES6 section 21.1.3.19 String.prototype.substring ( start, end ) */ \ |
654 TFJ(StringPrototypeSubstring, 2) \ | 654 TFJ(StringPrototypeSubstring, 2) \ |
655 /* ES6 section 21.1.3.20 */ \ | 655 /* ES6 section 21.1.3.20 */ \ |
656 /* String.prototype.startsWith ( searchString [ , position ] ) */ \ | 656 /* String.prototype.startsWith ( searchString [ , position ] ) */ \ |
657 CPP(StringPrototypeStartsWith) \ | 657 CPP(StringPrototypeStartsWith) \ |
658 /* ES6 section 21.1.3.25 String.prototype.toString () */ \ | 658 /* ES6 section 21.1.3.25 String.prototype.toString () */ \ |
659 TFJ(StringPrototypeToString, 0) \ | 659 TFJ(StringPrototypeToString, 0) \ |
660 CPP(StringPrototypeTrim) \ | 660 CPP(StringPrototypeTrim) \ |
661 CPP(StringPrototypeTrimLeft) \ | 661 CPP(StringPrototypeTrimLeft) \ |
662 CPP(StringPrototypeTrimRight) \ | 662 CPP(StringPrototypeTrimRight) \ |
663 /* ES6 section 21.1.3.28 String.prototype.valueOf () */ \ | 663 /* ES6 section 21.1.3.28 String.prototype.valueOf () */ \ |
664 TFJ(StringPrototypeValueOf, 0) \ | 664 TFJ(StringPrototypeValueOf, 0) \ |
665 /* ES6 #sec-string.prototype-@@iterator */ \ | 665 /* ES6 #sec-string.prototype-@@iterator */ \ |
666 TFJ(StringPrototypeIterator, 0) \ | 666 TFJ(StringPrototypeIterator, 0) \ |
667 \ | 667 \ |
668 /* StringIterator */ \ | 668 /* StringIterator */ \ |
669 TFJ(StringIteratorPrototypeNext, 0) \ | 669 TFJ(StringIteratorPrototypeNext, 0) \ |
670 \ | 670 \ |
671 /* Symbol */ \ | 671 /* Symbol */ \ |
672 CPP(SymbolConstructor) \ | 672 CPP(SymbolConstructor) \ |
673 CPP(SymbolConstructor_ConstructStub) \ | 673 CPP(SymbolConstructor_ConstructStub) \ |
674 /* ES6 section 19.4.3.4 Symbol.prototype [ @@toPrimitive ] ( hint ) */ \ | 674 /* ES6 section 19.4.3.4 Symbol.prototype [ @@toPrimitive ] ( hint ) */ \ |
675 TFJ(SymbolPrototypeToPrimitive, 1) \ | 675 TFJ(SymbolPrototypeToPrimitive, 1) \ |
676 /* ES6 section 19.4.3.2 Symbol.prototype.toString ( ) */ \ | 676 /* ES6 section 19.4.3.2 Symbol.prototype.toString ( ) */ \ |
677 TFJ(SymbolPrototypeToString, 0) \ | 677 TFJ(SymbolPrototypeToString, 0) \ |
678 /* ES6 section 19.4.3.3 Symbol.prototype.valueOf ( ) */ \ | 678 /* ES6 section 19.4.3.3 Symbol.prototype.valueOf ( ) */ \ |
679 TFJ(SymbolPrototypeValueOf, 0) \ | 679 TFJ(SymbolPrototypeValueOf, 0) \ |
680 \ | 680 \ |
681 /* TypedArray */ \ | 681 /* TypedArray */ \ |
682 CPP(TypedArrayPrototypeBuffer) \ | 682 CPP(TypedArrayPrototypeBuffer) \ |
683 /* ES6 section 22.2.3.2 get %TypedArray%.prototype.byteLength */ \ | 683 /* ES6 section 22.2.3.2 get %TypedArray%.prototype.byteLength */ \ |
684 TFJ(TypedArrayPrototypeByteLength, 0) \ | 684 TFJ(TypedArrayPrototypeByteLength, 0) \ |
685 /* ES6 section 22.2.3.3 get %TypedArray%.prototype.byteOffset */ \ | 685 /* ES6 section 22.2.3.3 get %TypedArray%.prototype.byteOffset */ \ |
686 TFJ(TypedArrayPrototypeByteOffset, 0) \ | 686 TFJ(TypedArrayPrototypeByteOffset, 0) \ |
687 /* ES6 section 22.2.3.18 get %TypedArray%.prototype.length */ \ | 687 /* ES6 section 22.2.3.18 get %TypedArray%.prototype.length */ \ |
688 TFJ(TypedArrayPrototypeLength, 0) \ | 688 TFJ(TypedArrayPrototypeLength, 0) \ |
689 /* ES6 #sec-%typedarray%.prototype.entries */ \ | 689 /* ES6 #sec-%typedarray%.prototype.entries */ \ |
690 TFJ(TypedArrayPrototypeEntries, 0) \ | 690 TFJ(TypedArrayPrototypeEntries, 0) \ |
691 /* ES6 #sec-%typedarray%.prototype.keys */ \ | 691 /* ES6 #sec-%typedarray%.prototype.keys */ \ |
692 TFJ(TypedArrayPrototypeKeys, 0) \ | 692 TFJ(TypedArrayPrototypeKeys, 0) \ |
693 /* ES6 #sec-%typedarray%.prototype.values */ \ | 693 /* ES6 #sec-%typedarray%.prototype.values */ \ |
694 TFJ(TypedArrayPrototypeValues, 0) \ | 694 TFJ(TypedArrayPrototypeValues, 0) \ |
695 \ | 695 \ |
696 CPP(ModuleNamespaceIterator) \ | 696 CPP(ModuleNamespaceIterator) \ |
697 CPP(FixedArrayIteratorNext) | 697 CPP(FixedArrayIteratorNext) |
698 | 698 |
699 #define IGNORE_BUILTIN(...) | 699 #define IGNORE_BUILTIN(...) |
700 | 700 |
701 #define BUILTIN_LIST_ALL(V) BUILTIN_LIST(V, V, V, V, V, V, V) | 701 #define BUILTIN_LIST_ALL(V) BUILTIN_LIST(V, V, V, V, V, V, V) |
702 | 702 |
703 #define BUILTIN_LIST_C(V) \ | 703 #define BUILTIN_LIST_C(V) \ |
704 BUILTIN_LIST(V, V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ | 704 BUILTIN_LIST(V, V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ |
705 IGNORE_BUILTIN, IGNORE_BUILTIN) | 705 IGNORE_BUILTIN, IGNORE_BUILTIN) |
706 | 706 |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
837 | 837 |
838 friend class Isolate; | 838 friend class Isolate; |
839 | 839 |
840 DISALLOW_COPY_AND_ASSIGN(Builtins); | 840 DISALLOW_COPY_AND_ASSIGN(Builtins); |
841 }; | 841 }; |
842 | 842 |
843 } // namespace internal | 843 } // namespace internal |
844 } // namespace v8 | 844 } // namespace v8 |
845 | 845 |
846 #endif // V8_BUILTINS_BUILTINS_H_ | 846 #endif // V8_BUILTINS_BUILTINS_H_ |
OLD | NEW |