예제 #1
0
        public virtual bool TryUnresolvableReference(Engine engine, Reference reference, out JsValue value)
        {
            var name = reference.GetReferencedName();

            if (_args == null || name == null || name.StartsWith('$') == false)
            {
                value = name == "length" ? 0 : Null.Instance;
                return(true);
            }

            value = _args.Get(name.Substring(1));
            return(true);
        }
        public override bool TryUnresolvableReference(Engine engine, Reference reference, out JsValue value)
        {
            if (engine.ExecutionContext.ThisBinding == _selfInstance)
            {
                var name = reference.GetReferencedName();
                if (name == null || name.StartsWith('$') == false)
                {
                    return(base.TryUnresolvableReference(engine, reference, out value));
                }

                name  = name.Substring(1);
                value = _args.Get(name);
                return(true);
            }
            return(base.TryUnresolvableReference(engine, reference, out value));
        }