#include "node.h" #include "v8.h" #include "v8-profiler.h" namespace { inline void Test(const v8::FunctionCallbackInfo& args) { v8::Isolate* const isolate = args.GetIsolate(); const v8::HeapSnapshot* const heap_snapshot = isolate->GetHeapProfiler()->TakeHeapSnapshot(); struct : public v8::OutputStream { WriteResult WriteAsciiChunk(char*, int) override { return kContinue; } void EndOfStream() override {} } output_stream; heap_snapshot->Serialize(&output_stream, v8::HeapSnapshot::kJSON); const_cast(heap_snapshot)->Delete(); } inline void Initialize(v8::Local binding) { v8::Isolate* const isolate = binding->GetIsolate(); v8::Local context = isolate->GetCurrentContext(); binding->Set(context, v8::String::NewFromUtf8( isolate, "test", v8::NewStringType::kNormal).ToLocalChecked(), v8::FunctionTemplate::New(isolate, Test) ->GetFunction(context) .ToLocalChecked()).FromJust(); } NODE_MODULE(NODE_GYP_MODULE_NAME, Initialize) } // anonymous namespace