Ejemplo n.º 1
0
static PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> buildInspectorObjectFor(const JSC::ProfileNode* node)
{
    typedef Vector<RefPtr<JSC::ProfileNode>> ProfileNodesList;
    const ProfileNodesList& nodeChildren = node->children();
    ProfileNodesList::const_iterator end = nodeChildren.end();
    RefPtr<Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>> children = Inspector::TypeBuilder::Array<Inspector::TypeBuilder::Profiler::CPUProfileNode>::create();
    for (ProfileNodesList::const_iterator iter = nodeChildren.begin(); iter != end; ++iter)
        children->addItem(buildInspectorObjectFor(iter->get()));

    RefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> result = Inspector::TypeBuilder::Profiler::CPUProfileNode::create()
        .setFunctionName(node->functionName())
        .setUrl(node->url())
        .setLineNumber(node->lineNumber())
        .setTotalTime(node->totalTime())
        .setSelfTime(node->selfTime())
        .setNumberOfCalls(node->numberOfCalls())
        .setCallUID(node->callIdentifier().hash())
        .setChildren(children.release());
    return result.release();
}
static PassRefPtr<InspectorObject> buildInspectorObjectFor(const v8::CpuProfileNode* node)
{
    v8::HandleScope handleScope;
    RefPtr<InspectorObject> result = InspectorObject::create();
    result->setString("functionName", toWebCoreString(node->GetFunctionName()));
    result->setString("url", toWebCoreString(node->GetScriptResourceName()));
    result->setNumber("lineNumber", node->GetLineNumber());
    result->setNumber("totalTime", node->GetTotalTime());
    result->setNumber("selfTime", node->GetSelfTime());
    result->setNumber("numberOfCalls", 0);
    result->setBoolean("visible", true);
    result->setNumber("callUID", node->GetCallUid());

    RefPtr<InspectorArray> children = InspectorArray::create();
    const int childrenCount = node->GetChildrenCount();
    for (int i = 0; i < childrenCount; i++) {
        const v8::CpuProfileNode* child = node->GetChild(i);
        children->pushObject(buildInspectorObjectFor(child));
    }
    result->setArray("children", children);
    return result.release();
}
static PassRefPtr<InspectorObject> buildInspectorObjectFor(const JSC::ProfileNode* node)
{
    RefPtr<InspectorObject> result = InspectorObject::create();

    result->setString("functionName", ustringToString(node->functionName()));
    result->setString("url", ustringToString(node->url()));
    result->setNumber("lineNumber", node->lineNumber());
    result->setNumber("totalTime", node->totalTime());
    result->setNumber("selfTime", node->selfTime());
    result->setNumber("numberOfCalls", node->numberOfCalls());
    result->setBoolean("visible", node->visible());
    result->setNumber("callUID", node->callIdentifier().hash());

    RefPtr<InspectorArray> childrenArray = InspectorArray::create();
    typedef Vector<RefPtr<JSC::ProfileNode> > ProfileNodesList;
    const ProfileNodesList& children = node->children();
    ProfileNodesList::const_iterator end = children.end();
    for (ProfileNodesList::const_iterator iter = children.begin(); iter != end; ++iter)
        childrenArray->pushObject(buildInspectorObjectFor(iter->get()));
    result->setArray("children", childrenArray);

    return result;
}
Ejemplo n.º 4
0
static PassRefPtr<TypeBuilder::Profiler::CPUProfileNode> buildInspectorObjectFor(const v8::CpuProfileNode* node)
{
    v8::HandleScope handleScope(v8::Isolate::GetCurrent());

    RefPtr<TypeBuilder::Array<TypeBuilder::Profiler::CPUProfileNode> > children = TypeBuilder::Array<TypeBuilder::Profiler::CPUProfileNode>::create();
    const int childrenCount = node->GetChildrenCount();
    for (int i = 0; i < childrenCount; i++) {
        const v8::CpuProfileNode* child = node->GetChild(i);
        children->addItem(buildInspectorObjectFor(child));
    }

    RefPtr<TypeBuilder::Profiler::CPUProfileNode> result = TypeBuilder::Profiler::CPUProfileNode::create()
        .setFunctionName(toWebCoreString(node->GetFunctionName()))
        .setScriptId(String::number(node->GetScriptId()))
        .setUrl(toWebCoreString(node->GetScriptResourceName()))
        .setLineNumber(node->GetLineNumber())
        .setHitCount(node->GetHitCount())
        .setCallUID(node->GetCallUid())
        .setChildren(children.release())
        .setDeoptReason(node->GetBailoutReason());
    result->setId(node->GetNodeId());
    return result.release();
}
Ejemplo n.º 5
0
static PassRefPtr<TypeBuilder::Profiler::CPUProfileNode> buildInspectorObjectFor(const v8::CpuProfileNode* node)
{
    v8::HandleScope handleScope;

    RefPtr<TypeBuilder::Array<TypeBuilder::Profiler::CPUProfileNode> > children = TypeBuilder::Array<TypeBuilder::Profiler::CPUProfileNode>::create();
    const int childrenCount = node->GetChildrenCount();
    for (int i = 0; i < childrenCount; i++) {
        const v8::CpuProfileNode* child = node->GetChild(i);
        children->addItem(buildInspectorObjectFor(child));
    }

    RefPtr<TypeBuilder::Profiler::CPUProfileNode> result = TypeBuilder::Profiler::CPUProfileNode::create()
        .setFunctionName(toWebCoreString(node->GetFunctionName()))
        .setUrl(toWebCoreString(node->GetScriptResourceName()))
        .setLineNumber(node->GetLineNumber())
        .setTotalTime(node->GetTotalTime())
        .setSelfTime(node->GetSelfTime())
        .setNumberOfCalls(0)
        .setVisible(true)
        .setCallUID(node->GetCallUid())
        .setChildren(children.release());
    return result.release();
}
PassRefPtr<InspectorObject> ScriptProfile::buildInspectorObjectForHead() const
{
    return buildInspectorObjectFor(m_profile->GetTopDownRoot());
}
Ejemplo n.º 7
0
PassRefPtr<TypeBuilder::Profiler::CPUProfileNode> ScriptProfile::buildInspectorObjectForHead() const
{
    return buildInspectorObjectFor(m_profile->GetTopDownRoot());
}
Ejemplo n.º 8
0
PassRefPtr<Inspector::TypeBuilder::Profiler::CPUProfileNode> ScriptProfile::buildInspectorObjectForHead() const
{
    return buildInspectorObjectFor(m_profile->head());
}