DataDescriptor.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. namespace Jint.Runtime.Descriptors
  2. {
  3. public class DataDescriptor : PropertyDescriptor
  4. {
  5. public DataDescriptor(object value) : this(value, true, null, null)
  6. {
  7. }
  8. public DataDescriptor(DataDescriptor d) : this(d.Value, d.Writable, d.Enumerable, d.Configurable)
  9. {
  10. }
  11. public DataDescriptor(object value, bool? writable, bool? enumerable, bool? configurable)
  12. {
  13. Value = value;
  14. Writable = writable;
  15. Enumerable = enumerable;
  16. Configurable = configurable;
  17. }
  18. public object Value { get; set; }
  19. /// <summary>
  20. /// If false, attempts by ECMAScript code to change the
  21. /// property‘s [[Value]] attribute using [[Put]] will not succeed.
  22. /// </summary>
  23. public bool? Writable { get; set; }
  24. public bool WritableIsSet
  25. {
  26. get { return Writable.HasValue && Writable.Value; }
  27. }
  28. public override bool IsAccessorDescriptor()
  29. {
  30. return false;
  31. }
  32. public override bool IsDataDescriptor()
  33. {
  34. return true;
  35. }
  36. }
  37. }