コード例 #1
0
ファイル: ObjectLiteral.cs プロジェクト: jlarsson/Yes
 public IJsValue Evaluate(IEnvironment environment)
 {
     var obj = environment.CreateObject();
     foreach (var member in Members)
     {
         obj.GetReference(
             member.Item1.ReferenceCast<IAstWithName>().Name).SetValue(obj, member.Item2.Evaluate(environment));
     }
     return obj;
 }
コード例 #2
0
ファイル: CObject.cs プロジェクト: ChaosPandion/Machete
 internal static IDynamic Create(IEnvironment environment, IArgs args)
 {
     if (args[0].TypeCode != LanguageTypeCode.Object)
     {
         throw environment.CreateTypeError("");
     }
     var obj = args[0].ConvertToObject();
     var newObj = environment.CreateObject();
     newObj.Prototype = obj;
     if (args.Count > 1)
     {
         var props = args[1];
         if (props.TypeCode != LanguageTypeCode.Undefined)
         {
             return DefineProperties(environment, environment.CreateArgs(new [] { newObj, props }));
         }
     }
     return newObj;
 }
コード例 #3
0
        internal static IDynamic Create(IEnvironment environment, IArgs args)
        {
            if (args[0].TypeCode != LanguageTypeCode.Object)
            {
                throw environment.CreateTypeError("");
            }
            var obj    = args[0].ConvertToObject();
            var newObj = environment.CreateObject();

            newObj.Prototype = obj;
            if (args.Count > 1)
            {
                var props = args[1];
                if (props.TypeCode != LanguageTypeCode.Undefined)
                {
                    return(DefineProperties(environment, environment.CreateArgs(new [] { newObj, props })));
                }
            }
            return(newObj);
        }