public override DynamicMetaObject BindSetMember(SetMemberBinder binder, DynamicMetaObject value) { Expression expr = Expression.Assign(Expression.Property(Expression.Convert(Expression, typeof(EcmaValue)), "Item", Expression.Constant(new EcmaPropertyKey(binder.Name))), EcmaValueUtility.ConvertToEcmaValueExpression(value.Expression)); return(ReturnDynamicMetaObject(binder, expr)); }
private Expression GetConvertToEcmaValueExpression(DynamicMetaObject arg) { return(arg.HasValue ? Expression.Constant(new EcmaValue(arg.Value)) : EcmaValueUtility.ConvertToEcmaValueExpression(arg.Expression)); }