Start adding implementations for runtime-provided native methods.

The library can't do everything...

Change-Id: Ib808c00570c7214aeb2ca058b1a66cacbeb372f1
diff --git a/src/object.h b/src/object.h
index 1db3e83..506e39c 100644
--- a/src/object.h
+++ b/src/object.h
@@ -184,6 +184,11 @@
 
   size_t SizeOf() const;
 
+  Object* Clone() {
+    UNIMPLEMENTED(FATAL);
+    return NULL;
+  }
+
   void MonitorEnter() {
     monitor_->Enter();
   }
@@ -826,6 +831,10 @@
     return MemberOffset(OFFSETOF_MEMBER(Array, first_element_));
   }
 
+  void* GetRawData() {
+    return reinterpret_cast<void*>(first_element_);
+  }
+
  protected:
   bool IsValidIndex(int32_t index) const {
     if (index < 0 || index >= length_) {
@@ -1114,6 +1123,8 @@
     return that->IsPublic() || this->IsInSamePackage(that);
   }
 
+  static bool CanPutArrayElementNoThrow(const Class* elementClass, const Class* arrayClass);
+
   // Returns the number of static, private, and constructor methods.
   size_t NumDirectMethods() const {
     return (direct_methods_ != NULL) ? direct_methods_->GetLength() : 0;
@@ -1688,6 +1699,11 @@
     return result;
   }
 
+  String* Intern() const {
+    UNIMPLEMENTED(FATAL);
+    return NULL;
+  }
+
  private:
   // Field order required by test "ValidateFieldOrderOfJavaCppUnionClasses".
   CharArray* array_;