It can not be in the else case. Because in the KrollProxy.onPropertyChanged(), it calls properties.put(name, newValue). That's where the property value get updated.