Index: third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp |
diff --git a/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp b/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp |
index 77270f69f1b9f8d04810a40ec29548438c1c5dd8..b7b616fef49f6dcde11be017f3672db710d3b23f 100644 |
--- a/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp |
+++ b/third_party/WebKit/Source/core/inspector/InspectorHeapProfilerAgent.cpp |
@@ -104,13 +104,12 @@ private: |
InspectorFrontend::HeapProfiler* m_frontend; |
}; |
-ScriptValue objectByHeapObjectId(v8::Isolate* isolate, unsigned id) |
+v8::Local<v8::Object> objectByHeapObjectId(v8::Isolate* isolate, unsigned id) |
{ |
v8::HeapProfiler* profiler = isolate->GetHeapProfiler(); |
- v8::HandleScope handleScope(isolate); |
v8::Local<v8::Value> value = profiler->FindObjectById(id); |
if (value.IsEmpty() || !value->IsObject()) |
- return ScriptValue(); |
+ return v8::Local<v8::Object>(); |
v8::Local<v8::Object> object = value.As<v8::Object>(); |
@@ -119,19 +118,18 @@ ScriptValue objectByHeapObjectId(v8::Isolate* isolate, unsigned id) |
// Skip wrapper boilerplates which are like regular wrappers but don't have |
// native object. |
if (!wrapper.IsEmpty() && wrapper->IsUndefined()) |
- return ScriptValue(); |
+ return v8::Local<v8::Object>(); |
} |
- ScriptState* scriptState = ScriptState::from(object->CreationContext()); |
- return ScriptValue(scriptState, object); |
+ return object; |
} |
class InspectableHeapObject final : public InjectedScriptHost::InspectableObject { |
public: |
explicit InspectableHeapObject(unsigned heapObjectId) : m_heapObjectId(heapObjectId) { } |
- ScriptValue get(ScriptState* state) override |
+ v8::Local<v8::Value> get(v8::Local<v8::Context> context) override |
{ |
- return objectByHeapObjectId(state->isolate(), m_heapObjectId); |
+ return objectByHeapObjectId(context->GetIsolate(), m_heapObjectId); |
} |
private: |
unsigned m_heapObjectId; |
@@ -328,12 +326,14 @@ void InspectorHeapProfilerAgent::getObjectByHeapObjectId(ErrorString* error, con |
*error = "Invalid heap snapshot object id"; |
return; |
} |
- ScriptValue heapObject = objectByHeapObjectId(m_isolate, id); |
- if (heapObject.isEmpty()) { |
+ |
+ v8::HandleScope handles(m_isolate); |
+ v8::Local<v8::Object> heapObject = objectByHeapObjectId(m_isolate, id); |
+ if (heapObject.IsEmpty()) { |
*error = "Object is not available"; |
return; |
} |
- InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(heapObject.scriptState()); |
+ InjectedScript* injectedScript = m_injectedScriptManager->injectedScriptFor(heapObject->CreationContext()); |
if (!injectedScript) { |
*error = "Object is not available. Inspected context is gone"; |
return; |