diff options
Diffstat (limited to 'chromium/v8/src/extensions/cputracemark-extension.h')
-rw-r--r-- | chromium/v8/src/extensions/cputracemark-extension.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/chromium/v8/src/extensions/cputracemark-extension.h b/chromium/v8/src/extensions/cputracemark-extension.h new file mode 100644 index 00000000000..9110cfe01b3 --- /dev/null +++ b/chromium/v8/src/extensions/cputracemark-extension.h @@ -0,0 +1,38 @@ +// Copyright 2019 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef V8_EXTENSIONS_CPUTRACEMARK_EXTENSION_H_ +#define V8_EXTENSIONS_CPUTRACEMARK_EXTENSION_H_ + +#include "include/v8.h" +#include "src/utils/utils.h" + +namespace v8 { +namespace internal { + +class CpuTraceMarkExtension : public v8::Extension { + public: + explicit CpuTraceMarkExtension(const char* fun_name) + : v8::Extension("v8/cpumark", + BuildSource(buffer_, sizeof(buffer_), fun_name)) {} + + v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate( + v8::Isolate* isolate, v8::Local<v8::String> name) override; + + private: + static void Mark(const v8::FunctionCallbackInfo<v8::Value>& args); + + static const char* BuildSource(char* buf, size_t size, const char* fun_name) { + SNPrintF(Vector<char>(buf, static_cast<int>(size)), "native function %s();", + fun_name); + return buf; + } + + char buffer_[50]; +}; + +} // namespace internal +} // namespace v8 + +#endif // V8_EXTENSIONS_CPUTRACEMARK_EXTENSION_H_ |