| OLD | NEW | 
|---|
| 1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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_UTILS_H_ | 5 #ifndef V8_BUILTINS_BUILTINS_UTILS_H_ | 
| 6 #define V8_BUILTINS_BUILTINS_UTILS_H_ | 6 #define V8_BUILTINS_BUILTINS_UTILS_H_ | 
| 7 | 7 | 
| 8 #include "src/arguments.h" | 8 #include "src/arguments.h" | 
| 9 #include "src/base/logging.h" | 9 #include "src/base/logging.h" | 
| 10 #include "src/builtins/builtins.h" | 10 #include "src/builtins/builtins.h" | 
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 78 // enabled. | 78 // enabled. | 
| 79 // TODO(cbruni): Convert the IsContext CHECK back to a DCHECK. | 79 // TODO(cbruni): Convert the IsContext CHECK back to a DCHECK. | 
| 80 #define BUILTIN(name)                                                        \ | 80 #define BUILTIN(name)                                                        \ | 
| 81   MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args,  \ | 81   MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args,  \ | 
| 82                                                      Isolate* isolate);      \ | 82                                                      Isolate* isolate);      \ | 
| 83                                                                              \ | 83                                                                              \ | 
| 84   V8_NOINLINE static Object* Builtin_Impl_Stats_##name(                      \ | 84   V8_NOINLINE static Object* Builtin_Impl_Stats_##name(                      \ | 
| 85       int args_length, Object** args_object, Isolate* isolate) {             \ | 85       int args_length, Object** args_object, Isolate* isolate) {             \ | 
| 86     BuiltinArguments args(args_length, args_object);                         \ | 86     BuiltinArguments args(args_length, args_object);                         \ | 
| 87     RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name); \ | 87     RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name); \ | 
| 88     TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(                           \ | 88     TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),                    \ | 
| 89         isolate, &tracing::TraceEventStatsTable::Builtin_##name);            \ | 89                  "V8.Builtin_" #name);                                       \ | 
| 90     return Builtin_Impl_##name(args, isolate);                               \ | 90     return Builtin_Impl_##name(args, isolate);                               \ | 
| 91   }                                                                          \ | 91   }                                                                          \ | 
| 92                                                                              \ | 92                                                                              \ | 
| 93   MUST_USE_RESULT Object* Builtin_##name(                                    \ | 93   MUST_USE_RESULT Object* Builtin_##name(                                    \ | 
| 94       int args_length, Object** args_object, Isolate* isolate) {             \ | 94       int args_length, Object** args_object, Isolate* isolate) {             \ | 
| 95     CHECK(isolate->context() == nullptr || isolate->context()->IsContext()); \ | 95     CHECK(isolate->context() == nullptr || isolate->context()->IsContext()); \ | 
| 96     if (V8_UNLIKELY(TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_ENABLED() ||      \ | 96     if (FLAG_runtime_call_stats) {                                           \ | 
| 97                     FLAG_runtime_call_stats)) {                              \ |  | 
| 98       return Builtin_Impl_Stats_##name(args_length, args_object, isolate);   \ | 97       return Builtin_Impl_Stats_##name(args_length, args_object, isolate);   \ | 
| 99     }                                                                        \ | 98     }                                                                        \ | 
| 100     BuiltinArguments args(args_length, args_object);                         \ | 99     BuiltinArguments args(args_length, args_object);                         \ | 
| 101     return Builtin_Impl_##name(args, isolate);                               \ | 100     return Builtin_Impl_##name(args, isolate);                               \ | 
| 102   }                                                                          \ | 101   }                                                                          \ | 
| 103                                                                              \ | 102                                                                              \ | 
| 104   MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args,  \ | 103   MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args,  \ | 
| 105                                                      Isolate* isolate) | 104                                                      Isolate* isolate) | 
| 106 | 105 | 
| 107 // ---------------------------------------------------------------------------- | 106 // ---------------------------------------------------------------------------- | 
| (...skipping 20 matching lines...) Expand all  Loading... | 
| 128                      isolate->factory()->NewStringFromAsciiChecked(method))); \ | 127                      isolate->factory()->NewStringFromAsciiChecked(method))); \ | 
| 129   }                                                                           \ | 128   }                                                                           \ | 
| 130   Handle<String> name;                                                        \ | 129   Handle<String> name;                                                        \ | 
| 131   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(                                         \ | 130   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(                                         \ | 
| 132       isolate, name, Object::ToString(isolate, args.receiver())) | 131       isolate, name, Object::ToString(isolate, args.receiver())) | 
| 133 | 132 | 
| 134 }  // namespace internal | 133 }  // namespace internal | 
| 135 }  // namespace v8 | 134 }  // namespace v8 | 
| 136 | 135 | 
| 137 #endif  // V8_BUILTINS_BUILTINS_UTILS_H_ | 136 #endif  // V8_BUILTINS_BUILTINS_UTILS_H_ | 
| OLD | NEW | 
|---|