v8-profiler
// src/cpu_profile_node.cc
#include "v8-profiler.h"
[ .. ]
using v8::CpuProfileNode;
[ .. ]
Local<Value> ProfileNode::New (const CpuProfileNode* node) {
Nan::EscapableHandleScope scope;
int32_t count = node->GetChildrenCount();
Local<Object> profile_node = Nan::New<Object>();
Local<Array> children = Nan::New<Array>(count);
for (int32_t index = 0; index < count; index++) {
children->Set(index, ProfileNode::New(node->GetChild(index)));
}
profile_node->Set(Nan::New<String>("functionName").ToLocalChecked(),
node->GetFunctionName());
profile_node->Set(Nan::New<String>("url").ToLocalChecked(),
node->GetScriptResourceName());
profile_node->Set(Nan::New<String>("lineNumber").ToLocalChecked(),
Nan::New<Integer>(node->GetLineNumber()));
[ .. ]