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

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

Issue 2303543003: Revert of [runtime] temporarily transform IsContext check from DHECK to CHECK (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixing merge conflict 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
« no previous file with comments | « src/arguments.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 // A builtin function is defined by writing: 69 // A builtin function is defined by writing:
70 // 70 //
71 // BUILTIN(name) { 71 // BUILTIN(name) {
72 // ... 72 // ...
73 // } 73 // }
74 // 74 //
75 // In the body of the builtin function the arguments can be accessed 75 // In the body of the builtin function the arguments can be accessed
76 // through the BuiltinArguments object args. 76 // through the BuiltinArguments object args.
77 // TODO(cbruni): add global flag to check whether any tracing events have been 77 // TODO(cbruni): add global flag to check whether any tracing events have been
78 // enabled. 78 // enabled.
79 // TODO(cbruni): Convert the IsContext CHECK back to a DCHECK. 79 #define BUILTIN(name) \
80 #define BUILTIN(name) \ 80 MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args, \
81 MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args, \ 81 Isolate* isolate); \
82 Isolate* isolate); \ 82 \
83 \ 83 V8_NOINLINE static Object* Builtin_Impl_Stats_##name( \
84 V8_NOINLINE static Object* Builtin_Impl_Stats_##name( \ 84 int args_length, Object** args_object, Isolate* isolate) { \
85 int args_length, Object** args_object, Isolate* isolate) { \ 85 BuiltinArguments args(args_length, args_object); \
86 BuiltinArguments args(args_length, args_object); \ 86 RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name); \
87 RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name); \ 87 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"), \
88 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"), \ 88 "V8.Builtin_" #name); \
89 "V8.Builtin_" #name); \ 89 return Builtin_Impl_##name(args, isolate); \
90 return Builtin_Impl_##name(args, isolate); \ 90 } \
91 } \ 91 \
92 \ 92 MUST_USE_RESULT Object* Builtin_##name( \
93 MUST_USE_RESULT Object* Builtin_##name( \ 93 int args_length, Object** args_object, Isolate* isolate) { \
94 int args_length, Object** args_object, Isolate* isolate) { \ 94 DCHECK(isolate->context() == nullptr || isolate->context()->IsContext()); \
95 CHECK(isolate->context() == nullptr || isolate->context()->IsContext()); \ 95 if (V8_UNLIKELY(TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_ENABLED() || \
96 if (V8_UNLIKELY(TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_ENABLED() || \ 96 FLAG_runtime_call_stats)) { \
97 FLAG_runtime_call_stats)) { \ 97 return Builtin_Impl_Stats_##name(args_length, args_object, isolate); \
98 return Builtin_Impl_Stats_##name(args_length, args_object, isolate); \ 98 } \
99 } \ 99 BuiltinArguments args(args_length, args_object); \
100 BuiltinArguments args(args_length, args_object); \ 100 return Builtin_Impl_##name(args, isolate); \
101 return Builtin_Impl_##name(args, isolate); \ 101 } \
102 } \ 102 \
103 \ 103 MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args, \
104 MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args, \
105 Isolate* isolate) 104 Isolate* isolate)
106 105
107 // ---------------------------------------------------------------------------- 106 // ----------------------------------------------------------------------------
108 107
109 #define CHECK_RECEIVER(Type, name, method) \ 108 #define CHECK_RECEIVER(Type, name, method) \
110 if (!args.receiver()->Is##Type()) { \ 109 if (!args.receiver()->Is##Type()) { \
111 THROW_NEW_ERROR_RETURN_FAILURE( \ 110 THROW_NEW_ERROR_RETURN_FAILURE( \
112 isolate, \ 111 isolate, \
113 NewTypeError(MessageTemplate::kIncompatibleMethodReceiver, \ 112 NewTypeError(MessageTemplate::kIncompatibleMethodReceiver, \
114 isolate->factory()->NewStringFromAsciiChecked(method), \ 113 isolate->factory()->NewStringFromAsciiChecked(method), \
(...skipping 13 matching lines...) Expand all
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_
OLDNEW
« no previous file with comments | « src/arguments.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698