| Index: Source/core/inspector/InspectorHeapProfilerAgent.cpp
|
| diff --git a/Source/core/inspector/InspectorHeapProfilerAgent.cpp b/Source/core/inspector/InspectorHeapProfilerAgent.cpp
|
| index 117f0f5752edba9fd229cf1bc7027c53e1aea8fb..05bfdbf02875203ae6fbf9189fce4124994bf1c8 100644
|
| --- a/Source/core/inspector/InspectorHeapProfilerAgent.cpp
|
| +++ b/Source/core/inspector/InspectorHeapProfilerAgent.cpp
|
| @@ -285,7 +285,7 @@ void InspectorHeapProfilerAgent::getObjectByHeapObjectId(ErrorString* error, con
|
| *error = "Object is not available";
|
| return;
|
| }
|
| - InjectedScript injectedScript = m_injectedScriptManager->injectedScriptFor(heapObject.scriptState());
|
| + InjectedScript& injectedScript = m_injectedScriptManager->injectedScriptFor(heapObject.scriptState());
|
| if (injectedScript.isEmpty()) {
|
| *error = "Object is not available. Inspected context is gone";
|
| return;
|
| @@ -297,13 +297,21 @@ void InspectorHeapProfilerAgent::getObjectByHeapObjectId(ErrorString* error, con
|
|
|
| void InspectorHeapProfilerAgent::getHeapObjectId(ErrorString* errorString, const String& objectId, String* heapSnapshotObjectId)
|
| {
|
| - InjectedScript injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId);
|
| + InjectedScript& injectedScript = m_injectedScriptManager->injectedScriptForObjectId(objectId);
|
| if (injectedScript.isEmpty()) {
|
| *errorString = "Inspected context has gone";
|
| return;
|
| }
|
| - ScriptValue value = injectedScript.findObjectById(objectId);
|
| + if (!injectedScript.isJavaScript()) {
|
| + *errorString = "The heap profiler does not yet work for Dart.";
|
| + return;
|
| + }
|
| +
|
| + V8InjectedScript& v8InjectedScript = static_cast<V8InjectedScript&>(injectedScript);
|
| +
|
| + ScriptValue value = v8InjectedScript.findObjectById(objectId);
|
| V8ScriptState::Scope scope(injectedScript.scriptState()->v8ScriptState());
|
| +
|
| if (value.isEmpty() || value.isUndefined()) {
|
| *errorString = "Object with given id not found";
|
| return;
|
|
|