PassRefPtr<TimelineEvent> TimelineRecordFactory::createGenericRecord(double startTime, int maxCallStackDepth, const String& type, PassRefPtr<JSONObject> data)
{
    ASSERT(data.get());
    RefPtr<TimelineEvent> record = TimelineEvent::create()
        .setType(type)
        .setData(data)
        .setStartTime(startTime);
    if (maxCallStackDepth) {
        RefPtrWillBeRawPtr<ScriptCallStack> stackTrace = createScriptCallStack(maxCallStackDepth, true);
        if (stackTrace && stackTrace->size())
            record->setStackTrace(stackTrace->buildInspectorArray());
    }
    return record.release();
}