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

Side by Side Diff: src/api-arguments.h

Issue 1923893002: [counters] Annotate v8 with more runtime call counters. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixing few more things Created 4 years, 7 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 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_API_ARGUMENTS_H_ 5 #ifndef V8_API_ARGUMENTS_H_
6 #define V8_API_ARGUMENTS_H_ 6 #define V8_API_ARGUMENTS_H_
7 7
8 #include "src/api.h" 8 #include "src/api.h"
9 #include "src/isolate.h" 9 #include "src/isolate.h"
10 #include "src/tracing/trace-event.h" 10 #include "src/tracing/trace-event.h"
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 Handle<JSObject> Call(IndexedPropertyEnumeratorCallback f); 109 Handle<JSObject> Call(IndexedPropertyEnumeratorCallback f);
110 110
111 #define FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(F) \ 111 #define FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(F) \
112 F(AccessorNameGetterCallback, "get", v8::Value, Object) \ 112 F(AccessorNameGetterCallback, "get", v8::Value, Object) \
113 F(GenericNamedPropertyQueryCallback, "has", v8::Integer, Object) \ 113 F(GenericNamedPropertyQueryCallback, "has", v8::Integer, Object) \
114 F(GenericNamedPropertyDeleterCallback, "delete", v8::Boolean, Object) 114 F(GenericNamedPropertyDeleterCallback, "delete", v8::Boolean, Object)
115 115
116 #define WRITE_CALL_1_NAME(Function, type, ApiReturn, InternalReturn) \ 116 #define WRITE_CALL_1_NAME(Function, type, ApiReturn, InternalReturn) \
117 Handle<InternalReturn> Call(Function f, Handle<Name> name) { \ 117 Handle<InternalReturn> Call(Function f, Handle<Name> name) { \
118 Isolate* isolate = this->isolate(); \ 118 Isolate* isolate = this->isolate(); \
119 RuntimeCallTimerScope timer( \
120 isolate, &isolate->counters()->runtime_call_stats()->Function); \
119 VMState<EXTERNAL> state(isolate); \ 121 VMState<EXTERNAL> state(isolate); \
120 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ 122 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \
121 PropertyCallbackInfo<ApiReturn> info(begin()); \ 123 PropertyCallbackInfo<ApiReturn> info(begin()); \
122 LOG(isolate, \ 124 LOG(isolate, \
123 ApiNamedPropertyAccess("interceptor-named-" type, holder(), *name)); \ 125 ApiNamedPropertyAccess("interceptor-named-" type, holder(), *name)); \
124 f(v8::Utils::ToLocal(name), info); \ 126 f(v8::Utils::ToLocal(name), info); \
125 return GetReturnValue<InternalReturn>(isolate); \ 127 return GetReturnValue<InternalReturn>(isolate); \
126 } 128 }
127 129
128 FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(WRITE_CALL_1_NAME) 130 FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(WRITE_CALL_1_NAME)
129 131
130 #undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME 132 #undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME
131 #undef WRITE_CALL_1_NAME 133 #undef WRITE_CALL_1_NAME
132 134
133 #define FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(F) \ 135 #define FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(F) \
134 F(IndexedPropertyGetterCallback, "get", v8::Value, Object) \ 136 F(IndexedPropertyGetterCallback, "get", v8::Value, Object) \
135 F(IndexedPropertyQueryCallback, "has", v8::Integer, Object) \ 137 F(IndexedPropertyQueryCallback, "has", v8::Integer, Object) \
136 F(IndexedPropertyDeleterCallback, "delete", v8::Boolean, Object) 138 F(IndexedPropertyDeleterCallback, "delete", v8::Boolean, Object)
137 139
138 #define WRITE_CALL_1_INDEX(Function, type, ApiReturn, InternalReturn) \ 140 #define WRITE_CALL_1_INDEX(Function, type, ApiReturn, InternalReturn) \
139 Handle<InternalReturn> Call(Function f, uint32_t index) { \ 141 Handle<InternalReturn> Call(Function f, uint32_t index) { \
140 Isolate* isolate = this->isolate(); \ 142 Isolate* isolate = this->isolate(); \
141 VMState<EXTERNAL> state(isolate); \ 143 RuntimeCallTimerScope timer( \
142 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \ 144 isolate, &isolate->counters()->runtime_call_stats()->Function); \
143 PropertyCallbackInfo<ApiReturn> info(begin()); \ 145 VMState<EXTERNAL> state(isolate); \
144 LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" type, \ 146 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); \
145 holder(), index)); \ 147 PropertyCallbackInfo<ApiReturn> info(begin()); \
146 f(index, info); \ 148 LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" type, \
147 return GetReturnValue<InternalReturn>(isolate); \ 149 holder(), index)); \
150 f(index, info); \
151 return GetReturnValue<InternalReturn>(isolate); \
148 } 152 }
149 153
150 FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(WRITE_CALL_1_INDEX) 154 FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(WRITE_CALL_1_INDEX)
151 155
152 #undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX 156 #undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX
153 #undef WRITE_CALL_1_INDEX 157 #undef WRITE_CALL_1_INDEX
154 158
155 Handle<Object> Call(GenericNamedPropertySetterCallback f, Handle<Name> name, 159 Handle<Object> Call(GenericNamedPropertySetterCallback f, Handle<Name> name,
156 Handle<Object> value) { 160 Handle<Object> value) {
157 Isolate* isolate = this->isolate(); 161 Isolate* isolate = this->isolate();
162 RuntimeCallTimerScope timer(isolate,
163 &isolate->counters()
164 ->runtime_call_stats()
165 ->GenericNamedPropertySetterCallback);
158 VMState<EXTERNAL> state(isolate); 166 VMState<EXTERNAL> state(isolate);
159 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); 167 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
160 PropertyCallbackInfo<v8::Value> info(begin()); 168 PropertyCallbackInfo<v8::Value> info(begin());
161 LOG(isolate, 169 LOG(isolate,
162 ApiNamedPropertyAccess("interceptor-named-set", holder(), *name)); 170 ApiNamedPropertyAccess("interceptor-named-set", holder(), *name));
163 f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info); 171 f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info);
164 return GetReturnValue<Object>(isolate); 172 return GetReturnValue<Object>(isolate);
165 } 173 }
166 174
167 Handle<Object> Call(IndexedPropertySetterCallback f, uint32_t index, 175 Handle<Object> Call(IndexedPropertySetterCallback f, uint32_t index,
168 Handle<Object> value) { 176 Handle<Object> value) {
169 Isolate* isolate = this->isolate(); 177 Isolate* isolate = this->isolate();
178 RuntimeCallTimerScope timer(isolate, &isolate->counters()
179 ->runtime_call_stats()
180 ->IndexedPropertySetterCallback);
170 VMState<EXTERNAL> state(isolate); 181 VMState<EXTERNAL> state(isolate);
171 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); 182 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
172 PropertyCallbackInfo<v8::Value> info(begin()); 183 PropertyCallbackInfo<v8::Value> info(begin());
173 LOG(isolate, 184 LOG(isolate,
174 ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index)); 185 ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index));
175 f(index, v8::Utils::ToLocal(value), info); 186 f(index, v8::Utils::ToLocal(value), info);
176 return GetReturnValue<Object>(isolate); 187 return GetReturnValue<Object>(isolate);
177 } 188 }
178 189
179 void Call(AccessorNameSetterCallback f, Handle<Name> name, 190 void Call(AccessorNameSetterCallback f, Handle<Name> name,
180 Handle<Object> value) { 191 Handle<Object> value) {
181 Isolate* isolate = this->isolate(); 192 Isolate* isolate = this->isolate();
193 RuntimeCallTimerScope timer(
194 isolate,
195 &isolate->counters()->runtime_call_stats()->AccessorNameSetterCallback);
182 VMState<EXTERNAL> state(isolate); 196 VMState<EXTERNAL> state(isolate);
183 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f)); 197 ExternalCallbackScope call_scope(isolate, FUNCTION_ADDR(f));
184 PropertyCallbackInfo<void> info(begin()); 198 PropertyCallbackInfo<void> info(begin());
185 LOG(isolate, 199 LOG(isolate,
186 ApiNamedPropertyAccess("interceptor-named-set", holder(), *name)); 200 ApiNamedPropertyAccess("interceptor-named-set", holder(), *name));
187 f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info); 201 f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info);
188 } 202 }
189 203
190 private: 204 private:
191 inline JSObject* holder() { 205 inline JSObject* holder() {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 258
245 private: 259 private:
246 internal::Object** argv_; 260 internal::Object** argv_;
247 int argc_; 261 int argc_;
248 }; 262 };
249 263
250 } // namespace internal 264 } // namespace internal
251 } // namespace v8 265 } // namespace v8
252 266
253 #endif // V8_API_ARGUMENTS_H_ 267 #endif // V8_API_ARGUMENTS_H_
OLDNEW
« src/api.cc ('K') | « src/api.cc ('k') | src/api-arguments.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698