Esempio n. 1
0
        internal override Type Get(ILGenerator generator)
        {
            if (Property == null && Field == null)
            {
                Resolve(null);
            }

            if (Property != null)
            {
                // Call the get method:
                generator.Call(Property.GetMethod);
                return(_Type);
            }

            if (Field != null)
            {
                // Load the field:
                generator.LoadField(Field);
            }
            else if (IsConstant)
            {
                // Emit the default constant value:
                EmitHelpers.EmitValue(generator, ConstantValue);
            }
            else
            {
                // Emit undefined:
                EmitHelpers.EmitUndefined(generator);
            }

            return(_Type);
        }