Fix order CheckCastFromCode and enable Fibonacci test

Change-Id: I6dc589df3a328777678ac407110810cec9bf5480
diff --git a/src/thread.cc b/src/thread.cc
index e44590a..92b3d4f 100644
--- a/src/thread.cc
+++ b/src/thread.cc
@@ -109,10 +109,12 @@
 
 // TODO: placeholder (throw on failure)
 void CheckCastFromCode(const Class* a, const Class* b) {
-    if (a->IsAssignableFrom(b)) {
-        return;
-    }
-    UNIMPLEMENTED(FATAL);
+  DCHECK(a->IsClass());
+  DCHECK(b->IsClass());
+  if (b->IsAssignableFrom(a)) {
+    return;
+  }
+  UNIMPLEMENTED(FATAL);
 }
 
 void UnlockObjectFromCode(Thread* thread, Object* obj) {