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 29 matching lines...) Expand all Loading... |
40 // TFJ: Builtin in Turbofan, with JS linkage (callable as Javascript function). | 40 // TFJ: Builtin in Turbofan, with JS linkage (callable as Javascript function). |
41 // Args: name, arguments count | 41 // Args: name, arguments count |
42 // TFS: Builtin in Turbofan, with CodeStub linkage. | 42 // TFS: Builtin in Turbofan, with CodeStub linkage. |
43 // Args: name, code kind, extra IC state, interface descriptor | 43 // Args: name, code kind, extra IC state, interface descriptor |
44 // ASM: Builtin in platform-dependent assembly. | 44 // ASM: Builtin in platform-dependent assembly. |
45 // Args: name | 45 // Args: name |
46 // ASH: Handlers implemented in platform-dependent assembly. | 46 // ASH: Handlers implemented in platform-dependent assembly. |
47 // Args: name, code kind, extra IC state | 47 // Args: name, code kind, extra IC state |
48 // DBG: Builtin in platform-dependent assembly, used by the debugger. | 48 // DBG: Builtin in platform-dependent assembly, used by the debugger. |
49 // Args: name | 49 // Args: name |
50 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ | 50 #define BUILTIN_LIST(CPP, API, TFJ, TFS, ASM, ASH, DBG) \ |
51 ASM(Abort) \ | 51 ASM(Abort) \ |
52 /* Handlers */ \ | 52 /* Handlers */ \ |
53 ASH(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, kNoExtraICState) \ | 53 ASH(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, kNoExtraICState) \ |
54 ASM(KeyedLoadIC_Miss) \ | 54 ASM(KeyedLoadIC_Miss) \ |
55 ASH(KeyedLoadIC_Slow, HANDLER, Code::KEYED_LOAD_IC) \ | 55 ASH(KeyedLoadIC_Slow, HANDLER, Code::KEYED_LOAD_IC) \ |
56 ASH(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, kNoExtraICState) \ | 56 ASH(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, kNoExtraICState) \ |
57 ASH(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, \ | 57 ASH(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, \ |
58 StoreICState::kStrictModeState) \ | 58 StoreICState::kStrictModeState) \ |
59 ASM(KeyedStoreIC_Miss) \ | 59 ASM(KeyedStoreIC_Miss) \ |
60 ASH(KeyedStoreIC_Slow, HANDLER, Code::KEYED_STORE_IC) \ | 60 ASH(KeyedStoreIC_Slow, HANDLER, Code::KEYED_STORE_IC) \ |
61 TFS(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ | 61 TFS(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector) \ |
62 TFS(LoadGlobalIC_SlowInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ | 62 TFS(LoadGlobalIC_Slow, HANDLER, Code::LOAD_GLOBAL_IC, LoadGlobalWithVector) \ |
63 LoadGlobalWithVector) \ | 63 ASH(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState) \ |
64 TFS(LoadGlobalIC_SlowNotInsideTypeof, HANDLER, Code::LOAD_GLOBAL_IC, \ | 64 TFS(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ |
65 LoadGlobalWithVector) \ | 65 ASH(LoadIC_Normal, HANDLER, Code::LOAD_IC) \ |
66 ASH(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState) \ | 66 TFS(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ |
67 TFS(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector) \ | 67 TFS(StoreIC_Miss, BUILTIN, kNoExtraICState, StoreWithVector) \ |
68 ASH(LoadIC_Normal, HANDLER, Code::LOAD_IC) \ | 68 ASH(StoreIC_Normal, HANDLER, Code::STORE_IC) \ |
69 TFS(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector) \ | 69 ASH(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState) \ |
70 TFS(StoreIC_Miss, BUILTIN, kNoExtraICState, StoreWithVector) \ | 70 TFS(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, StoreWithVector) \ |
71 ASH(StoreIC_Normal, HANDLER, Code::STORE_IC) \ | 71 TFS(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, StoreWithVector) \ |
72 ASH(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState) \ | 72 \ |
73 TFS(StoreIC_SlowSloppy, HANDLER, Code::STORE_IC, StoreWithVector) \ | 73 /* Code aging */ \ |
74 TFS(StoreIC_SlowStrict, HANDLER, Code::STORE_IC, StoreWithVector) \ | 74 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ |
75 \ | 75 \ |
76 /* Code aging */ \ | 76 /* Calls */ \ |
77 CODE_AGE_LIST_WITH_ARG(DECLARE_CODE_AGE_BUILTIN, ASM) \ | 77 ASM(ArgumentsAdaptorTrampoline) \ |
78 \ | 78 /* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */ \ |
79 /* Calls */ \ | 79 ASM(CallFunction_ReceiverIsNullOrUndefined) \ |
80 ASM(ArgumentsAdaptorTrampoline) \ | 80 ASM(CallFunction_ReceiverIsNotNullOrUndefined) \ |
81 /* ES6 section 9.2.1 [[Call]] ( thisArgument, argumentsList) */ \ | 81 ASM(CallFunction_ReceiverIsAny) \ |
82 ASM(CallFunction_ReceiverIsNullOrUndefined) \ | 82 ASM(TailCallFunction_ReceiverIsNullOrUndefined) \ |
83 ASM(CallFunction_ReceiverIsNotNullOrUndefined) \ | 83 ASM(TailCallFunction_ReceiverIsNotNullOrUndefined) \ |
84 ASM(CallFunction_ReceiverIsAny) \ | 84 ASM(TailCallFunction_ReceiverIsAny) \ |
85 ASM(TailCallFunction_ReceiverIsNullOrUndefined) \ | 85 /* ES6 section 9.4.1.1 [[Call]] ( thisArgument, argumentsList) */ \ |
86 ASM(TailCallFunction_ReceiverIsNotNullOrUndefined) \ | 86 ASM(CallBoundFunction) \ |
87 ASM(TailCallFunction_ReceiverIsAny) \ | 87 ASM(TailCallBoundFunction) \ |
88 /* ES6 section 9.4.1.1 [[Call]] ( thisArgument, argumentsList) */ \ | 88 /* ES6 section 7.3.12 Call(F, V, [argumentsList]) */ \ |
89 ASM(CallBoundFunction) \ | 89 ASM(Call_ReceiverIsNullOrUndefined) \ |
90 ASM(TailCallBoundFunction) \ | 90 ASM(Call_ReceiverIsNotNullOrUndefined) \ |
91 /* ES6 section 7.3.12 Call(F, V, [argumentsList]) */ \ | 91 ASM(Call_ReceiverIsAny) \ |
92 ASM(Call_ReceiverIsNullOrUndefined) \ | 92 ASM(TailCall_ReceiverIsNullOrUndefined) \ |
93 ASM(Call_ReceiverIsNotNullOrUndefined) \ | 93 ASM(TailCall_ReceiverIsNotNullOrUndefined) \ |
94 ASM(Call_ReceiverIsAny) \ | 94 ASM(TailCall_ReceiverIsAny) \ |
95 ASM(TailCall_ReceiverIsNullOrUndefined) \ | 95 \ |
96 ASM(TailCall_ReceiverIsNotNullOrUndefined) \ | 96 /* Construct */ \ |
97 ASM(TailCall_ReceiverIsAny) \ | 97 /* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */ \ |
98 \ | 98 ASM(ConstructFunction) \ |
99 /* Construct */ \ | 99 /* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */ \ |
100 /* ES6 section 9.2.2 [[Construct]] ( argumentsList, newTarget) */ \ | 100 ASM(ConstructBoundFunction) \ |
101 ASM(ConstructFunction) \ | 101 ASM(ConstructedNonConstructable) \ |
102 /* ES6 section 9.4.1.2 [[Construct]] (argumentsList, newTarget) */ \ | 102 /* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \ |
103 ASM(ConstructBoundFunction) \ | 103 ASM(ConstructProxy) \ |
104 ASM(ConstructedNonConstructable) \ | 104 /* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */ \ |
105 /* ES6 section 9.5.14 [[Construct]] ( argumentsList, newTarget) */ \ | 105 ASM(Construct) \ |
106 ASM(ConstructProxy) \ | 106 ASM(JSConstructStubApi) \ |
107 /* ES6 section 7.3.13 Construct (F, [argumentsList], [newTarget]) */ \ | 107 ASM(JSConstructStubGeneric) \ |
108 ASM(Construct) \ | 108 ASM(JSBuiltinsConstructStub) \ |
109 ASM(JSConstructStubApi) \ | 109 ASM(JSBuiltinsConstructStubForDerived) \ |
110 ASM(JSConstructStubGeneric) \ | 110 \ |
111 ASM(JSBuiltinsConstructStub) \ | 111 /* Apply and entries */ \ |
112 ASM(JSBuiltinsConstructStubForDerived) \ | 112 ASM(Apply) \ |
113 \ | 113 ASM(JSEntryTrampoline) \ |
114 /* Apply and entries */ \ | 114 ASM(JSConstructEntryTrampoline) \ |
115 ASM(Apply) \ | 115 ASM(ResumeGeneratorTrampoline) \ |
116 ASM(JSEntryTrampoline) \ | 116 \ |
117 ASM(JSConstructEntryTrampoline) \ | 117 /* Stack and interrupt check */ \ |
118 ASM(ResumeGeneratorTrampoline) \ | 118 ASM(InterruptCheck) \ |
119 \ | 119 ASM(StackCheck) \ |
120 /* Stack and interrupt check */ \ | 120 \ |
121 ASM(InterruptCheck) \ | 121 /* Interpreter */ \ |
122 ASM(StackCheck) \ | 122 ASM(InterpreterEntryTrampoline) \ |
123 \ | 123 ASM(InterpreterMarkBaselineOnReturn) \ |
124 /* Interpreter */ \ | 124 ASM(InterpreterPushArgsAndCall) \ |
125 ASM(InterpreterEntryTrampoline) \ | 125 ASM(InterpreterPushArgsAndCallFunction) \ |
126 ASM(InterpreterMarkBaselineOnReturn) \ | 126 ASM(InterpreterPushArgsAndConstruct) \ |
127 ASM(InterpreterPushArgsAndCall) \ | 127 ASM(InterpreterPushArgsAndTailCall) \ |
128 ASM(InterpreterPushArgsAndCallFunction) \ | 128 ASM(InterpreterPushArgsAndTailCallFunction) \ |
129 ASM(InterpreterPushArgsAndConstruct) \ | 129 ASM(InterpreterEnterBytecodeDispatch) \ |
130 ASM(InterpreterPushArgsAndTailCall) \ | 130 ASM(InterpreterOnStackReplacement) \ |
131 ASM(InterpreterPushArgsAndTailCallFunction) \ | 131 \ |
132 ASM(InterpreterEnterBytecodeDispatch) \ | 132 /* Code life-cycle */ \ |
133 ASM(InterpreterOnStackReplacement) \ | 133 ASM(CompileLazy) \ |
134 \ | 134 ASM(CompileBaseline) \ |
135 /* Code life-cycle */ \ | 135 ASM(CompileOptimized) \ |
136 ASM(CompileLazy) \ | 136 ASM(CompileOptimizedConcurrent) \ |
137 ASM(CompileBaseline) \ | 137 ASM(InOptimizationQueue) \ |
138 ASM(CompileOptimized) \ | 138 ASM(InstantiateAsmJs) \ |
139 ASM(CompileOptimizedConcurrent) \ | 139 ASM(MarkCodeAsToBeExecutedOnce) \ |
140 ASM(InOptimizationQueue) \ | 140 ASM(MarkCodeAsExecutedOnce) \ |
141 ASM(InstantiateAsmJs) \ | 141 ASM(MarkCodeAsExecutedTwice) \ |
142 ASM(MarkCodeAsToBeExecutedOnce) \ | 142 ASM(NotifyDeoptimized) \ |
143 ASM(MarkCodeAsExecutedOnce) \ | 143 ASM(NotifySoftDeoptimized) \ |
144 ASM(MarkCodeAsExecutedTwice) \ | 144 ASM(NotifyLazyDeoptimized) \ |
145 ASM(NotifyDeoptimized) \ | 145 ASM(NotifyStubFailure) \ |
146 ASM(NotifySoftDeoptimized) \ | 146 ASM(NotifyStubFailureSaveDoubles) \ |
147 ASM(NotifyLazyDeoptimized) \ | 147 ASM(OnStackReplacement) \ |
148 ASM(NotifyStubFailure) \ | 148 \ |
149 ASM(NotifyStubFailureSaveDoubles) \ | 149 /* API callback handling */ \ |
150 ASM(OnStackReplacement) \ | 150 API(HandleApiCall) \ |
151 \ | 151 API(HandleApiCallAsFunction) \ |
152 /* API callback handling */ \ | 152 API(HandleApiCallAsConstructor) \ |
153 API(HandleApiCall) \ | 153 ASM(HandleFastApiCall) \ |
154 API(HandleApiCallAsFunction) \ | 154 \ |
155 API(HandleApiCallAsConstructor) \ | 155 /* Adapters for Turbofan into runtime */ \ |
156 ASM(HandleFastApiCall) \ | 156 ASM(AllocateInNewSpace) \ |
157 \ | 157 ASM(AllocateInOldSpace) \ |
158 /* Adapters for Turbofan into runtime */ \ | 158 \ |
159 ASM(AllocateInNewSpace) \ | 159 /* TurboFan support builtins */ \ |
160 ASM(AllocateInOldSpace) \ | 160 TFS(CopyFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ |
161 \ | 161 CopyFastSmiOrObjectElements) \ |
162 /* TurboFan support builtins */ \ | 162 TFS(GrowFastDoubleElements, BUILTIN, kNoExtraICState, GrowArrayElements) \ |
163 TFS(CopyFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ | 163 TFS(GrowFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ |
164 CopyFastSmiOrObjectElements) \ | 164 GrowArrayElements) \ |
165 TFS(GrowFastDoubleElements, BUILTIN, kNoExtraICState, GrowArrayElements) \ | 165 \ |
166 TFS(GrowFastSmiOrObjectElements, BUILTIN, kNoExtraICState, \ | 166 /* Debugger */ \ |
167 GrowArrayElements) \ | 167 DBG(FrameDropper_LiveEdit) \ |
168 \ | 168 DBG(Return_DebugBreak) \ |
169 /* Debugger */ \ | 169 DBG(Slot_DebugBreak) \ |
170 DBG(FrameDropper_LiveEdit) \ | 170 \ |
171 DBG(Return_DebugBreak) \ | 171 /* Type conversions */ \ |
172 DBG(Slot_DebugBreak) \ | 172 TFS(ToBoolean, BUILTIN, kNoExtraICState, TypeConversion) \ |
173 \ | 173 TFS(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ |
174 /* Type conversions */ \ | 174 TFS(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ |
175 TFS(ToBoolean, BUILTIN, kNoExtraICState, TypeConversion) \ | 175 TFS(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, \ |
176 TFS(OrdinaryToPrimitive_Number, BUILTIN, kNoExtraICState, TypeConversion) \ | 176 TypeConversion) \ |
177 TFS(OrdinaryToPrimitive_String, BUILTIN, kNoExtraICState, TypeConversion) \ | 177 TFS(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, \ |
178 TFS(NonPrimitiveToPrimitive_Default, BUILTIN, kNoExtraICState, \ | 178 TypeConversion) \ |
179 TypeConversion) \ | 179 TFS(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, \ |
180 TFS(NonPrimitiveToPrimitive_Number, BUILTIN, kNoExtraICState, \ | 180 TypeConversion) \ |
181 TypeConversion) \ | 181 ASM(StringToNumber) \ |
182 TFS(NonPrimitiveToPrimitive_String, BUILTIN, kNoExtraICState, \ | 182 TFS(NonNumberToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ |
183 TypeConversion) \ | 183 ASM(ToNumber) \ |
184 ASM(StringToNumber) \ | 184 \ |
185 TFS(NonNumberToNumber, BUILTIN, kNoExtraICState, TypeConversion) \ | 185 /* Built-in functions for Javascript */ \ |
186 ASM(ToNumber) \ | 186 /* Special internal builtins */ \ |
187 \ | 187 CPP(EmptyFunction) \ |
188 /* Built-in functions for Javascript */ \ | 188 CPP(Illegal) \ |
189 /* Special internal builtins */ \ | 189 CPP(RestrictedFunctionPropertiesThrower) \ |
190 CPP(EmptyFunction) \ | 190 CPP(RestrictedStrictArgumentsPropertiesThrower) \ |
191 CPP(Illegal) \ | 191 CPP(UnsupportedThrower) \ |
192 CPP(RestrictedFunctionPropertiesThrower) \ | 192 \ |
193 CPP(RestrictedStrictArgumentsPropertiesThrower) \ | 193 /* Array */ \ |
194 CPP(UnsupportedThrower) \ | 194 ASM(ArrayCode) \ |
195 \ | 195 ASM(InternalArrayCode) \ |
196 /* Array */ \ | 196 CPP(ArrayConcat) \ |
197 ASM(ArrayCode) \ | 197 /* ES6 section 22.1.2.2 Array.isArray */ \ |
198 ASM(InternalArrayCode) \ | 198 TFJ(ArrayIsArray, 2) \ |
199 CPP(ArrayConcat) \ | 199 /* ES7 #sec-array.prototype.includes */ \ |
200 /* ES6 section 22.1.2.2 Array.isArray */ \ | 200 TFJ(ArrayIncludes, 3) \ |
201 TFJ(ArrayIsArray, 2) \ | 201 CPP(ArrayPop) \ |
202 /* ES7 #sec-array.prototype.includes */ \ | 202 CPP(ArrayPush) \ |
203 TFJ(ArrayIncludes, 3) \ | 203 CPP(ArrayShift) \ |
204 CPP(ArrayPop) \ | 204 CPP(ArraySlice) \ |
205 CPP(ArrayPush) \ | 205 CPP(ArraySplice) \ |
206 CPP(ArrayShift) \ | 206 CPP(ArrayUnshift) \ |
207 CPP(ArraySlice) \ | 207 \ |
208 CPP(ArraySplice) \ | 208 /* ArrayBuffer */ \ |
209 CPP(ArrayUnshift) \ | 209 CPP(ArrayBufferConstructor) \ |
210 \ | 210 CPP(ArrayBufferConstructor_ConstructStub) \ |
211 /* ArrayBuffer */ \ | 211 CPP(ArrayBufferPrototypeGetByteLength) \ |
212 CPP(ArrayBufferConstructor) \ | 212 CPP(ArrayBufferIsView) \ |
213 CPP(ArrayBufferConstructor_ConstructStub) \ | 213 \ |
214 CPP(ArrayBufferPrototypeGetByteLength) \ | 214 /* Boolean */ \ |
215 CPP(ArrayBufferIsView) \ | 215 CPP(BooleanConstructor) \ |
216 \ | 216 CPP(BooleanConstructor_ConstructStub) \ |
217 /* Boolean */ \ | 217 /* ES6 section 19.3.3.2 Boolean.prototype.toString ( ) */ \ |
218 CPP(BooleanConstructor) \ | 218 TFJ(BooleanPrototypeToString, 1) \ |
219 CPP(BooleanConstructor_ConstructStub) \ | 219 /* ES6 section 19.3.3.3 Boolean.prototype.valueOf ( ) */ \ |
220 /* ES6 section 19.3.3.2 Boolean.prototype.toString ( ) */ \ | 220 TFJ(BooleanPrototypeValueOf, 1) \ |
221 TFJ(BooleanPrototypeToString, 1) \ | 221 \ |
222 /* ES6 section 19.3.3.3 Boolean.prototype.valueOf ( ) */ \ | 222 /* CallSite */ \ |
223 TFJ(BooleanPrototypeValueOf, 1) \ | 223 CPP(CallSitePrototypeGetColumnNumber) \ |
224 \ | 224 CPP(CallSitePrototypeGetEvalOrigin) \ |
225 /* CallSite */ \ | 225 CPP(CallSitePrototypeGetFileName) \ |
226 CPP(CallSitePrototypeGetColumnNumber) \ | 226 CPP(CallSitePrototypeGetFunction) \ |
227 CPP(CallSitePrototypeGetEvalOrigin) \ | 227 CPP(CallSitePrototypeGetFunctionName) \ |
228 CPP(CallSitePrototypeGetFileName) \ | 228 CPP(CallSitePrototypeGetLineNumber) \ |
229 CPP(CallSitePrototypeGetFunction) \ | 229 CPP(CallSitePrototypeGetMethodName) \ |
230 CPP(CallSitePrototypeGetFunctionName) \ | 230 CPP(CallSitePrototypeGetPosition) \ |
231 CPP(CallSitePrototypeGetLineNumber) \ | 231 CPP(CallSitePrototypeGetScriptNameOrSourceURL) \ |
232 CPP(CallSitePrototypeGetMethodName) \ | 232 CPP(CallSitePrototypeGetThis) \ |
233 CPP(CallSitePrototypeGetPosition) \ | 233 CPP(CallSitePrototypeGetTypeName) \ |
234 CPP(CallSitePrototypeGetScriptNameOrSourceURL) \ | 234 CPP(CallSitePrototypeIsConstructor) \ |
235 CPP(CallSitePrototypeGetThis) \ | 235 CPP(CallSitePrototypeIsEval) \ |
236 CPP(CallSitePrototypeGetTypeName) \ | 236 CPP(CallSitePrototypeIsNative) \ |
237 CPP(CallSitePrototypeIsConstructor) \ | 237 CPP(CallSitePrototypeIsToplevel) \ |
238 CPP(CallSitePrototypeIsEval) \ | 238 CPP(CallSitePrototypeToString) \ |
239 CPP(CallSitePrototypeIsNative) \ | 239 \ |
240 CPP(CallSitePrototypeIsToplevel) \ | 240 /* DataView */ \ |
241 CPP(CallSitePrototypeToString) \ | 241 CPP(DataViewConstructor) \ |
242 \ | 242 CPP(DataViewConstructor_ConstructStub) \ |
243 /* DataView */ \ | 243 CPP(DataViewPrototypeGetBuffer) \ |
244 CPP(DataViewConstructor) \ | 244 CPP(DataViewPrototypeGetByteLength) \ |
245 CPP(DataViewConstructor_ConstructStub) \ | 245 CPP(DataViewPrototypeGetByteOffset) \ |
246 CPP(DataViewPrototypeGetBuffer) \ | 246 \ |
247 CPP(DataViewPrototypeGetByteLength) \ | 247 /* Date */ \ |
248 CPP(DataViewPrototypeGetByteOffset) \ | 248 CPP(DateConstructor) \ |
249 \ | 249 CPP(DateConstructor_ConstructStub) \ |
250 /* Date */ \ | 250 /* ES6 section 20.3.4.2 Date.prototype.getDate ( ) */ \ |
251 CPP(DateConstructor) \ | 251 ASM(DatePrototypeGetDate) \ |
252 CPP(DateConstructor_ConstructStub) \ | 252 /* ES6 section 20.3.4.3 Date.prototype.getDay ( ) */ \ |
253 /* ES6 section 20.3.4.2 Date.prototype.getDate ( ) */ \ | 253 ASM(DatePrototypeGetDay) \ |
254 ASM(DatePrototypeGetDate) \ | 254 /* ES6 section 20.3.4.4 Date.prototype.getFullYear ( ) */ \ |
255 /* ES6 section 20.3.4.3 Date.prototype.getDay ( ) */ \ | 255 ASM(DatePrototypeGetFullYear) \ |
256 ASM(DatePrototypeGetDay) \ | 256 /* ES6 section 20.3.4.5 Date.prototype.getHours ( ) */ \ |
257 /* ES6 section 20.3.4.4 Date.prototype.getFullYear ( ) */ \ | 257 ASM(DatePrototypeGetHours) \ |
258 ASM(DatePrototypeGetFullYear) \ | 258 /* ES6 section 20.3.4.6 Date.prototype.getMilliseconds ( ) */ \ |
259 /* ES6 section 20.3.4.5 Date.prototype.getHours ( ) */ \ | 259 ASM(DatePrototypeGetMilliseconds) \ |
260 ASM(DatePrototypeGetHours) \ | 260 /* ES6 section 20.3.4.7 Date.prototype.getMinutes ( ) */ \ |
261 /* ES6 section 20.3.4.6 Date.prototype.getMilliseconds ( ) */ \ | 261 ASM(DatePrototypeGetMinutes) \ |
262 ASM(DatePrototypeGetMilliseconds) \ | 262 /* ES6 section 20.3.4.8 Date.prototype.getMonth */ \ |
263 /* ES6 section 20.3.4.7 Date.prototype.getMinutes ( ) */ \ | 263 ASM(DatePrototypeGetMonth) \ |
264 ASM(DatePrototypeGetMinutes) \ | 264 /* ES6 section 20.3.4.9 Date.prototype.getSeconds ( ) */ \ |
265 /* ES6 section 20.3.4.8 Date.prototype.getMonth */ \ | 265 ASM(DatePrototypeGetSeconds) \ |
266 ASM(DatePrototypeGetMonth) \ | 266 /* ES6 section 20.3.4.10 Date.prototype.getTime ( ) */ \ |
267 /* ES6 section 20.3.4.9 Date.prototype.getSeconds ( ) */ \ | 267 ASM(DatePrototypeGetTime) \ |
268 ASM(DatePrototypeGetSeconds) \ | 268 /* ES6 section 20.3.4.11 Date.prototype.getTimezoneOffset ( ) */ \ |
269 /* ES6 section 20.3.4.10 Date.prototype.getTime ( ) */ \ | 269 ASM(DatePrototypeGetTimezoneOffset) \ |
270 ASM(DatePrototypeGetTime) \ | 270 /* ES6 section 20.3.4.12 Date.prototype.getUTCDate ( ) */ \ |
271 /* ES6 section 20.3.4.11 Date.prototype.getTimezoneOffset ( ) */ \ | 271 ASM(DatePrototypeGetUTCDate) \ |
272 ASM(DatePrototypeGetTimezoneOffset) \ | 272 /* ES6 section 20.3.4.13 Date.prototype.getUTCDay ( ) */ \ |
273 /* ES6 section 20.3.4.12 Date.prototype.getUTCDate ( ) */ \ | 273 ASM(DatePrototypeGetUTCDay) \ |
274 ASM(DatePrototypeGetUTCDate) \ | 274 /* ES6 section 20.3.4.14 Date.prototype.getUTCFullYear ( ) */ \ |
275 /* ES6 section 20.3.4.13 Date.prototype.getUTCDay ( ) */ \ | 275 ASM(DatePrototypeGetUTCFullYear) \ |
276 ASM(DatePrototypeGetUTCDay) \ | 276 /* ES6 section 20.3.4.15 Date.prototype.getUTCHours ( ) */ \ |
277 /* ES6 section 20.3.4.14 Date.prototype.getUTCFullYear ( ) */ \ | 277 ASM(DatePrototypeGetUTCHours) \ |
278 ASM(DatePrototypeGetUTCFullYear) \ | 278 /* ES6 section 20.3.4.16 Date.prototype.getUTCMilliseconds ( ) */ \ |
279 /* ES6 section 20.3.4.15 Date.prototype.getUTCHours ( ) */ \ | 279 ASM(DatePrototypeGetUTCMilliseconds) \ |
280 ASM(DatePrototypeGetUTCHours) \ | 280 /* ES6 section 20.3.4.17 Date.prototype.getUTCMinutes ( ) */ \ |
281 /* ES6 section 20.3.4.16 Date.prototype.getUTCMilliseconds ( ) */ \ | 281 ASM(DatePrototypeGetUTCMinutes) \ |
282 ASM(DatePrototypeGetUTCMilliseconds) \ | 282 /* ES6 section 20.3.4.18 Date.prototype.getUTCMonth ( ) */ \ |
283 /* ES6 section 20.3.4.17 Date.prototype.getUTCMinutes ( ) */ \ | 283 ASM(DatePrototypeGetUTCMonth) \ |
284 ASM(DatePrototypeGetUTCMinutes) \ | 284 /* ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( ) */ \ |
285 /* ES6 section 20.3.4.18 Date.prototype.getUTCMonth ( ) */ \ | 285 ASM(DatePrototypeGetUTCSeconds) \ |
286 ASM(DatePrototypeGetUTCMonth) \ | 286 CPP(DatePrototypeGetYear) \ |
287 /* ES6 section 20.3.4.19 Date.prototype.getUTCSeconds ( ) */ \ | 287 CPP(DatePrototypeSetYear) \ |
288 ASM(DatePrototypeGetUTCSeconds) \ | 288 CPP(DateNow) \ |
289 CPP(DatePrototypeGetYear) \ | 289 CPP(DateParse) \ |
290 CPP(DatePrototypeSetYear) \ | 290 CPP(DatePrototypeSetDate) \ |
291 CPP(DateNow) \ | 291 CPP(DatePrototypeSetFullYear) \ |
292 CPP(DateParse) \ | 292 CPP(DatePrototypeSetHours) \ |
293 CPP(DatePrototypeSetDate) \ | 293 CPP(DatePrototypeSetMilliseconds) \ |
294 CPP(DatePrototypeSetFullYear) \ | 294 CPP(DatePrototypeSetMinutes) \ |
295 CPP(DatePrototypeSetHours) \ | 295 CPP(DatePrototypeSetMonth) \ |
296 CPP(DatePrototypeSetMilliseconds) \ | 296 CPP(DatePrototypeSetSeconds) \ |
297 CPP(DatePrototypeSetMinutes) \ | 297 CPP(DatePrototypeSetTime) \ |
298 CPP(DatePrototypeSetMonth) \ | 298 CPP(DatePrototypeSetUTCDate) \ |
299 CPP(DatePrototypeSetSeconds) \ | 299 CPP(DatePrototypeSetUTCFullYear) \ |
300 CPP(DatePrototypeSetTime) \ | 300 CPP(DatePrototypeSetUTCHours) \ |
301 CPP(DatePrototypeSetUTCDate) \ | 301 CPP(DatePrototypeSetUTCMilliseconds) \ |
302 CPP(DatePrototypeSetUTCFullYear) \ | 302 CPP(DatePrototypeSetUTCMinutes) \ |
303 CPP(DatePrototypeSetUTCHours) \ | 303 CPP(DatePrototypeSetUTCMonth) \ |
304 CPP(DatePrototypeSetUTCMilliseconds) \ | 304 CPP(DatePrototypeSetUTCSeconds) \ |
305 CPP(DatePrototypeSetUTCMinutes) \ | 305 CPP(DatePrototypeToDateString) \ |
306 CPP(DatePrototypeSetUTCMonth) \ | 306 CPP(DatePrototypeToISOString) \ |
307 CPP(DatePrototypeSetUTCSeconds) \ | 307 CPP(DatePrototypeToPrimitive) \ |
308 CPP(DatePrototypeToDateString) \ | 308 CPP(DatePrototypeToUTCString) \ |
309 CPP(DatePrototypeToISOString) \ | 309 CPP(DatePrototypeToString) \ |
310 CPP(DatePrototypeToPrimitive) \ | 310 CPP(DatePrototypeToTimeString) \ |
311 CPP(DatePrototypeToUTCString) \ | 311 CPP(DatePrototypeValueOf) \ |
312 CPP(DatePrototypeToString) \ | 312 CPP(DatePrototypeToJson) \ |
313 CPP(DatePrototypeToTimeString) \ | 313 CPP(DateUTC) \ |
314 CPP(DatePrototypeValueOf) \ | 314 \ |
315 CPP(DatePrototypeToJson) \ | 315 /* Error */ \ |
316 CPP(DateUTC) \ | 316 CPP(ErrorConstructor) \ |
317 \ | 317 CPP(ErrorCaptureStackTrace) \ |
318 /* Error */ \ | 318 CPP(ErrorPrototypeToString) \ |
319 CPP(ErrorConstructor) \ | 319 CPP(MakeError) \ |
320 CPP(ErrorCaptureStackTrace) \ | 320 CPP(MakeRangeError) \ |
321 CPP(ErrorPrototypeToString) \ | 321 CPP(MakeSyntaxError) \ |
322 CPP(MakeError) \ | 322 CPP(MakeTypeError) \ |
323 CPP(MakeRangeError) \ | 323 CPP(MakeURIError) \ |
324 CPP(MakeSyntaxError) \ | 324 \ |
325 CPP(MakeTypeError) \ | 325 /* Function */ \ |
326 CPP(MakeURIError) \ | 326 CPP(FunctionConstructor) \ |
327 \ | 327 ASM(FunctionPrototypeApply) \ |
328 /* Function */ \ | 328 CPP(FunctionPrototypeBind) \ |
329 CPP(FunctionConstructor) \ | 329 ASM(FunctionPrototypeCall) \ |
330 ASM(FunctionPrototypeApply) \ | 330 /* ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V ) */ \ |
331 CPP(FunctionPrototypeBind) \ | 331 TFJ(FunctionPrototypeHasInstance, 2) \ |
332 ASM(FunctionPrototypeCall) \ | 332 CPP(FunctionPrototypeToString) \ |
333 /* ES6 section 19.2.3.6 Function.prototype [ @@hasInstance ] ( V ) */ \ | 333 \ |
334 TFJ(FunctionPrototypeHasInstance, 2) \ | 334 /* Generator and Async */ \ |
335 CPP(FunctionPrototypeToString) \ | 335 CPP(GeneratorFunctionConstructor) \ |
336 \ | 336 /* ES6 section 25.3.1.2 Generator.prototype.next ( value ) */ \ |
337 /* Generator and Async */ \ | 337 TFJ(GeneratorPrototypeNext, 2) \ |
338 CPP(GeneratorFunctionConstructor) \ | 338 /* ES6 section 25.3.1.3 Generator.prototype.return ( value ) */ \ |
339 /* ES6 section 25.3.1.2 Generator.prototype.next ( value ) */ \ | 339 TFJ(GeneratorPrototypeReturn, 2) \ |
340 TFJ(GeneratorPrototypeNext, 2) \ | 340 /* ES6 section 25.3.1.4 Generator.prototype.throw ( exception ) */ \ |
341 /* ES6 section 25.3.1.3 Generator.prototype.return ( value ) */ \ | 341 TFJ(GeneratorPrototypeThrow, 2) \ |
342 TFJ(GeneratorPrototypeReturn, 2) \ | 342 CPP(AsyncFunctionConstructor) \ |
343 /* ES6 section 25.3.1.4 Generator.prototype.throw ( exception ) */ \ | 343 \ |
344 TFJ(GeneratorPrototypeThrow, 2) \ | 344 /* Encode and decode */ \ |
345 CPP(AsyncFunctionConstructor) \ | 345 CPP(GlobalDecodeURI) \ |
346 \ | 346 CPP(GlobalDecodeURIComponent) \ |
347 /* Encode and decode */ \ | 347 CPP(GlobalEncodeURI) \ |
348 CPP(GlobalDecodeURI) \ | 348 CPP(GlobalEncodeURIComponent) \ |
349 CPP(GlobalDecodeURIComponent) \ | 349 CPP(GlobalEscape) \ |
350 CPP(GlobalEncodeURI) \ | 350 CPP(GlobalUnescape) \ |
351 CPP(GlobalEncodeURIComponent) \ | 351 \ |
352 CPP(GlobalEscape) \ | 352 /* Eval */ \ |
353 CPP(GlobalUnescape) \ | 353 CPP(GlobalEval) \ |
354 \ | 354 \ |
355 /* Eval */ \ | 355 /* JSON */ \ |
356 CPP(GlobalEval) \ | 356 CPP(JsonParse) \ |
357 \ | 357 CPP(JsonStringify) \ |
358 /* JSON */ \ | 358 \ |
359 CPP(JsonParse) \ | 359 /* Math */ \ |
360 CPP(JsonStringify) \ | 360 /* ES6 section 20.2.2.1 Math.abs ( x ) */ \ |
361 \ | 361 TFJ(MathAbs, 2) \ |
362 /* Math */ \ | 362 /* ES6 section 20.2.2.2 Math.acos ( x ) */ \ |
363 /* ES6 section 20.2.2.1 Math.abs ( x ) */ \ | 363 TFJ(MathAcos, 2) \ |
364 TFJ(MathAbs, 2) \ | 364 /* ES6 section 20.2.2.3 Math.acosh ( x ) */ \ |
365 /* ES6 section 20.2.2.2 Math.acos ( x ) */ \ | 365 TFJ(MathAcosh, 2) \ |
366 TFJ(MathAcos, 2) \ | 366 /* ES6 section 20.2.2.4 Math.asin ( x ) */ \ |
367 /* ES6 section 20.2.2.3 Math.acosh ( x ) */ \ | 367 TFJ(MathAsin, 2) \ |
368 TFJ(MathAcosh, 2) \ | 368 /* ES6 section 20.2.2.5 Math.asinh ( x ) */ \ |
369 /* ES6 section 20.2.2.4 Math.asin ( x ) */ \ | 369 TFJ(MathAsinh, 2) \ |
370 TFJ(MathAsin, 2) \ | 370 /* ES6 section 20.2.2.6 Math.atan ( x ) */ \ |
371 /* ES6 section 20.2.2.5 Math.asinh ( x ) */ \ | 371 TFJ(MathAtan, 2) \ |
372 TFJ(MathAsinh, 2) \ | 372 /* ES6 section 20.2.2.7 Math.atanh ( x ) */ \ |
373 /* ES6 section 20.2.2.6 Math.atan ( x ) */ \ | 373 TFJ(MathAtanh, 2) \ |
374 TFJ(MathAtan, 2) \ | 374 /* ES6 section 20.2.2.8 Math.atan2 ( y, x ) */ \ |
375 /* ES6 section 20.2.2.7 Math.atanh ( x ) */ \ | 375 TFJ(MathAtan2, 3) \ |
376 TFJ(MathAtanh, 2) \ | 376 /* ES6 section 20.2.2.9 Math.cbrt ( x ) */ \ |
377 /* ES6 section 20.2.2.8 Math.atan2 ( y, x ) */ \ | 377 TFJ(MathCbrt, 2) \ |
378 TFJ(MathAtan2, 3) \ | 378 /* ES6 section 20.2.2.10 Math.ceil ( x ) */ \ |
379 /* ES6 section 20.2.2.9 Math.cbrt ( x ) */ \ | 379 TFJ(MathCeil, 2) \ |
380 TFJ(MathCbrt, 2) \ | 380 /* ES6 section 20.2.2.11 Math.clz32 ( x ) */ \ |
381 /* ES6 section 20.2.2.10 Math.ceil ( x ) */ \ | 381 TFJ(MathClz32, 2) \ |
382 TFJ(MathCeil, 2) \ | 382 /* ES6 section 20.2.2.12 Math.cos ( x ) */ \ |
383 /* ES6 section 20.2.2.11 Math.clz32 ( x ) */ \ | 383 TFJ(MathCos, 2) \ |
384 TFJ(MathClz32, 2) \ | 384 /* ES6 section 20.2.2.13 Math.cosh ( x ) */ \ |
385 /* ES6 section 20.2.2.12 Math.cos ( x ) */ \ | 385 TFJ(MathCosh, 2) \ |
386 TFJ(MathCos, 2) \ | 386 /* ES6 section 20.2.2.14 Math.exp ( x ) */ \ |
387 /* ES6 section 20.2.2.13 Math.cosh ( x ) */ \ | 387 TFJ(MathExp, 2) \ |
388 TFJ(MathCosh, 2) \ | 388 /* ES6 section 20.2.2.15 Math.expm1 ( x ) */ \ |
389 /* ES6 section 20.2.2.14 Math.exp ( x ) */ \ | 389 TFJ(MathExpm1, 2) \ |
390 TFJ(MathExp, 2) \ | 390 /* ES6 section 20.2.2.16 Math.floor ( x ) */ \ |
391 /* ES6 section 20.2.2.15 Math.expm1 ( x ) */ \ | 391 TFJ(MathFloor, 2) \ |
392 TFJ(MathExpm1, 2) \ | 392 /* ES6 section 20.2.2.17 Math.fround ( x ) */ \ |
393 /* ES6 section 20.2.2.16 Math.floor ( x ) */ \ | 393 TFJ(MathFround, 2) \ |
394 TFJ(MathFloor, 2) \ | 394 /* ES6 section 20.2.2.18 Math.hypot ( value1, value2, ...values ) */ \ |
395 /* ES6 section 20.2.2.17 Math.fround ( x ) */ \ | 395 CPP(MathHypot) \ |
396 TFJ(MathFround, 2) \ | 396 /* ES6 section 20.2.2.19 Math.imul ( x, y ) */ \ |
397 /* ES6 section 20.2.2.18 Math.hypot ( value1, value2, ...values ) */ \ | 397 TFJ(MathImul, 3) \ |
398 CPP(MathHypot) \ | 398 /* ES6 section 20.2.2.20 Math.log ( x ) */ \ |
399 /* ES6 section 20.2.2.19 Math.imul ( x, y ) */ \ | 399 TFJ(MathLog, 2) \ |
400 TFJ(MathImul, 3) \ | 400 /* ES6 section 20.2.2.21 Math.log1p ( x ) */ \ |
401 /* ES6 section 20.2.2.20 Math.log ( x ) */ \ | 401 TFJ(MathLog1p, 2) \ |
402 TFJ(MathLog, 2) \ | 402 /* ES6 section 20.2.2.22 Math.log10 ( x ) */ \ |
403 /* ES6 section 20.2.2.21 Math.log1p ( x ) */ \ | 403 TFJ(MathLog10, 2) \ |
404 TFJ(MathLog1p, 2) \ | 404 /* ES6 section 20.2.2.23 Math.log2 ( x ) */ \ |
405 /* ES6 section 20.2.2.22 Math.log10 ( x ) */ \ | 405 TFJ(MathLog2, 2) \ |
406 TFJ(MathLog10, 2) \ | 406 /* ES6 section 20.2.2.24 Math.max ( value1, value2 , ...values ) */ \ |
407 /* ES6 section 20.2.2.23 Math.log2 ( x ) */ \ | 407 ASM(MathMax) \ |
408 TFJ(MathLog2, 2) \ | 408 /* ES6 section 20.2.2.25 Math.min ( value1, value2 , ...values ) */ \ |
409 /* ES6 section 20.2.2.24 Math.max ( value1, value2 , ...values ) */ \ | 409 ASM(MathMin) \ |
410 ASM(MathMax) \ | 410 /* ES6 section 20.2.2.26 Math.pow ( x, y ) */ \ |
411 /* ES6 section 20.2.2.25 Math.min ( value1, value2 , ...values ) */ \ | 411 TFJ(MathPow, 3) \ |
412 ASM(MathMin) \ | 412 /* ES6 section 20.2.2.28 Math.round ( x ) */ \ |
413 /* ES6 section 20.2.2.26 Math.pow ( x, y ) */ \ | 413 TFJ(MathRound, 2) \ |
414 TFJ(MathPow, 3) \ | 414 /* ES6 section 20.2.2.29 Math.sign ( x ) */ \ |
415 /* ES6 section 20.2.2.28 Math.round ( x ) */ \ | 415 TFJ(MathSign, 2) \ |
416 TFJ(MathRound, 2) \ | 416 /* ES6 section 20.2.2.30 Math.sin ( x ) */ \ |
417 /* ES6 section 20.2.2.29 Math.sign ( x ) */ \ | 417 TFJ(MathSin, 2) \ |
418 TFJ(MathSign, 2) \ | 418 /* ES6 section 20.2.2.31 Math.sinh ( x ) */ \ |
419 /* ES6 section 20.2.2.30 Math.sin ( x ) */ \ | 419 TFJ(MathSinh, 2) \ |
420 TFJ(MathSin, 2) \ | 420 /* ES6 section 20.2.2.32 Math.sqrt ( x ) */ \ |
421 /* ES6 section 20.2.2.31 Math.sinh ( x ) */ \ | 421 TFJ(MathTan, 2) \ |
422 TFJ(MathSinh, 2) \ | 422 /* ES6 section 20.2.2.33 Math.tan ( x ) */ \ |
423 /* ES6 section 20.2.2.32 Math.sqrt ( x ) */ \ | 423 TFJ(MathTanh, 2) \ |
424 TFJ(MathTan, 2) \ | 424 /* ES6 section 20.2.2.34 Math.tanh ( x ) */ \ |
425 /* ES6 section 20.2.2.33 Math.tan ( x ) */ \ | 425 TFJ(MathSqrt, 2) \ |
426 TFJ(MathTanh, 2) \ | 426 /* ES6 section 20.2.2.35 Math.trunc ( x ) */ \ |
427 /* ES6 section 20.2.2.34 Math.tanh ( x ) */ \ | 427 TFJ(MathTrunc, 2) \ |
428 TFJ(MathSqrt, 2) \ | 428 \ |
429 /* ES6 section 20.2.2.35 Math.trunc ( x ) */ \ | 429 /* Number */ \ |
430 TFJ(MathTrunc, 2) \ | 430 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case */ \ |
431 \ | 431 ASM(NumberConstructor) \ |
432 /* Number */ \ | 432 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case */ \ |
433 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Call]] case */ \ | 433 ASM(NumberConstructor_ConstructStub) \ |
434 ASM(NumberConstructor) \ | 434 CPP(NumberPrototypeToExponential) \ |
435 /* ES6 section 20.1.1.1 Number ( [ value ] ) for the [[Construct]] case */ \ | 435 CPP(NumberPrototypeToFixed) \ |
436 ASM(NumberConstructor_ConstructStub) \ | 436 CPP(NumberPrototypeToLocaleString) \ |
437 CPP(NumberPrototypeToExponential) \ | 437 CPP(NumberPrototypeToPrecision) \ |
438 CPP(NumberPrototypeToFixed) \ | 438 CPP(NumberPrototypeToString) \ |
439 CPP(NumberPrototypeToLocaleString) \ | 439 /* ES6 section 20.1.3.7 Number.prototype.valueOf ( ) */ \ |
440 CPP(NumberPrototypeToPrecision) \ | 440 TFJ(NumberPrototypeValueOf, 1) \ |
441 CPP(NumberPrototypeToString) \ | 441 \ |
442 /* ES6 section 20.1.3.7 Number.prototype.valueOf ( ) */ \ | 442 /* Object */ \ |
443 TFJ(NumberPrototypeValueOf, 1) \ | 443 CPP(ObjectAssign) \ |
444 \ | 444 CPP(ObjectCreate) \ |
445 /* Object */ \ | 445 CPP(ObjectDefineGetter) \ |
446 CPP(ObjectAssign) \ | 446 CPP(ObjectDefineProperties) \ |
447 CPP(ObjectCreate) \ | 447 CPP(ObjectDefineProperty) \ |
448 CPP(ObjectDefineGetter) \ | 448 CPP(ObjectDefineSetter) \ |
449 CPP(ObjectDefineProperties) \ | 449 CPP(ObjectEntries) \ |
450 CPP(ObjectDefineProperty) \ | 450 CPP(ObjectFreeze) \ |
451 CPP(ObjectDefineSetter) \ | 451 CPP(ObjectGetOwnPropertyDescriptor) \ |
452 CPP(ObjectEntries) \ | 452 CPP(ObjectGetOwnPropertyDescriptors) \ |
453 CPP(ObjectFreeze) \ | 453 CPP(ObjectGetOwnPropertyNames) \ |
454 CPP(ObjectGetOwnPropertyDescriptor) \ | 454 CPP(ObjectGetOwnPropertySymbols) \ |
455 CPP(ObjectGetOwnPropertyDescriptors) \ | 455 CPP(ObjectGetPrototypeOf) \ |
456 CPP(ObjectGetOwnPropertyNames) \ | 456 /* ES6 section 19.1.3.2 Object.prototype.hasOwnProperty */ \ |
457 CPP(ObjectGetOwnPropertySymbols) \ | 457 TFJ(ObjectHasOwnProperty, 2) \ |
458 CPP(ObjectGetPrototypeOf) \ | 458 CPP(ObjectIs) \ |
459 /* ES6 section 19.1.3.2 Object.prototype.hasOwnProperty */ \ | 459 CPP(ObjectIsExtensible) \ |
460 TFJ(ObjectHasOwnProperty, 2) \ | 460 CPP(ObjectIsFrozen) \ |
461 CPP(ObjectIs) \ | 461 CPP(ObjectIsSealed) \ |
462 CPP(ObjectIsExtensible) \ | 462 CPP(ObjectKeys) \ |
463 CPP(ObjectIsFrozen) \ | 463 CPP(ObjectLookupGetter) \ |
464 CPP(ObjectIsSealed) \ | 464 CPP(ObjectLookupSetter) \ |
465 CPP(ObjectKeys) \ | 465 CPP(ObjectPreventExtensions) \ |
466 CPP(ObjectLookupGetter) \ | 466 /* ES6 section 19.1.3.6 Object.prototype.toString () */ \ |
467 CPP(ObjectLookupSetter) \ | 467 TFJ(ObjectProtoToString, 1) \ |
468 CPP(ObjectPreventExtensions) \ | 468 CPP(ObjectPrototypePropertyIsEnumerable) \ |
469 /* ES6 section 19.1.3.6 Object.prototype.toString () */ \ | 469 CPP(ObjectSeal) \ |
470 TFJ(ObjectProtoToString, 1) \ | 470 CPP(ObjectValues) \ |
471 CPP(ObjectPrototypePropertyIsEnumerable) \ | 471 \ |
472 CPP(ObjectSeal) \ | 472 /* Proxy */ \ |
473 CPP(ObjectValues) \ | 473 CPP(ProxyConstructor) \ |
474 \ | 474 CPP(ProxyConstructor_ConstructStub) \ |
475 /* Proxy */ \ | 475 \ |
476 CPP(ProxyConstructor) \ | 476 /* Reflect */ \ |
477 CPP(ProxyConstructor_ConstructStub) \ | 477 ASM(ReflectApply) \ |
478 \ | 478 ASM(ReflectConstruct) \ |
479 /* Reflect */ \ | 479 CPP(ReflectDefineProperty) \ |
480 ASM(ReflectApply) \ | 480 CPP(ReflectDeleteProperty) \ |
481 ASM(ReflectConstruct) \ | 481 CPP(ReflectGet) \ |
482 CPP(ReflectDefineProperty) \ | 482 CPP(ReflectGetOwnPropertyDescriptor) \ |
483 CPP(ReflectDeleteProperty) \ | 483 CPP(ReflectGetPrototypeOf) \ |
484 CPP(ReflectGet) \ | 484 CPP(ReflectHas) \ |
485 CPP(ReflectGetOwnPropertyDescriptor) \ | 485 CPP(ReflectIsExtensible) \ |
486 CPP(ReflectGetPrototypeOf) \ | 486 CPP(ReflectOwnKeys) \ |
487 CPP(ReflectHas) \ | 487 CPP(ReflectPreventExtensions) \ |
488 CPP(ReflectIsExtensible) \ | 488 CPP(ReflectSet) \ |
489 CPP(ReflectOwnKeys) \ | 489 CPP(ReflectSetPrototypeOf) \ |
490 CPP(ReflectPreventExtensions) \ | 490 \ |
491 CPP(ReflectSet) \ | 491 /* SharedArrayBuffer */ \ |
492 CPP(ReflectSetPrototypeOf) \ | 492 CPP(SharedArrayBufferPrototypeGetByteLength) \ |
493 \ | 493 TFJ(AtomicsLoad, 3) \ |
494 /* SharedArrayBuffer */ \ | 494 TFJ(AtomicsStore, 4) \ |
495 CPP(SharedArrayBufferPrototypeGetByteLength) \ | 495 \ |
496 TFJ(AtomicsLoad, 3) \ | 496 /* String */ \ |
497 TFJ(AtomicsStore, 4) \ | 497 ASM(StringConstructor) \ |
498 \ | 498 ASM(StringConstructor_ConstructStub) \ |
499 /* String */ \ | 499 CPP(StringFromCodePoint) \ |
500 ASM(StringConstructor) \ | 500 /* ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits ) */ \ |
501 ASM(StringConstructor_ConstructStub) \ | 501 TFJ(StringFromCharCode, 2) \ |
502 CPP(StringFromCodePoint) \ | 502 /* ES6 section 21.1.3.1 String.prototype.charAt ( pos ) */ \ |
503 /* ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits ) */ \ | 503 TFJ(StringPrototypeCharAt, 2) \ |
504 TFJ(StringFromCharCode, 2) \ | 504 /* ES6 section 21.1.3.2 String.prototype.charCodeAt ( pos ) */ \ |
505 /* ES6 section 21.1.3.1 String.prototype.charAt ( pos ) */ \ | 505 TFJ(StringPrototypeCharCodeAt, 2) \ |
506 TFJ(StringPrototypeCharAt, 2) \ | 506 /* ES6 section 21.1.3.25 String.prototype.toString () */ \ |
507 /* ES6 section 21.1.3.2 String.prototype.charCodeAt ( pos ) */ \ | 507 TFJ(StringPrototypeToString, 1) \ |
508 TFJ(StringPrototypeCharCodeAt, 2) \ | 508 CPP(StringPrototypeTrim) \ |
509 /* ES6 section 21.1.3.25 String.prototype.toString () */ \ | 509 CPP(StringPrototypeTrimLeft) \ |
510 TFJ(StringPrototypeToString, 1) \ | 510 CPP(StringPrototypeTrimRight) \ |
511 CPP(StringPrototypeTrim) \ | 511 /* ES6 section 21.1.3.28 String.prototype.valueOf () */ \ |
512 CPP(StringPrototypeTrimLeft) \ | 512 TFJ(StringPrototypeValueOf, 1) \ |
513 CPP(StringPrototypeTrimRight) \ | 513 \ |
514 /* ES6 section 21.1.3.28 String.prototype.valueOf () */ \ | 514 /* Symbol */ \ |
515 TFJ(StringPrototypeValueOf, 1) \ | 515 CPP(SymbolConstructor) \ |
516 \ | 516 CPP(SymbolConstructor_ConstructStub) \ |
517 /* Symbol */ \ | 517 /* ES6 section 19.4.3.4 Symbol.prototype [ @@toPrimitive ] ( hint ) */ \ |
518 CPP(SymbolConstructor) \ | 518 TFJ(SymbolPrototypeToPrimitive, 2) \ |
519 CPP(SymbolConstructor_ConstructStub) \ | 519 /* ES6 section 19.4.3.2 Symbol.prototype.toString ( ) */ \ |
520 /* ES6 section 19.4.3.4 Symbol.prototype [ @@toPrimitive ] ( hint ) */ \ | 520 TFJ(SymbolPrototypeToString, 1) \ |
521 TFJ(SymbolPrototypeToPrimitive, 2) \ | 521 /* ES6 section 19.4.3.3 Symbol.prototype.valueOf ( ) */ \ |
522 /* ES6 section 19.4.3.2 Symbol.prototype.toString ( ) */ \ | 522 TFJ(SymbolPrototypeValueOf, 1) \ |
523 TFJ(SymbolPrototypeToString, 1) \ | 523 \ |
524 /* ES6 section 19.4.3.3 Symbol.prototype.valueOf ( ) */ \ | 524 /* TypedArray */ \ |
525 TFJ(SymbolPrototypeValueOf, 1) \ | 525 CPP(TypedArrayPrototypeBuffer) \ |
526 \ | 526 /* ES6 section 22.2.3.2 get %TypedArray%.prototype.byteLength */ \ |
527 /* TypedArray */ \ | 527 TFJ(TypedArrayPrototypeByteLength, 1) \ |
528 CPP(TypedArrayPrototypeBuffer) \ | 528 /* ES6 section 22.2.3.3 get %TypedArray%.prototype.byteOffset */ \ |
529 /* ES6 section 22.2.3.2 get %TypedArray%.prototype.byteLength */ \ | 529 TFJ(TypedArrayPrototypeByteOffset, 1) \ |
530 TFJ(TypedArrayPrototypeByteLength, 1) \ | 530 /* ES6 section 22.2.3.18 get %TypedArray%.prototype.length */ \ |
531 /* ES6 section 22.2.3.3 get %TypedArray%.prototype.byteOffset */ \ | |
532 TFJ(TypedArrayPrototypeByteOffset, 1) \ | |
533 /* ES6 section 22.2.3.18 get %TypedArray%.prototype.length */ \ | |
534 TFJ(TypedArrayPrototypeLength, 1) | 531 TFJ(TypedArrayPrototypeLength, 1) |
535 | 532 |
536 #define IGNORE_BUILTIN(...) | 533 #define IGNORE_BUILTIN(...) |
537 | 534 |
538 #define BUILTIN_LIST_ALL(V) BUILTIN_LIST(V, V, V, V, V, V, V) | 535 #define BUILTIN_LIST_ALL(V) BUILTIN_LIST(V, V, V, V, V, V, V) |
539 | 536 |
540 #define BUILTIN_LIST_C(V) \ | 537 #define BUILTIN_LIST_C(V) \ |
541 BUILTIN_LIST(V, V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ | 538 BUILTIN_LIST(V, V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ |
542 IGNORE_BUILTIN, IGNORE_BUILTIN) | 539 IGNORE_BUILTIN, IGNORE_BUILTIN) |
543 | 540 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
662 | 659 |
663 friend class Isolate; | 660 friend class Isolate; |
664 | 661 |
665 DISALLOW_COPY_AND_ASSIGN(Builtins); | 662 DISALLOW_COPY_AND_ASSIGN(Builtins); |
666 }; | 663 }; |
667 | 664 |
668 } // namespace internal | 665 } // namespace internal |
669 } // namespace v8 | 666 } // namespace v8 |
670 | 667 |
671 #endif // V8_BUILTINS_BUILTINS_H_ | 668 #endif // V8_BUILTINS_BUILTINS_H_ |
OLD | NEW |