Fix issues encounted when porting Flutter

Change-Id: I14a1b3c59d32c45e5ef5293f4a66d74fa0f4b3f6
diff --git a/dart_binding_macros.h b/dart_binding_macros.h
index 85bb3f7..2d4488d 100644
--- a/dart_binding_macros.h
+++ b/dart_binding_macros.h
@@ -9,25 +9,27 @@
 
 #define DART_NATIVE_CALLBACK(CLASS, METHOD)                 \
   static void CLASS##_##METHOD(Dart_NativeArguments args) { \
-    blink::DartCall(&CLASS::METHOD, args);                  \
+    tonic::DartCall(&CLASS::METHOD, args);                  \
   }
 
 #define DART_NATIVE_CALLBACK_STATIC(CLASS, METHOD)          \
   static void CLASS##_##METHOD(Dart_NativeArguments args) { \
-    blink::DartCallStatic(&CLASS::METHOD, args);            \
+    tonic::DartCallStatic(&CLASS::METHOD, args);            \
   }
 
 #define DART_REGISTER_NATIVE(CLASS, METHOD) \
   {#CLASS "_" #METHOD, CLASS##_##METHOD,    \
-   blink::IndicesForSignature<decltype(&CLASS::METHOD)>::count + 1, true},
+   tonic::IndicesForSignature<decltype(&CLASS::METHOD)>::count + 1, true},
 
-#define DART_REGISTER_NATIVE_STATIC(CLASS, METHOD) \
-  {#CLASS "_" #METHOD, CLASS##_##METHOD,           \
-   blink::IndicesForSignature<decltype(&CLASS::METHOD)>::count, true},
+#define DART_REGISTER_NATIVE_STATIC(CLASS, METHOD)                            \
+  {                                                                           \
+    #CLASS "_" #METHOD, CLASS##_##METHOD,                                     \
+        tonic::IndicesForSignature < decltype(&CLASS::METHOD) > ::count, true \
+  }
 
 #define DART_BIND_ALL(CLASS, FOR_EACH)                              \
   FOR_EACH(DART_NATIVE_CALLBACK)                                    \
-  void CLASS::RegisterNatives(blink::DartLibraryNatives* natives) { \
+  void CLASS::RegisterNatives(tonic::DartLibraryNatives* natives) { \
     natives->Register({FOR_EACH(DART_REGISTER_NATIVE)});            \
   }
 
diff --git a/dart_state.cc b/dart_state.cc
index 0e90fcb..e8829a7 100644
--- a/dart_state.cc
+++ b/dart_state.cc
@@ -43,4 +43,7 @@
   return weak_factory_.GetWeakPtr();
 }
 
+void DartState::DidSetIsolate() {
+}
+
 }  // namespace tonic
diff --git a/dart_state.h b/dart_state.h
index 000c5f8..e0984a2 100644
--- a/dart_state.h
+++ b/dart_state.h
@@ -16,7 +16,6 @@
 
 namespace tonic {
 class DartClassLibrary;
-class DartTimerHeap;
 class DartMessageHandler;
 
 // DartState represents the state associated with a given Dart isolate. The
@@ -50,7 +49,7 @@
   DartClassLibrary& class_library() { return *class_library_; }
   DartMessageHandler& message_handler() { return *message_handler_; }
 
-  virtual void DidSetIsolate() {}
+  virtual void DidSetIsolate();
 
  private:
   Dart_Isolate isolate_;
diff --git a/dart_wrappable.h b/dart_wrappable.h
index d0350fa..c518646 100644
--- a/dart_wrappable.h
+++ b/dart_wrappable.h
@@ -16,7 +16,6 @@
 #include <type_traits>
 
 namespace tonic {
-struct DartWrapperInfo;
 
 // DartWrappable is a base class that you can inherit from in order to be
 // exposed to Dart code as an interface.
@@ -53,33 +52,36 @@
   FTL_DISALLOW_COPY_AND_ASSIGN(DartWrappable);
 };
 
-#define DEFINE_WRAPPERTYPEINFO()                               \
- public:                                                       \
-  const DartWrapperInfo& GetDartWrapperInfo() const override { \
-    return dart_wrapper_info_;                                 \
-  }                                                            \
-                                                               \
- private:                                                      \
-  static const DartWrapperInfo& dart_wrapper_info_
+#define DEFINE_WRAPPERTYPEINFO()                                      \
+ public:                                                              \
+  const tonic::DartWrapperInfo& GetDartWrapperInfo() const override { \
+    return dart_wrapper_info_;                                        \
+  }                                                                   \
+                                                                      \
+ private:                                                             \
+  static const tonic::DartWrapperInfo& dart_wrapper_info_
 
-#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName)                     \
-  static void RefObject_##LibraryName_##ClassName(DartWrappable* impl) {      \
-    static_cast<ClassName*>(impl)->AddRef();                                  \
-  }                                                                           \
-  static void DerefObject_##LibraryName_##ClassName(DartWrappable* impl) {    \
-    static_cast<ClassName*>(impl)->Release();                                 \
-  }                                                                           \
-  static const DartWrapperInfo kDartWrapperInfo_##LibraryName_##ClassName = { \
-      #LibraryName,                                                           \
-      #ClassName,                                                             \
-      sizeof(ClassName),                                                      \
-      &RefObject_##LibraryName_##ClassName,                                   \
-      &DerefObject_##LibraryName_##ClassName,                                 \
-  };                                                                          \
-  const DartWrapperInfo& ClassName::dart_wrapper_info_ =                      \
-      kDartWrapperInfo_##LibraryName_##ClassName;                             \
-  static_assert(std::is_base_of<ftl::internal::RefCountedThreadSafeBase,      \
-                                ClassName>::value,                            \
+#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName)                \
+  static void RefObject_##LibraryName_##ClassName(                       \
+      tonic::DartWrappable* impl) {                                      \
+    static_cast<ClassName*>(impl)->AddRef();                             \
+  }                                                                      \
+  static void DerefObject_##LibraryName_##ClassName(                     \
+      tonic::DartWrappable* impl) {                                      \
+    static_cast<ClassName*>(impl)->Release();                            \
+  }                                                                      \
+  static const tonic::DartWrapperInfo                                    \
+      kDartWrapperInfo_##LibraryName_##ClassName = {                     \
+          #LibraryName,                                                  \
+          #ClassName,                                                    \
+          sizeof(ClassName),                                             \
+          &RefObject_##LibraryName_##ClassName,                          \
+          &DerefObject_##LibraryName_##ClassName,                        \
+  };                                                                     \
+  const tonic::DartWrapperInfo& ClassName::dart_wrapper_info_ =          \
+      kDartWrapperInfo_##LibraryName_##ClassName;                        \
+  static_assert(std::is_base_of<ftl::internal::RefCountedThreadSafeBase, \
+                                ClassName>::value,                       \
                 #ClassName " must be thread-safe reference-countable.");
 
 struct DartConverterWrappable {