docs: function forPropsCallback(subValue, subKey) {
        // exit early to avoid cloning the marker
        if (subValue && subValue.constructor == Marker) {
          return;
        }
        // add objects to the queue
        if (subValue === Object(subValue)) {
          queue[queue.length++] = { 'key': subKey, 'parent': clone, 'source': value };
        }
        // assign non-objects
        else {
          try {
            // will throw an error in strict mode if the property is read-only
            clone[subKey] = subValue;
          } catch(e) { }
        }
      }