I’m reading “Type(lref) is Reference is true” in the first bullet of Point 4 of Section 11.13.1, which seems like a copy/pasting typo.
I think it should be “Type(lref) is not Reference”: if I’m not mistaken, the current specification forbids implementations on accepting variables changes by raising a “Syntax Error” each time a variable tries to be modified ☺
Hoping it can help,
OK, sorry, I just read it two fast, it’s probably correct.
I think however that this should have been said “Type(lref) is Reference” (without the “is true”): putting two verbs “be” in this sentence seems quite odd and confusing. This kind sentence with two “be” in the same sentence appears in the next section and in the “++”, “--”, etc. operators (at least).
The other alternative would be to use it each time, thus saying “Type(GetBase(lref)) is Environment Record is true” in the line just below, but this is combersome.
No longer applies to ES2015.