public NativeDescriptor MarshalPropertyInfo( PropertyInfo prop, JsDictionaryObject owner) { JsSetter setter = (JsSetter)null; JsGetter getter = !prop.CanRead || prop.GetGetMethod() == null ? (JsGetter)(that => (JsInstance)JsUndefined.Instance) : this.WrapGetProperty(prop); if (prop.CanWrite && prop.GetSetMethod() != null) { setter = this.WrapSetProperty(prop); } NativeDescriptor nativeDescriptor1; if (setter != null) { NativeDescriptor nativeDescriptor2 = new NativeDescriptor(owner, prop.Name, getter, setter); nativeDescriptor2.Enumerable = true; nativeDescriptor1 = nativeDescriptor2; } else { nativeDescriptor1 = new NativeDescriptor(owner, prop.Name, getter); nativeDescriptor1.Enumerable = true; } return(nativeDescriptor1); }
/// <summary> /// Marshals a native property to a descriptor /// </summary> /// <param name="prop">Property to marshal</param> /// <param name="owner">Owner of the returned descriptor</param> /// <returns>A descriptor</returns> public NativeDescriptor MarshalPropertyInfo(PropertyInfo prop, JsDictionaryObject owner) { JsGetter getter; JsSetter setter = null; if (prop.CanRead) { getter = WrapGetProperty(prop); } else { getter = delegate(JsDictionaryObject that) { return(JsUndefined.Instance); }; } if (prop.CanWrite) { setter = (JsSetter)WrapSetProperty(prop); } return(setter == null ? new NativeDescriptor(owner, prop.Name, getter) { Enumerable = true } : new NativeDescriptor(owner, prop.Name, getter, setter) { Enumerable = true }); }
public NativeDescriptor(JsDictionaryObject owner, NativeDescriptor src) : base(owner, src.Name) { this.getter = src.getter; this.setter = src.setter; this.Writable = src.Writable; this.Configurable = src.Configurable; this.Enumerable = src.Enumerable; }
public NativeDescriptor( JsDictionaryObject owner, string name, JsGetter getter, JsSetter setter) : base(owner, name) { this.getter = getter; this.setter = setter; }
public NativeDescriptor(JsDictionaryObject owner, string name, JsGetter getter, JsSetter setter) : base(owner, name) { this.getter = getter; this.setter = setter; }