mixed GetBindingValue(N:String, S:Boolean) throws TypeError
Return the value for Binding N. S denotes strict mode and throws an error if something fails. The binding N must already exist.
In these examples, a Binding is an object {value:mixed, mutable:Boolean, deletable:Boolean, initialized:Boolean}
function GetBindingValue(N, V, S){
var envRec = this;
if (!(N in envRec)) return; // "assert envRec does not already have a binding for N"
if (envRec[N].mutable || envRec[N].initialized) return envRec[N].value; // if not uninitialized immutable binding
else if (S) throw TypeError;
};