Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Side by Side Diff: src/builtins/builtins.h

Issue 2539093002: [runtime] Port simple String.prototype.indexOf cases to TF Builtin (Closed)
Patch Set: merging with master Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/assembler.cc ('k') | src/builtins/builtins-array.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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_
OLDNEW
« no previous file with comments | « src/assembler.cc ('k') | src/builtins/builtins-array.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698