ProxyPrototype.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using Jint.Collections;
  2. using Jint.Native.Object;
  3. using Jint.Runtime.Descriptors;
  4. namespace Jint.Native.Proxy
  5. {
  6. /// <summary>
  7. /// https://www.ecma-international.org/ecma-262/6.0/index.html#sec-proxy-object-internal-methods-and-internal-slots
  8. /// </summary>
  9. public sealed class ProxyPrototype : ObjectInstance
  10. {
  11. private ProxyConstructor _proxyConstructor;
  12. private ProxyPrototype(Engine engine) : base(engine)
  13. {
  14. }
  15. public static ProxyPrototype CreatePrototypeObject(Engine engine, ProxyConstructor proxyConstructor)
  16. {
  17. var obj = new ProxyPrototype(engine)
  18. {
  19. _prototype = engine.Object.PrototypeObject,
  20. _proxyConstructor = proxyConstructor
  21. };
  22. return obj;
  23. }
  24. protected override void Initialize()
  25. {
  26. _properties = new StringDictionarySlim<PropertyDescriptor>(3)
  27. {
  28. ["constructor"] = new PropertyDescriptor(_proxyConstructor, PropertyFlag.NonEnumerable)
  29. };
  30. }
  31. }
  32. }