public IJsValue Delete(IEnvironment environment) { var obj = Instance.Evaluate(environment); return environment.CreateBool(obj .Cast<IJsObject>("Cannot convert {0} to object", obj) .DeleteProperty(Member.Evaluate(environment).ToString())); }
public static IJsValue RelationalEval(IEnvironment environment, IJsValue lhs, IJsValue rhs, Func<double, double, bool> relationalOperator, Func<string, string, bool> stringRelationalOperator) { if ((lhs.ToPrimitive() is string) || (rhs.ToPrimitive() is string)) { return environment.CreateBool(stringRelationalOperator(lhs.ToString(), rhs.ToString())); } var ln = lhs.ToNumber(); if (double.IsNaN(ln)) { return JsUndefined.Value; } var rn = rhs.ToNumber(); if (double.IsNaN(rn)) { return JsUndefined.Value; } return environment.CreateBool(relationalOperator(ln, rn)); }
public IJsValue Evaluate(IEnvironment environment) { return environment.CreateBool(Value); }
public IJsValue Delete(IEnvironment environment) { //throw new JsReferenceError(); // We end up here when deleting a scope variable, which isnt supported return environment.CreateBool(false); }