Commit 33998592 authored by commit-queue@webkit.org's avatar commit-queue@webkit.org
Browse files

Unreviewed, rolling out r97362.

http://trac.webkit.org/changeset/97362
https://bugs.webkit.org/show_bug.cgi?id=70039

Relies on V8 APIs that have been reverted upstream. (Requested
by dglazkov on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2011-10-13

Source/WebCore:

* English.lproj/localizedStrings.js:
* bindings/js/ScriptProfiler.cpp:
* bindings/js/ScriptProfiler.h:
* bindings/v8/ScriptProfiler.cpp:
* bindings/v8/ScriptProfiler.h:
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::create):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/front-end/DetailedHeapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.hoverMessage):
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.hoverMessage):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.DetailedHeapshotView.prototype._showStringContentPopover):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
(WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
* inspector/front-end/HeapSnapshotProxy.js:
* inspector/front-end/RemoteObject.js:
* inspector/front-end/heapProfiler.css:

LayoutTests:

* inspector/profiler/heap-snapshot-expected.txt:
* inspector/profiler/heap-snapshot-test.js:
(initialize_HeapSnapshotTest):
* inspector/profiler/heap-snapshot.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@97372 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 4de3ab70
2011-10-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97362.
http://trac.webkit.org/changeset/97362
https://bugs.webkit.org/show_bug.cgi?id=70039
Relies on V8 APIs that have been reverted upstream. (Requested
by dglazkov on #webkit).
* inspector/profiler/heap-snapshot-expected.txt:
* inspector/profiler/heap-snapshot-test.js:
(initialize_HeapSnapshotTest):
* inspector/profiler/heap-snapshot.html:
2011-10-13 David Hyatt <hyatt@apple.com>
 
https://bugs.webkit.org/show_bug.cgi?id=69932
......@@ -17,8 +17,6 @@ Running: heapSnapshotRetainersTest
Running: heapSnapshotAggregatesTest
Running: heapSnapshotFlagsTest
Running: heapSnapshotNodesProviderTest
Running: heapSnapshotEdgesProviderTest
......
......@@ -66,41 +66,4 @@ InspectorTest.createHeapSnapshotMock = function()
};
};
InspectorTest.createHeapSnapshotMockWithDOM = function()
{
return {
snapshot: {},
nodes: [
{ fields: ["type", "name", "id", "children_count", "children"],
types: [["hidden", "object"], "", "", "", { fields: ["type", "name_or_index", "to_node"], types: [["element", "hidden", "internal"], "", ""] }] },
// A tree with DOMWindow objects.
//
// |----->DOMWindow--->A
// | \
// |----->DOMWindow--->B--->C
// | | \
// (root) hidden --->D--internal / "native"-->N
// | \ |
// |----->E H internal
// | v
// |----->F--->G------>M
//
/* (root) */ 0, 0, 1, 4, 0, 1, 17, 0, 2, 27, 0, 3, 40, 0, 4, 44,
/* DOMWindow */ 1, 11, 2, 2, 0, 1, 51, 0, 2, 55,
/* DOMWindow */ 1, 11, 3, 3, 0, 1, 55, 0, 2, 62, 1, 3, 72,
/* E */ 1, 5, 4, 0,
/* F */ 1, 6, 5, 1, 0, 1, 76,
/* A */ 1, 1, 6, 0,
/* B */ 1, 2, 7, 1, 0, 1, 80,
/* D */ 1, 4, 8, 2, 2, 12, 84, 2, 1, 88,
/* H */ 1, 8, 9, 0,
/* G */ 1, 7, 10, 0,
/* C */ 1, 3, 11, 0,
/* N */ 1, 10, 12, 0,
/* M */ 1, 9, 13, 0
],
strings: ["", "A", "B", "C", "D", "E", "F", "G", "H", "M", "N", "DOMWindow", "native"]
};
};
};
......@@ -148,30 +148,6 @@ function test()
next();
},
function heapSnapshotFlagsTest(next)
{
var snapshot = new WebInspector.HeapSnapshot(InspectorTest.createHeapSnapshotMockWithDOM());
var expectedCanBeQueried = {
"": false,
"A": true,
"B": true,
"C": true,
"D": true,
"E": false,
"F": false,
"G": false,
"H": false,
"M": false,
"N": true,
"DOMWindow": true
};
for (var nodes = snapshot._allNodes; nodes.hasNext(); nodes.next()) {
var node = nodes.item;
InspectorTest.assertEquals(expectedCanBeQueried[node.name], node.canBeQueried, "canBeQueried of \"" + node.name + "\"");
}
next();
},
function heapSnapshotNodesProviderTest(next)
{
var snapshot = new WebInspector.HeapSnapshot(InspectorTest.createHeapSnapshotMock());
......
2011-10-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r97362.
http://trac.webkit.org/changeset/97362
https://bugs.webkit.org/show_bug.cgi?id=70039
Relies on V8 APIs that have been reverted upstream. (Requested
by dglazkov on #webkit).
* English.lproj/localizedStrings.js:
* bindings/js/ScriptProfiler.cpp:
* bindings/js/ScriptProfiler.h:
* bindings/v8/ScriptProfiler.cpp:
* bindings/v8/ScriptProfiler.h:
* inspector/Inspector.json:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::create):
(WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
* inspector/InspectorProfilerAgent.h:
* inspector/front-end/DetailedHeapshotGridNodes.js:
(WebInspector.HeapSnapshotGridNode.prototype.hasHoverMessage.false.hoverMessage):
(WebInspector.HeapSnapshotGenericObjectNode):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.get data):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.hoverMessage):
(WebInspector.HeapSnapshotGenericObjectNode.prototype.shortenWindowURL):
* inspector/front-end/DetailedHeapshotView.js:
(WebInspector.DetailedHeapshotView.prototype._showStringContentPopover):
* inspector/front-end/HeapSnapshot.js:
(WebInspector.HeapSnapshot.prototype._init):
(WebInspector.HeapSnapshot.prototype.dispose):
(WebInspector.HeapSnapshot.prototype.updateStaticData):
(WebInspector.HeapSnapshotNodesProvider.prototype._serialize):
* inspector/front-end/HeapSnapshotProxy.js:
* inspector/front-end/RemoteObject.js:
* inspector/front-end/heapProfiler.css:
2011-10-13 David Hyatt <hyatt@apple.com>
 
