123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- using Jint.Native;
- using Jint.Native.Function;
- namespace Jint.Runtime.Descriptors
- {
- public sealed class GetSetPropertyDescriptor : PropertyDescriptor
- {
- private JsValue _get;
- private JsValue _set;
- public GetSetPropertyDescriptor(JsValue get, JsValue set, bool? enumerable = null, bool? configurable = null)
- : base(null, writable: null, enumerable: enumerable, configurable: configurable)
- {
- _get = get;
- _set = set;
- }
- internal GetSetPropertyDescriptor(JsValue get, JsValue set, PropertyFlag flags)
- : base(null, flags)
- {
- _get = get;
- _set = set;
- }
- public GetSetPropertyDescriptor(PropertyDescriptor descriptor) : base(descriptor)
- {
- _get = descriptor.Get;
- _set = descriptor.Set;
- }
- public override JsValue Get => _get;
- public override JsValue Set => _set;
- internal void SetGet(JsValue getter)
- {
- _get = getter;
- }
- internal void SetSet(JsValue setter)
- {
- _set = setter;
- }
- internal sealed class ThrowerPropertyDescriptor : PropertyDescriptor
- {
- private readonly Engine _engine;
- private readonly string _message;
- private JsValue _thrower;
- public ThrowerPropertyDescriptor(Engine engine, PropertyFlag flags, string message)
- : base(flags)
- {
- _engine = engine;
- _message = message;
- }
- public override JsValue Get => _thrower ??= new ThrowTypeError(_engine, _engine.Realm, _message) { _prototype = _engine.Realm.Intrinsics.Function.PrototypeObject};
- public override JsValue Set => _thrower ??= new ThrowTypeError(_engine, _engine.Realm, _message) { _prototype = _engine.Realm.Intrinsics.Function.PrototypeObject};
- protected internal override JsValue CustomValue
- {
- set => ExceptionHelper.ThrowInvalidOperationException("making changes to throw type error property's descriptor is not allowed");
- }
- }
- }
- }
|