This is intended to prevent the script from modifying a property value.
You should note however that this does not mean that the property must always be ReadOnly. There may be times when the hosting environment changes the ReadOnly settings for a property.
Generally, the ReadOnly state would not change very often but the standard mandates that it does not mean constant and unchanging, only that while the ReadOnly state is true, the property should be locked out against any attempts to change its value.
Note that this is not the readOnly property that belongs to a Form Input element. That is intended to stop the user from altering the current state of an input item.