 	  identifier + "." + prop;
       }
     }
+
+    if (newer == true)
+      ASSetPropFlags (o, prop, 5248);
   }
 
   for (var i = 0; i < all.length; i++) {
     var prop = all[i];
 
     if (prop != null) {
+      var newer = false;
+
+      if (typeof (o[prop]) == "undefined") {
+	ASSetPropFlags (o, prop, 0, 5248);
+	if (typeof (o[prop]) != "undefined")
+	  newer = true;
+      }
+
       if (typeof (o[prop]) == "object" || typeof (o[prop]) == "function")
 	generate_names (o[prop], prefix + (prefix != "" ? "." : "") +
 	    identifier, prop);
+
+      if (newer == true)
+	ASSetPropFlags (o, prop, 5248);
     }
   }
 }

  ASSetPropFlags (o, nothidden, 0, 1);

  for (var i = 0; i < all.length; i++) {
    var prop = all[i];

    if (typeof (o[prop]) == "object" || typeof (o[prop]) == "function") {
      if (hasOwnProperty (o[prop], "mySecretId")) {

  {
    var prop = all[i];

    if (typeof (o[prop]) == "undefined") {
      ASSetPropFlags (o, prop, 0, 5248);
      if (typeof (o[prop]) != "undefined") {
	set_info (info, prop, "newer", true);
	// don't set the flags back
      } else {
	set_info (info, prop, "newer", false);
      }
    } else {
      set_info (info, prop, "newer", false);
    }
  }

  for (var i = 0; i < all.length; i++)
  {
    var prop = all[i];

    // try changing value
    var old = o[prop];
    var val = "hello " + o[prop];
