Browse Source

added neko base-type support.

Nicolas Cannasse 19 years ago
parent
commit
aef04e69dd
1 changed files with 13 additions and 0 deletions
  1. 13 0
      std/haxe/Serializer.hx

+ 13 - 0
std/haxe/Serializer.hx

@@ -163,10 +163,19 @@ class Serializer {
 			}
 			return;
 		}
+		#if neko
+		var t = untyped __dollar__typeof(v);
+		if( t == untyped __dollar__tstring )
+			v = new String(v);
+		#end
 		if( Std.is(v,String) ) {
 			serializeString(v);
 			return;
 		}
+		#if neko
+		if( t == untyped __dollar__tarray )
+			t = untyped Array.new1(v,__dollar__asize(v));
+		#end
 		if( Std.is(v,Array) ) {
 			if( serializeRef(v) )
 				return;
@@ -220,6 +229,10 @@ class Serializer {
 			return;
 		if( Reflect.isFunction(v) )
 			throw "Cannot serialize function";
+		#if neko
+		if( t == untyped __dollar__tabstract )
+			throw "Cannot serialize abstract";
+		#end
 		var c : Dynamic = v.__class__;
 		if( c != null && c.__name__ != null ) {
 			buf.add("c");