コード例 #1
0
        internal static IDynamic GetOwnPropertyNames(IEnvironment environment, IArgs args)
        {
            if (args[0].TypeCode != LanguageTypeCode.Object)
            {
                throw environment.CreateTypeError("");
            }
            var obj   = args[0].ConvertToObject();
            var array = environment.CreateArray();
            var index = 0;

            foreach (var name in obj)
            {
                var value = environment.CreateString(name);
                var desc  = environment.CreateDataDescriptor(value, true, true, true);
                array.DefineOwnProperty((index++).ToString(), desc, false);
            }

            return(array);
        }
コード例 #2
0
ファイル: CObject.cs プロジェクト: ChaosPandion/Machete
        internal static IDynamic Keys(IEnvironment environment, IArgs args)
        {
            if (args[0].TypeCode != LanguageTypeCode.Object)
            {
                throw environment.CreateTypeError("");
            }
            var obj = args[0].ConvertToObject();
            var array = environment.CreateArray();
            var index = 0;

            foreach (var name in obj)
            {
                var desc = obj.GetOwnProperty(name);
                if (desc.Enumerable ?? false)
                {
                    desc = environment.CreateDataDescriptor(environment.CreateString(name), true, true, true);
                    array.DefineOwnProperty((index++).ToString(), desc, false);
                }
            }

            return array;
        }
コード例 #3
0
ファイル: Array.cs プロジェクト: jlarsson/Yes
 public IJsValue Evaluate(IEnvironment environment)
 {
     return environment.CreateArray(Members.Select(m => m.Evaluate(environment)));
 }