void WriteDefine(Iterator it) { if (it.IsProto) { if (proto == null) { proto = it; } var format = js.Put(js.proto); js.Put(it.Object.identity.name); var comma = ""; foreach (var param in it.Object.paramList) { js.Write(comma); js.Write(param.identity.name); comma = js.comma; } js.Put(); if (it.IsComplex) { js.Enter(); js.Put(js.protoClazz); WriteBody(it); WriteLayout(it); js.Leave(); } if (proto == it) { proto = null; } js.End(format); } else if (it.IsComplex) { var format = js.Put(js.clazz); js.Put(it.Object.identity.name); WriteBody(it); WriteLayout(it); js.End(format); } else if (proto != null) { var format = js.Put(js.keyClone); js.Put(it.Object.identity.name); js.Put(it.Variable, format); } else { var format = js.Put(js.keyValue); js.Put(it.Object.identity.name); js.Put(it.Value, format); } }