code: public JSType getPropertyType(String propertyName) {
      StaticTypedSlot slot = getSlot(propertyName);
      if (slot == null) {
        if (isNoResolvedType() || isCheckedUnknownType()) {
          return getNativeType(JSTypeNative.CHECKED_UNKNOWN_TYPE);
        } else if (isEmptyType()) {
          return getNativeType(JSTypeNative.NO_TYPE);
        }
        return getNativeType(JSTypeNative.UNKNOWN_TYPE);
      }
      return slot.getType();
    }
docs: Gets the property type of the property whose name is given. If the
  underlying object does not have this property, the Unknown type is
  returned to indicate that no information is available on this property.
  
  This gets overridden by FunctionType for lazily-resolved call() and
  bind() functions.
  
  @return the property's type or {@link UnknownType}. This method never
  returns {@code null}.