public override void Visit(ObjectLiteral node) { VisitNodes(node.Properties); Visit((Literal)node); }
public override void Visit(ObjectLiteral node) { PushLocation(node); _ilGen.Newobj(Types.DObject.CONSTRUCTOR); VisitNodes(node.Properties); _result.ValueType = mdr.ValueTypes.Object; PopLocation(); }
internal static mdr.ValueTypes GetType(ObjectLiteral expression) { return mdr.ValueTypes.Object; }
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(); }
public override void Visit(ObjectLiteral node) { Visit((Literal)node); }
public abstract void Visit(ObjectLiteral node);
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(); }
public override void Visit(ObjectLiteral node) { throw new NotImplementedException(); }
public override void Visit(ObjectLiteral node) { AssignToImplicitReturn(node); }