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

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

Issue 2293943002: [builtins] Create StringToNumber helper. (Closed)
Patch Set: Created 4 years, 3 months 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #include "src/builtins/builtins.h" 5 #include "src/builtins/builtins.h"
6 #include "src/code-events.h" 6 #include "src/code-events.h"
7 #include "src/code-stub-assembler.h" 7 #include "src/code-stub-assembler.h"
8 #include "src/ic/ic-state.h" 8 #include "src/ic/ic-state.h"
9 #include "src/interface-descriptors.h" 9 #include "src/interface-descriptors.h"
10 #include "src/isolate.h" 10 #include "src/isolate.h"
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 builtins_[index++] = code; 141 builtins_[index++] = code;
142 #define BUILD_ASM(Name) \ 142 #define BUILD_ASM(Name) \
143 code = \ 143 code = \
144 BuildWithMacroAssembler(isolate, Generate_##Name, kBuiltinFlags, #Name); \ 144 BuildWithMacroAssembler(isolate, Generate_##Name, kBuiltinFlags, #Name); \
145 builtins_[index++] = code; 145 builtins_[index++] = code;
146 #define BUILD_ASH(Name, Kind, Extra) \ 146 #define BUILD_ASH(Name, Kind, Extra) \
147 code = BuildWithMacroAssembler( \ 147 code = BuildWithMacroAssembler( \
148 isolate, Generate_##Name, Code::ComputeFlags(Code::Kind, Extra), #Name); \ 148 isolate, Generate_##Name, Code::ComputeFlags(Code::Kind, Extra), #Name); \
149 builtins_[index++] = code; 149 builtins_[index++] = code;
150 150
151 BUILTIN_LIST(BUILD_CPP, BUILD_API, BUILD_TFJ, BUILD_TFS, BUILD_ASM, 151 BUILTIN_LIST(BUILD_CPP, BUILD_API, BUILD_TFJ, BUILD_TFS, BUILD_TFS,
152 BUILD_ASH, BUILD_ASM); 152 BUILD_ASM, BUILD_ASH, BUILD_ASM);
153 153
154 #undef BUILD_CPP 154 #undef BUILD_CPP
155 #undef BUILD_API 155 #undef BUILD_API
156 #undef BUILD_TFJ 156 #undef BUILD_TFJ
157 #undef BUILD_TFS 157 #undef BUILD_TFS
158 #undef BUILD_ASM 158 #undef BUILD_ASM
159 #undef BUILD_ASH 159 #undef BUILD_ASH
160 CHECK_EQ(builtin_count, index); 160 CHECK_EQ(builtin_count, index);
161 for (int i = 0; i < builtin_count; i++) { 161 for (int i = 0; i < builtin_count; i++) {
162 Code::cast(builtins_[i])->set_builtin_index(i); 162 Code::cast(builtins_[i])->set_builtin_index(i);
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 216
217 // static 217 // static
218 bool Builtins::IsCpp(int index) { 218 bool Builtins::IsCpp(int index) {
219 DCHECK(0 <= index && index < builtin_count); 219 DCHECK(0 <= index && index < builtin_count);
220 switch (index) { 220 switch (index) {
221 #define CASE(Name, ...) \ 221 #define CASE(Name, ...) \
222 case k##Name: \ 222 case k##Name: \
223 return true; 223 return true;
224 #define BUILTIN_LIST_CPP(V) \ 224 #define BUILTIN_LIST_CPP(V) \
225 BUILTIN_LIST(V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \ 225 BUILTIN_LIST(V, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, \
226 IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN) 226 IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
227 BUILTIN_LIST_CPP(CASE) 227 BUILTIN_LIST_CPP(CASE)
228 #undef BUILTIN_LIST_CPP 228 #undef BUILTIN_LIST_CPP
229 #undef CASE 229 #undef CASE
230 default: 230 default:
231 return false; 231 return false;
232 } 232 }
233 UNREACHABLE(); 233 UNREACHABLE();
234 } 234 }
235 235
236 // static 236 // static
237 bool Builtins::IsApi(int index) { 237 bool Builtins::IsApi(int index) {
238 DCHECK(0 <= index && index < builtin_count); 238 DCHECK(0 <= index && index < builtin_count);
239 switch (index) { 239 switch (index) {
240 #define CASE(Name, ...) \ 240 #define CASE(Name, ...) \
241 case k##Name: \ 241 case k##Name: \
242 return true; 242 return true;
243 #define BUILTIN_LIST_API(V) \ 243 #define BUILTIN_LIST_API(V) \
244 BUILTIN_LIST(IGNORE_BUILTIN, V, IGNORE_BUILTIN, IGNORE_BUILTIN, \ 244 BUILTIN_LIST(IGNORE_BUILTIN, V, IGNORE_BUILTIN, IGNORE_BUILTIN, \
245 IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN) 245 IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN, IGNORE_BUILTIN)
246 BUILTIN_LIST_API(CASE); 246 BUILTIN_LIST_API(CASE);
247 #undef BUILTIN_LIST_API 247 #undef BUILTIN_LIST_API
248 #undef CASE 248 #undef CASE
249 default: 249 default:
250 return false; 250 return false;
251 } 251 }
252 UNREACHABLE(); 252 UNREACHABLE();
253 } 253 }
254 254
255 // static 255 // static
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 if (responsible_context.is_null()) { 287 if (responsible_context.is_null()) {
288 return true; 288 return true;
289 } 289 }
290 } 290 }
291 if (*responsible_context == target->context()) return true; 291 if (*responsible_context == target->context()) return true;
292 return isolate->MayAccess(responsible_context, target_global_proxy); 292 return isolate->MayAccess(responsible_context, target_global_proxy);
293 } 293 }
294 294
295 } // namespace internal 295 } // namespace internal
296 } // namespace v8 296 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698