https://bugs.webkit.org/show_bug.cgi?id=69932
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
......@@ -31,7 +31,6 @@
#include "ScriptProfiler.h"
#include "GCController.h"
#include "InspectorValues.h"
#include "JSDOMBinding.h"
#include <profiler/Profiler.h>
......@@ -42,11 +41,6 @@ void ScriptProfiler::collectGarbage()
gcController().garbageCollectNow();
}
PassRefPtr<InspectorValue> ScriptProfiler::objectByHeapObjectId(unsigned, InjectedScriptManager*)
{
return InspectorValue::null();
}
void ScriptProfiler::start(ScriptState* state, const String& title)
{
JSC::Profiler::profiler()->startProfiling(state, stringToUString(title));
......
......@@ -35,9 +35,6 @@
namespace WebCore {
class InjectedScriptManager;
class InspectorValue;
class ScriptProfiler {
WTF_MAKE_NONCOPYABLE(ScriptProfiler);
public:
......@@ -51,7 +48,6 @@ public:
};
static void collectGarbage();
static PassRefPtr<InspectorValue> objectByHeapObjectId(unsigned id, InjectedScriptManager*);
static void start(ScriptState* state, const String& title);
static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
static PassRefPtr<ScriptHeapSnapshot> takeHeapSnapshot(const String&, HeapSnapshotProgress*) { return 0; }
......
......@@ -31,7 +31,6 @@
#include "config.h"
#include "ScriptProfiler.h"
#include "InjectedScript.h"
#include "InspectorValues.h"
#include "RetainedDOMInfo.h"
#include "V8Binding.h"
......@@ -66,34 +65,6 @@ void ScriptProfiler::collectGarbage()
while (!v8::V8::IdleNotification()) { }
}
PassRefPtr<InspectorValue> ScriptProfiler::objectByHeapObjectId(unsigned id, InjectedScriptManager* injectedScriptManager)
{
// As ids are unique, it doesn't matter which HeapSnapshot owns HeapGraphNode.
// We need to find first HeapSnapshot containing a node with the specified id.
const v8::HeapGraphNode* node = 0;
for (int i = 0, l = v8::HeapProfiler::GetSnapshotsCount(); i < l; ++i) {
const v8::HeapSnapshot* snapshot = v8::HeapProfiler::GetSnapshot(i);
node = snapshot->GetNodeById(id);
if (node)
break;
}
if (!node)
return InspectorValue::null();
v8::HandleScope scope;
v8::Handle<v8::Value> value = node->GetHeapValue();
if (!value->IsObject())
return InspectorValue::null();
v8::Handle<v8::Object> object(value.As<v8::Object>());
v8::Local<v8::Context> creationContext = object->CreationContext();
v8::Context::Scope creationScope(creationContext);
ScriptState* scriptState = ScriptState::forContext(creationContext);
InjectedScript injectedScript = injectedScriptManager->injectedScriptFor(scriptState);
return !injectedScript.hasNoValue() ?
RefPtr<InspectorValue>(injectedScript.wrapObject(value, "")).release() : InspectorValue::null();
}
namespace {
class ActivityControlAdapter : public v8::ActivityControl {
......
......@@ -39,8 +39,7 @@
namespace WebCore {
class InjectedScriptManager;
class InspectorValue;
class InspectorObject;
class ScriptProfiler {
WTF_MAKE_NONCOPYABLE(ScriptProfiler);
......@@ -55,7 +54,6 @@ public:
};
static void collectGarbage();
static PassRefPtr<InspectorValue> objectByHeapObjectId(unsigned id, InjectedScriptManager*);
static void start(ScriptState* state, const String& title);
static PassRefPtr<ScriptProfile> stop(ScriptState* state, const String& title);
static PassRefPtr<ScriptHeapSnapshot> takeHeapSnapshot(const String& title, HeapSnapshotProgress*);
......
......@@ -2009,15 +2009,6 @@
},
{
"name": "collectGarbage"
},
{
"name": "getObjectByHeapObjectId",
"parameters": [
{ "name": "objectId", "type": "integer" }
],
"returns": [
{ "name": "result", "$ref": "Runtime.RemoteObject", "description": "Evaluation result." }
]
}
],
"events": [
......
......@@ -115,7 +115,7 @@ InspectorController::InspectorController(Page* page, InspectorClient* inspectorC
#if ENABLE(JAVASCRIPT_DEBUGGER)
, m_debuggerAgent(PageDebuggerAgent::create(m_instrumentingAgents.get(), m_state.get(), page, m_injectedScriptManager.get()))
, m_domDebuggerAgent(InspectorDOMDebuggerAgent::create(m_instrumentingAgents.get(), m_state.get(), m_domAgent.get(), m_debuggerAgent.get(), m_inspectorAgent.get()))
, m_profilerAgent(InspectorProfilerAgent::create(m_instrumentingAgents.get(), m_consoleAgent.get(), page, m_state.get(), m_injectedScriptManager.get()))
, m_profilerAgent(InspectorProfilerAgent::create(m_instrumentingAgents.get(), m_consoleAgent.get(), page, m_state.get()))
#endif
#if ENABLE(WORKERS)
, m_workerAgent(InspectorWorkerAgent::create(m_instrumentingAgents.get(), m_state.get()))
......
......@@ -62,17 +62,16 @@ static const char* const UserInitiatedProfileName = "org.webkit.profiles.user-in
static const char* const CPUProfileType = "CPU";
static const char* const HeapProfileType = "HEAP";
PassOwnPtr<InspectorProfilerAgent> InspectorProfilerAgent::create(InstrumentingAgents* instrumentingAgents, InspectorConsoleAgent* consoleAgent, Page* inspectedPage, InspectorState* inspectorState, InjectedScriptManager* injectedScriptManager)
PassOwnPtr<InspectorProfilerAgent> InspectorProfilerAgent::create(InstrumentingAgents* instrumentingAgents, InspectorConsoleAgent* consoleAgent, Page* inspectedPage, InspectorState* inspectorState)
{
return adoptPtr(new InspectorProfilerAgent(instrumentingAgents, consoleAgent, inspectedPage, inspectorState, injectedScriptManager));
return adoptPtr(new InspectorProfilerAgent(instrumentingAgents, consoleAgent, inspectedPage, inspectorState));
}
InspectorProfilerAgent::InspectorProfilerAgent(InstrumentingAgents* instrumentingAgents, InspectorConsoleAgent* consoleAgent, Page* inspectedPage, InspectorState* inspectorState, InjectedScriptManager* injectedScriptManager)
InspectorProfilerAgent::InspectorProfilerAgent(InstrumentingAgents* instrumentingAgents, InspectorConsoleAgent* consoleAgent, Page* inspectedPage, InspectorState* inspectorState)
: m_instrumentingAgents(instrumentingAgents)
, m_consoleAgent(consoleAgent)
, m_inspectedPage(inspectedPage)
, m_inspectorState(inspectorState)
, m_injectedScriptManager(injectedScriptManager)
, m_frontend(0)
, m_enabled(false)
, m_recordingUserInitiatedProfile(false)
......@@ -379,15 +378,6 @@ void InspectorProfilerAgent::toggleRecordButton(bool isProfiling)
m_frontend->setRecordingProfile(isProfiling);
}
void InspectorProfilerAgent::getObjectByHeapObjectId(ErrorString* error, int id, RefPtr<InspectorObject>* result)
{
RefPtr<InspectorValue> heapObject = ScriptProfiler::objectByHeapObjectId(id, m_injectedScriptManager);
if (!heapObject->isNull())
heapObject->asObject(result);
else
*error = "Object is not available.";
}
} // namespace WebCore
#endif // ENABLE(JAVASCRIPT_DEBUGGER) && ENABLE(INSPECTOR)
......@@ -41,7 +41,6 @@
namespace WebCore {
class InjectedScriptManager;
class InspectorArray;
class InspectorConsoleAgent;
class InspectorFrontend;
......@@ -57,7 +56,7 @@ typedef String ErrorString;
class InspectorProfilerAgent {
WTF_MAKE_NONCOPYABLE(InspectorProfilerAgent); WTF_MAKE_FAST_ALLOCATED;
public:
static PassOwnPtr<InspectorProfilerAgent> create(InstrumentingAgents*, InspectorConsoleAgent*, Page*, InspectorState*, InjectedScriptManager*);
static PassOwnPtr<InspectorProfilerAgent> create(InstrumentingAgents*, InspectorConsoleAgent*, Page*, InspectorState*);
virtual ~InspectorProfilerAgent();
void addProfile(PassRefPtr<ScriptProfile> prpProfile, unsigned lineNumber, const String& sourceURL);
......@@ -91,8 +90,6 @@ public:
void takeHeapSnapshot(ErrorString*);
void toggleRecordButton(bool isProfiling);
void getObjectByHeapObjectId(ErrorString*, int id, RefPtr<InspectorObject>* result);
private:
typedef HashMap<unsigned int, RefPtr<ScriptProfile> > ProfilesMap;
typedef HashMap<unsigned int, RefPtr<ScriptHeapSnapshot> > HeapSnapshotsMap;
......@@ -100,7 +97,7 @@ private:
void resetFrontendProfiles();
void restoreEnablement();
InspectorProfilerAgent(InstrumentingAgents*, InspectorConsoleAgent*, Page*, InspectorState*, InjectedScriptManager*);
InspectorProfilerAgent(InstrumentingAgents*, InspectorConsoleAgent*, Page*, InspectorState*);
PassRefPtr<InspectorObject> createProfileHeader(const ScriptProfile& profile);
PassRefPtr<InspectorObject> createSnapshotHeader(const ScriptHeapSnapshot& snapshot);
......@@ -108,7 +105,6 @@ private:
InspectorConsoleAgent* m_consoleAgent;
Page* m_inspectedPage;
InspectorState* m_inspectorState;
InjectedScriptManager* m_injectedScriptManager;
InspectorFrontend::Profiler* m_frontend;
bool m_enabled;
bool m_recordingUserInitiatedProfile;
......
......@@ -56,8 +56,9 @@ WebInspector.HeapSnapshotGridNode.prototype = {
hasHoverMessage: false,
queryObjectContent: function(callback)
hoverMessage: function(callback)
{
callback("");
},
_populate: function(event)
......@@ -184,10 +185,11 @@ WebInspector.HeapSnapshotGenericObjectNode = function(tree, node)
if (this._type === "string")
this.hasHoverMessage = true;
else if (this._type === "object" && this.isDOMWindow(this._name)) {
this._name = this.shortenWindowURL(this._name, false);
this.hasHoverMessage = true;
} else if (node.flags & tree.snapshot.nodeFlags.canBeQueried)
var url = [];
this._name = this.shortenWindowURL(this._name, false, url);
this._url = url[0];
this.hasHoverMessage = true;
}
};
WebInspector.HeapSnapshotGenericObjectNode.prototype = {
......@@ -257,8 +259,6 @@ WebInspector.HeapSnapshotGenericObjectNode.prototype = {
value += " []";
break;
};
if (this.hasHoverMessage)
valueStyle += " highlight";
data["object"] = { valueStyle: valueStyle, value: value + " @" + this.snapshotNodeId };
var view = this.dataGrid.snapshotView;
......@@ -268,20 +268,12 @@ WebInspector.HeapSnapshotGenericObjectNode.prototype = {
return this._enhanceData ? this._enhanceData(data) : data;
},
queryObjectContent: function(callback)
hoverMessage: function(callback)
{
if (this._type === "string")
callback(WebInspector.RemoteObject.fromPrimitiveValue(this._name));
else {
function formatResult(error, object)
{
if (!error && object.type)
callback(WebInspector.RemoteObject.fromPayload(object), !!error);
else
callback(WebInspector.RemoteObject.fromError(WebInspector.UIString("Not available")));
}
ProfilerAgent.getObjectByHeapObjectId(this.snapshotNodeId, formatResult);
}
callback("\"" + this._name + "\"", "console-formatted-string");
else if (this._url)
callback(this._url, "console-formatted-object");
},
get _retainedSizePercent()
......@@ -308,12 +300,14 @@ WebInspector.HeapSnapshotGenericObjectNode.prototype = {
return fullName.substr(0, 9) === "DOMWindow";
},
shortenWindowURL: function(fullName, hasObjectId)
shortenWindowURL: function(fullName, hasObjectId, fullURLPtr)
{
var startPos = fullName.indexOf("/");
var endPos = hasObjectId ? fullName.indexOf("@") : fullName.length;
if (startPos !== -1 && endPos !== -1) {
var fullURL = fullName.substring(startPos + 1, endPos).trimLeft();
if (fullURLPtr)
fullURLPtr[0] = fullURL;
var url = fullURL.trimURL();
if (url.length > 40)
url = url.trimMiddle(40);
......
......@@ -621,7 +621,7 @@ WebInspector.DetailedHeapshotView = function(parent, profile)
this.helpButton = new WebInspector.StatusBarButton("", "heapshot-help-status-bar-item status-bar-item");
this.helpButton.addEventListener("click", this._helpClicked.bind(this), false);
var popoverHelper = new WebInspector.ObjectPopoverHelper(this.element, this._getHoverAnchor.bind(this), this._showObjectPopover.bind(this), null, true);
var popoverHelper = new WebInspector.PopoverHelper(this.element, this._getHoverAnchor.bind(this), this._showStringContentPopover.bind(this));
this._loadProfile(this._profileUid, profileCallback.bind(this));
......@@ -1066,9 +1066,19 @@ WebInspector.DetailedHeapshotView.prototype = {
this.refreshShowAsPercents();
},
_showObjectPopover: function(element, showCallback)
_showStringContentPopover: function(anchor, popover)
{
element.node.queryObjectContent(showCallback);
var stringContentElement = document.createElement("span");
stringContentElement.className = "monospace";
stringContentElement.style.whiteSpace = "pre";
function displayString(name, className)
{
stringContentElement.textContent = name;
stringContentElement.className += " " + className;
popover.show(stringContentElement, anchor);
}
anchor.node.hoverMessage(displayString);
},
_helpClicked: function(event)
......
......@@ -494,12 +494,6 @@ WebInspector.HeapSnapshotNode = function(snapshot, nodeIndex)
}
WebInspector.HeapSnapshotNode.prototype = {
get canBeQueried()
{
var flags = this._snapshot._flagsOfNode(this);
return !!(flags & this._snapshot._nodeFlags.canBeQueried);
},
get className()
{
switch (this.type) {
......@@ -535,11 +529,6 @@ WebInspector.HeapSnapshotNode.prototype = {
return this._nodes[this.nodeIndex + this._snapshot._edgesCountOffset];
},
get flags()
{
return this._snapshot._flagsOfNode(this);
},
get id()
{
return this._nodes[this.nodeIndex + this._snapshot._nodeIdOffset];
......@@ -555,11 +544,6 @@ WebInspector.HeapSnapshotNode.prototype = {
return this._type() === this._snapshot._nodeHiddenType;
},
get isDOMWindow()
{
return this.name.substr(0, 9) === "DOMWindow";
},
get isRoot()
{
return this.nodeIndex === this._snapshot._rootNodeIndex;
......@@ -698,8 +682,6 @@ WebInspector.HeapSnapshot.prototype = {
this._edgeInvisibleType = this._edgeTypes.length;
this._edgeTypes.push("invisible");
this._nodeFlags = { canBeQueried: 1 };
this._markInvisibleEdges();
},
......@@ -717,7 +699,6 @@ WebInspector.HeapSnapshot.prototype = {
delete this._baseNodeIds;
delete this._dominatedNodes;
delete this._dominatedIndex;
delete this._flags;
},
get _allNodes()
......@@ -782,13 +763,6 @@ WebInspector.HeapSnapshot.prototype = {
return new WebInspector.HeapSnapshotArraySlice(this, "_dominatedNodes", dominatedIndexFrom, dominatedIndexTo);
},
_flagsOfNode: function(node)
{
if (!this._flags)
this._calculateFlags();
return this._flags[node.nodeIndex];
},
aggregates: function(sortedIndexes)
{
if (!this._aggregates)
......@@ -985,32 +959,6 @@ WebInspector.HeapSnapshot.prototype = {
return a < b ? -1 : (a > b ? 1 : 0);
},
_calculateFlags: function()
{
var flag = this._nodeFlags.canBeQueried;
this._flags = new Array(this.nodeCount);
// Allow runtime properties query for objects accessible from DOMWindow objects
// via regular properties, and for DOM wrappers. Trying to access random objects
// can cause a crash due to insonsistent state of internal properties of wrappers.
var list = [];
for (var iter = this.rootNode.edges; iter.hasNext(); iter.next()) {
if (iter.edge.node.isDOMWindow)
list.push(iter.edge.node);
}
while (list.length) {
var node = list.shift();
if (node.canBeQueried) continue;
this._flags[node.nodeIndex] = flag;
for (var iter = node.edges; iter.hasNext(); iter.next()) {
var edge = iter.edge;
if (!edge.isHidden && !edge.isInvisible &&
edge.name && (!edge.isInternal || edge.name === "native") &&
!edge.node.canBeQueried)
list.push(edge.node);
}
}
},
baseSnapshotHasNode: function(baseSnapshotId, className, nodeId)
{
return this._baseNodeIds[baseSnapshotId][className].binaryIndexOf(nodeId, this._numbersComparator) !== -1;
......@@ -1066,7 +1014,7 @@ WebInspector.HeapSnapshot.prototype = {
updateStaticData: function()
{
return {nodeCount: this.nodeCount, rootNodeIndex: this._rootNodeIndex, totalSize: this.totalSize, uid: this.uid, nodeFlags: this._nodeFlags};
return {nodeCount: this.nodeCount, rootNodeIndex: this._rootNodeIndex, totalSize: this.totalSize, uid: this.uid};
}
};
......@@ -1287,7 +1235,7 @@ WebInspector.HeapSnapshotNodesProvider = function(snapshot, filter, nodeIndexes)
WebInspector.HeapSnapshotNodesProvider.prototype = {
_serialize: function(node)
{
return {id: node.id, name: node.name, nodeIndex: node.nodeIndex, retainedSize: node.retainedSize, selfSize: node.selfSize, type: node.type, flags: node.flags};
return {id: node.id, name: node.name, nodeIndex: node.nodeIndex, retainedSize: node.retainedSize, selfSize: node.selfSize, type: node.type};
},
sort: function(comparator, leftBound, rightBound, count)
......
......@@ -370,11 +370,6 @@ WebInspector.HeapSnapshotProxy.prototype = {
this.callMethod(callback, "nodeFieldValuesByIndex", fieldName, indexes);
},