| Index: Source/core/inspector/InjectedScript.cpp
 | 
| diff --git a/Source/core/inspector/InjectedScript.cpp b/Source/core/inspector/InjectedScript.cpp
 | 
| index 363be6a0266303ebfc6ba7fd9c0a69bce6f46960..e11798ec5d1ad5fa18e9f58e9b1f6063f29f738f 100644
 | 
| --- a/Source/core/inspector/InjectedScript.cpp
 | 
| +++ b/Source/core/inspector/InjectedScript.cpp
 | 
| @@ -42,6 +42,17 @@
 | 
|  #include "platform/JSONValues.h"
 | 
|  #include "wtf/text/WTFString.h"
 | 
|  
 | 
| +// Includes added for Dart
 | 
| +#include "bindings/core/dart/DartHandleProxy.h"
 | 
| +#include "bindings/core/dart/DartInjectedScript.h"
 | 
| +#include "bindings/core/dart/DartInjectedScriptManager.h"
 | 
| +#include "bindings/core/dart/DartPersistentValue.h"
 | 
| +#include "bindings/core/dart/DartScriptDebugServer.h"
 | 
| +#include "bindings/core/v8/V8RecursionScope.h"
 | 
| +
 | 
| +#include <dart_api.h>
 | 
| +// End of includes added for Dart
 | 
| +
 | 
|  using blink::TypeBuilder::Array;
 | 
|  using blink::TypeBuilder::Debugger::CallFrame;
 | 
|  using blink::TypeBuilder::Debugger::CollectionEntry;
 | 
| @@ -375,6 +386,31 @@ PassRefPtr<Array<CallFrame> > InjectedScript::wrapCallFrames(const ScriptValue&
 | 
|  PassRefPtr<TypeBuilder::Runtime::RemoteObject> InjectedScript::wrapObject(const ScriptValue& value, const String& groupName, bool generatePreview) const
 | 
|  {
 | 
|      ASSERT(!isEmpty());
 | 
| +
 | 
| +    {
 | 
| +        // Start of Dart specific code.
 | 
| +        // This code is required to make objects logged to the console show up with a Dart view.
 | 
| +        // This hack should go away once custom formatter code is available in Chrome 47.
 | 
| +
 | 
| +        ScriptState* state = value.scriptState();
 | 
| +        v8::Context::Scope v8Scope(state->context());
 | 
| +
 | 
| +        v8::Handle<v8::Value> v8Handle = value.v8Value();
 | 
| +        if (v8Handle->IsObject()) {
 | 
| +            if (DartHandleProxy::isDartProxy(v8Handle, state->isolate())) {
 | 
| +                DartPersistentValue* dartPersistentValue = DartHandleProxy::readPointerFromProxy(v8Handle);
 | 
| +                // If the isolate is dead we fall back to the default JS view of the Dart object.
 | 
| +                if (dartPersistentValue->isIsolateAlive()) {
 | 
| +                    DartScopes scopes(v8Handle.As<v8::Object>());
 | 
| +                    DartScriptState* scriptState = DartUtilities::currentDartScriptState();
 | 
| +                    DartInjectedScript* dartInjectedScript = DartScriptDebugServer::shared().injectedScriptManager()->injectedScriptFor(scriptState);
 | 
| +                    return dartInjectedScript->wrapDartObject(dartPersistentValue->value(), groupName, generatePreview);
 | 
| +                }
 | 
| +            }
 | 
| +        }
 | 
| +    }
 | 
| +    // End of Dart specific code.
 | 
| +
 | 
|      ScriptFunctionCall wrapFunction(injectedScriptObject(), "wrapObject");
 | 
|      wrapFunction.appendArgument(value);
 | 
|      wrapFunction.appendArgument(groupName);
 | 
| 
 |