40
40
public static var USE_ENUM_INDEX = false;
42
static var BASE64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789%:";
42
44
var buf : StringBuf;
43
45
var cache : Array<Dynamic>;
44
46
var shash : Hash<Int>;
47
var useEnumIndex : Bool;
48
public var useCache : Bool;
49
public var useEnumIndex : Bool;
49
51
public function new() {
50
52
buf = new StringBuf();
131
133
// only the instance variables
133
135
function serializeClassFields(v,c) {
134
var xml : Dynamic = untyped __global__["flash.utils.describeType"](c).factory;
135
var vars = xml.child("variable");
136
var xml : flash.xml.XML = untyped __global__["flash.utils.describeType"](c);
137
var vars = xml.factory[0].child("variable");
136
138
for( i in 0...vars.length() ) {
137
var f = untyped vars[i].attribute("name").toString();
139
var f = vars[i].attribute("name").toString();
138
140
if( !v.hasOwnProperty(f) )
140
142
serializeString(f);
238
243
serialize(v.get(k));
242
case cast flash.utils.ByteArray:
245
var b : flash.utils.ByteArray = v;
246
var CHARS = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"];
247
for( p in 0...b.length ) {
250
if( (c >= 48 && c <= 57) || (c >= 65 && c <= 90) || (c >= 97 && c <= 122) )
251
s += String.fromCharCode(c);
253
s += "%"+CHARS[c>>4]+CHARS[c&15];
246
case cast haxe.io.Bytes:
247
var v : haxe.io.Bytes = v;
249
var chars = new String(base_encode(v.getData(),untyped BASE64.__s));
252
var max = v.length - 2;
259
chars += b64.charAt(b1 >> 2)
260
+ b64.charAt(((b1 << 4) | (b2 >> 4)) & 63)
261
+ b64.charAt(((b2 << 2) | (b3 >> 6)) & 63)
262
+ b64.charAt(b3 & 63);
267
chars += b64.charAt(b1 >> 2)
268
+ b64.charAt(((b1 << 4) | (b2 >> 4)) & 63)
269
+ b64.charAt((b2 << 2) & 63);
270
} else if( i == max + 1 ) {
272
chars += b64.charAt(b1 >> 2) + b64.charAt((b1 << 4) & 63);
276
buf.add(chars.length);
293
313
for( i in 0...l )
294
314
serialize(v.args[i]);
301
serializeString(v.tag);
303
if( v.params == null )
306
var l : Int = v.params.length;
321
serializeString(v.tag);
323
var pl : Array<Dynamic> = v.params;
336
serializeString(v.tag);
338
var l : Int = untyped __call__("count", v.params);
339
if( l == 0 || v.params == null)
308
343
for( i in 0...l )
309
serialize(v.params[i]);
344
serialize(untyped __field__(v, __php__("params"), i));
312
347
if( useEnumIndex ) {