+classinfo_t* registry_getobjectclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "Object");
+ return c;
+}
+classinfo_t* registry_getstringclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "String");
+ return c;
+}
+classinfo_t* registry_getarrayclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "Array");
+ return c;
+}
+classinfo_t* registry_getintclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "int");
+ return c;
+}
+classinfo_t* registry_getuintclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "uint");
+ return c;
+}
+classinfo_t* registry_getbooleanclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "Boolean");
+ return c;
+}
+classinfo_t* registry_getnumberclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "Number");
+ return c;
+}
+classinfo_t* registry_getregexpclass() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("", "RegExp");
+ return c;
+}
+classinfo_t* registry_getMovieClip() {
+ static classinfo_t*c = 0;
+ if(!c) c = registry_safefindclass("flash.display", "MovieClip");
+ return c;
+}
+
+// ----------------------- builtin dummy types -------------------------
+classinfo_t nullclass = {
+ ACCESS_PACKAGE, 0, "", "null", 0, 0, 0,
+};
+classinfo_t* registry_getnullclass() {
+ return &nullclass;
+}
+
+// ---------------------------------------------------------------------
+namespace_t flags2namespace(int flags, char*package)
+{
+ namespace_t ns;
+ ns.name = package;
+ if(flags&FLAG_PUBLIC) {
+ ns.access = ACCESS_PACKAGE;
+ } else if(flags&FLAG_PRIVATE) {
+ ns.access = ACCESS_PRIVATE;
+ } else if(flags&FLAG_PROTECTED) {
+ ns.access = ACCESS_PROTECTED;
+ } else if(flags&FLAG_NAMESPACE_ADOBE) {
+ ns.access = ACCESS_NAMESPACE;
+ assert(!package || !package[0]);
+ ns.name = "http://adobe.com/AS3/2006/builtin";
+ } else {
+ ns.access = ACCESS_PACKAGEINTERNAL;
+ }
+ return ns;
+}