Beispiel #1
0
 public JSError(VirtualMachine vm, string message, JSObject inherited)
     : base(vm, inherited)
 {
     Contract.Requires(inherited != null);
     OwnMembers.Add("name", "Error");
     OwnMembers.Add("message", message);
 }
 public JSInternalError(VirtualMachine vm, string message, string stackTrace, JSObject inherited)
     : base(vm, message, inherited)
 {
     Contract.Requires(!string.IsNullOrEmpty(stackTrace));
     Contract.Requires(inherited == vm.InternalError);
     OwnMembers.Add("stackTrace", stackTrace);
 }
Beispiel #3
0
        public virtual JSObject GetPrototype()
        {
            JSValue result;

            if (!OwnMembers.TryGetValue(PrototypeMemberName, out result))
            {
                result = VM.NewObject();
                OwnMembers.Add(PrototypeMemberName, result);
            }
            return(result.RequireObject());
        }
        public override JSValue GetMember(JSValue member)
        {
            var name   = member.CastToString();
            var result = base.GetMember(name);

            if (result == null)
            {
                Func <VirtualMachine, JSObject, JSValue> factory;
                if (_lazyMemberFactories.TryGetValue(name, out factory))
                {
                    result = factory(VM, this);
                    OwnMembers.Add(name, result);
                }
            }
            return(result ?? Undefined);
        }