public override bool HasBinding(ScriptValue name) { var foundBinding = BindingObject.HasProperty(name); if (!foundBinding) { return(false); } if (!withEnvironment) { return(true); } var unscopables = BindingObject.Get(Symbol.Unscopables); if (unscopables.IsObject) { var blocked = Agent.ToBoolean(((ScriptObject)unscopables).Get(name)); if (blocked) { return(false); } } return(true); }
public override ScriptValue GetBindingValue(ScriptValue name, bool strict) { var value = BindingObject.HasProperty(name); if (!value) { if (strict) { throw BindingObject.Agent.CreateReferenceError(); } return(ScriptValue.Undefined); } return(BindingObject.Get(name, BindingObject)); }