According to the specification section 4.5.1:
When used as a value within a map literal, SELF MUST denote a pointer (alias) to the enclosing MAP being constructed.
In the implementation, however, SELF is bound to the temporary map object created during literal construction. Because the runtime copies containers when writing them into the environment, the SELF entry ends up pointing to a stale temporary rather than the live map binding, and mutations to the map are not observed through SELF.
According to the specification section 4.5.1:
In the implementation, however,
SELFis bound to the temporary map object created during literal construction. Because the runtime copies containers when writing them into the environment, theSELFentry ends up pointing to a stale temporary rather than the live map binding, and mutations to the map are not observed throughSELF.