Example #1
0
 public override void Visit(ObjectLiteral node)
 {
   VisitNodes(node.Properties);
   Visit((Literal)node);
 }
Example #2
0
 public override void Visit(ObjectLiteral node)
 {
   PushLocation(node);
   _ilGen.Newobj(Types.DObject.CONSTRUCTOR);
   VisitNodes(node.Properties);
   _result.ValueType = mdr.ValueTypes.Object;
   PopLocation();
 }
Example #3
0
 internal static mdr.ValueTypes GetType(ObjectLiteral expression) { return mdr.ValueTypes.Object; }
Example #4
0
 public override void Visit(ObjectLiteral node) { base.Visit(node); node.ValueType = GetType(node); }
      public override void Visit(ObjectLiteral node)
      {
        PushLocation(node);

        var icMethod = BeginICMethod(node, updateIlGen: false);
        foreach (var v in node.Properties)
        {
          v.AssignFieldId();
          icMethod.Ldc_I4(v.FieldId);
          icMethod.StoreValue(_stackModel.StackPointer, mdr.ValueTypes.Int32);
          _stackModel.Push(1);

          VisitNode(v.Expression);
        }

        var itemsCount = node.Properties.Count;
        _stackModel.Pop(itemsCount * 2);
        icMethod.Ldarg_CallFrame();
        icMethod.Ldc_I4(_stackModel.StackPointer);
        icMethod.Ldc_I4(itemsCount);
        icMethod.Call(Types.Operations.ICMethods.CreateObject);
        EndICMethod(icMethod);

        _result.ValueType = mdr.ValueTypes.DValueRef;
        _stackModel.Push(1);

        PopLocation();
      }
Example #6
0
 public override void Visit(ObjectLiteral node) { Visit((Literal)node); }
Example #7
0
 public override void Visit(ObjectLiteral node)
 {
     Visit((Literal)node);
 }
Example #8
0
 public abstract void Visit(ObjectLiteral node);
Example #9
0
 public override void Visit(ObjectLiteral node)
 {
   PushLocation(node);
   foreach (var v in node.Properties)
   {
     //TODO: instead we can load the fieldId(v.key). 
     _ilGen.Ldstr(v.Name);
     Call(Types.Operations.Stack.LoadString, 0, 1);
     VisitNode(v.Expression);
   }
   var itemsCount = node.Properties.Count;
   _ilGen.Ldc_I4(itemsCount);
   Call(Types.Operations.Stack.CreateJson, 2 * itemsCount, 1);
   PopLocation();
 }
Example #10
0
 public override void Visit(ObjectLiteral node)
 {
   throw new NotImplementedException();
 }
Example #11
0
 public override void Visit(ObjectLiteral node) { AssignToImplicitReturn(node); }