code: public final boolean defineDeclaredProperty(String propertyName,
        JSType type, Node propertyNode) {
      boolean result = defineProperty(propertyName, type, false, propertyNode);
      // All property definitions go through this method
      // or defineInferredProperty. Because the properties defined an an
      // object can affect subtyping, it's slightly more efficient
      // to register this after defining the property.
      registry.registerPropertyOnType(propertyName, this);
      return result;
    }
docs: Defines a property whose type is explicitly declared by the programmer.
  @param propertyName the property's name
  @param type the type
  @param propertyNode the node corresponding to the declaration of property
  which might later be accessed using {@code getPropertyNode}.