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