docs: function(attr) {
                      var value;
                      // Handles the case of a key having a `.` in its name
                      if (typeof attr === 'string' && !! ~attr.indexOf('.')) {
                          // Attempt to get the value
                          value = this.__get(attr);
                          // For keys with a `.` in them, value will be defined
                          if (value !== undefined) {
                              return value;
                          }
                      }
  
                      // Otherwise we have to dig deeper into the Map to get the value.
                      // First, break up the attr (`"foo.bar"`) into parts like `["foo","bar"]`.
                      var parts = can.Map.helpers.attrParts(attr),
                          // Then get the value of the first attr name (`"foo"`).
                          current = this.__get(parts.shift());
                      // If there are other attributes to read...
                      return parts.length ?
                      // and current has a value...
                      current ?
                      // then lookup the remaining attrs on current
                      current._get(parts) :
                      // or if there's no current, return undefined.
                      undefined :
                      // If there are no more parts, return current.
                      current;
                  }