# HG changeset patch # User cin # Date 1382520297 -14400 # Node ID e113095f1de035687590e63001b25a6ce410271c initial commit, proof of concept diff -r 000000000000 -r e113095f1de0 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,5 @@ +syntax: glob +Jint.Experimental/bin/ +Jint.Experimental/obj/ +Jint.Runtime/bin/ +Jint.Runtime/obj/ diff -r 000000000000 -r e113095f1de0 Jint.Experimental/Jint.Experimental.csproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Experimental/Jint.Experimental.csproj Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,47 @@ + + + + Debug + x86 + 10.0.0 + 2.0 + {8AC3346E-5A4E-4B8C-A225-E4C47F912730} + Exe + Jint.Experimental + Jint.Experimental + + + true + full + false + bin\Debug + DEBUG; + prompt + 4 + true + x86 + + + full + true + bin\Release + prompt + 4 + true + x86 + + + + + + + + + + + + {F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642} + Jint.Runtime + + + \ No newline at end of file diff -r 000000000000 -r e113095f1de0 Jint.Experimental/Program.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Experimental/Program.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,18 @@ +using System; +using Jint.Runtime.VM; + +namespace Jint.Experimental +{ + class MainClass + { + public static void Main (string[] args) + { + var ticks = Environment.TickCount; + + + + Console.WriteLine ("register access: {0} ms", Environment.TickCount - ticks); + + } + } +} diff -r 000000000000 -r e113095f1de0 Jint.Experimental/Properties/AssemblyInfo.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Experimental/Properties/AssemblyInfo.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,27 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("Jint.Experimental")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("sergey")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/AssemblyInfo.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/AssemblyInfo.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,27 @@ +using System.Reflection; +using System.Runtime.CompilerServices; + +// Information about this assembly is defined by the following attributes. +// Change them to the values specific to your project. + +[assembly: AssemblyTitle("Jint.Runtime")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("")] +[assembly: AssemblyCopyright("sergey")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". +// The form "{Major}.{Minor}.*" will automatically update the build and revision, +// and "{Major}.{Minor}.{Build}.*" will update just the revision. + +[assembly: AssemblyVersion("1.0.*")] + +// The following attributes are used to specify the signing key for the assembly, +// if desired. See the Mono documentation for more information about signing. + +//[assembly: AssemblyDelaySign(false)] +//[assembly: AssemblyKeyFile("")] + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/ClassDescriptor.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/ClassDescriptor.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,33 @@ +using System; +using System.Collections.Generic; + + +namespace Jint.Runtime +{ + public class ClassDescriptor + { + int m_classId; + + Dictionary m_props = new Dictionary(); + + + public int ClassId { + get { return m_classId; } + } + + public ClassDescriptor (int classId) + { + m_classId = classId; + } + + public bool TryGet (string name, out PropertyDescriptor descriptor) + { + return m_props.TryGetValue (name, out descriptor); + } + + public void DefineProperty(string name, PropertyDescriptor descriptor) { + + } + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/ClassTransition.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/ClassTransition.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,13 @@ +using System; +namespace Jint.Runtime +{ + public struct ClassTransition + { + public int classId; + + public TransitionAction action; + + public string propertyName; + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/Jint.Runtime.csproj --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/Jint.Runtime.csproj Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,65 @@ + + + + Debug + x86 + 10.0.0 + 2.0 + {F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642} + Exe + Jint.Runtime + Jint.Runtime + + + True + full + False + bin\Debug + DEBUG; + prompt + 4 + x86 + True + + + none + True + bin\Release + prompt + 4 + x86 + True + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 000000000000 -r e113095f1de0 Jint.Runtime/JsObject.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/JsObject.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; + + +namespace Jint.Runtime +{ + public class JsObject + { + ClassDescriptor m_classDescriptor; + List m_data; + + public JsObject () + { + } + + public object Get (string name) + { + PropertyDescriptor descriptor; + if (m_classDescriptor.TryGet (name, out descriptor)) + return m_data.Count <= descriptor.index ? null : m_data [descriptor.index]; + else + return null; + } + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/Main.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/Main.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,50 @@ +using System; +using Jint.Runtime.VM.OpCodes; + +namespace Jint.Runtime +{ + using VM; + using System.IO; + class MainClass + { + public static void Main(string[] args) + { + var runtime = new RuntimeContext (); + + var frame = new Frame (3,runtime); + + frame.Set (0, 0); + frame.Set (1, 1); + + var op = new Add (0,1,0); + + var t = Environment.TickCount; + + for(int i=0; i < 10000000; i++) + op.Invoke (frame); + + var res = frame.Get (0); + + Console.WriteLine ("got: {0}, int {1} ms", res, Environment.TickCount - t ); + + t = Environment.TickCount; + + object count = 0, inc = 1; + for (int i=0; i< 10000000; i++) + count = OpAdd(count,inc); + + Console.WriteLine ("reference results: {0}, int {1} ms", count, Environment.TickCount - t ); + } + + public static object OpAdd(object arg1, object arg2) { + if (arg1.GetType () == arg2.GetType ()) { + return OpAddIntegers(arg1,arg2); + } + throw new Exception (); + } + + public static object OpAddIntegers(object arg1, object arg2) { + return (int)arg1 + (int)arg2; + } + } +} diff -r 000000000000 -r e113095f1de0 Jint.Runtime/PropertyDescriptor.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/PropertyDescriptor.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,11 @@ +using System; +namespace Jint.Runtime +{ + public struct PropertyDescriptor + { + public PropertyFlags flags; + + public int index; + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/PropertyFlags.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/PropertyFlags.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,14 @@ +using System; +namespace Jint.Runtime +{ + [Flags] + public enum PropertyFlags + { + Read = 0x1, + + Write = 0x2, + + Enumerable = 0x4 + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/TransitionAction.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/TransitionAction.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,11 @@ +using System; +namespace Jint.Runtime +{ + public enum TransitionAction + { + DefineProperty, + + DeleteProperty + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/Box.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/Box.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,56 @@ +using System; + +namespace Jint.Runtime.VM +{ + public class Box: BoxBase, IGetter, ISetter + { + T m_value; + IBinder m_binder; + + public Box(T value,IBinder binder) { + m_value = value; + m_binder = binder; + } + + public override bool IsReference { + get { + return true; + } + } + + public override Type HoldingType + { + get { return typeof(T); } + } + + #region IGetter implementation + + public T Get () + { + return m_value; + } + + #endregion + + #region ISetter implementation + + public void Set (T value) + { + m_value = value; + } + + #endregion + + public override T2 Convert () + { + if (m_binder == null) + throw new ArgumentNullException (); + return m_binder.Convert (m_value); + } + + public override void Invoke(IBinaryOperation op, BoxBase arg2,Frame frame) { + op.Invoke (m_value, ((IGetter)arg2).Get (), m_binder, frame); + } + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/BoxBase.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/BoxBase.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,15 @@ +using System; + +namespace Jint.Runtime.VM +{ + public abstract class BoxBase + { + public abstract bool IsReference { get; } + public abstract Type HoldingType { get; } + public abstract T Convert (); + + public abstract void Invoke(IBinaryOperation op,BoxBase arg2, Frame frame); + + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/DummyConverter.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/DummyConverter.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,19 @@ +using System; + +namespace Jint.Runtime +{ + public class DummyConverter: IConverter + { + #region IConverter implementation + + public TDst Convert (TSrc src) + { + return (TDst)(object)src; + } + + #endregion + + + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/Frame.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/Frame.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,59 @@ +using System; + +namespace Jint.Runtime.VM +{ + public class Frame + { + BoxBase[] m_data; + RuntimeContext m_runtimeContext; + + public Frame (int size, RuntimeContext runtime) + { + if (size < 0) + throw new ArgumentOutOfRangeException ("size"); + if (runtime == null) + throw new ArgumentNullException ("runtime"); + + m_data = new BoxBase[size]; + m_runtimeContext = runtime; + } + + public RuntimeContext Runtime { + get { return m_runtimeContext; } + } + + public T Get (int index) + { + var bbox = m_data [index]; + + if (bbox == null) + return default(T); + + var box = bbox as IGetter; + if (box != null) + return box.Get(); + else + return bbox.Convert(); + } + + public void Set (int index, T value) + { + var bbox = m_data [index]; + var box = bbox as ISetter; + if (box != null) + box.Set (value); + else + m_data [index] = m_runtimeContext.BoxValue(value); + } + + public BoxBase GetBox(int index) { + return m_data[index]; + } + + public void SetBox(int index, BoxBase box) { + m_data [index] = box; + } + + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/IBinder.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/IBinder.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,17 @@ +using System; + +namespace Jint.Runtime.VM +{ + public interface IBinder + { + bool Equals (T arg1, T arg2); + int Compare (T arg1, T arg2); + T2 Convert (T arg); + + T OpAdd (T arg1, T arg2); + T OpSub (T arg1, T arg2); + T OpMul (T arg1, T arg2); + + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/IConverter.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/IConverter.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,10 @@ +using System; + +namespace Jint.Runtime +{ + public interface IConverter + { + TDst Convert (TSrc src); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/IGetter.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/IGetter.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,10 @@ +using System; + +namespace Jint.Runtime.VM +{ + public interface IGetter + { + T Get(); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/IReference.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/IReference.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,9 @@ +using System; + +namespace Jint.Runtime +{ + public interface IReference + { + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/ISetter.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/ISetter.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,10 @@ +using System; + +namespace Jint.Runtime.VM +{ + public interface ISetter + { + void Set (T value); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/IValueHolder.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/IValueHolder.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,11 @@ +using System; + +namespace Jint.Runtime.VM +{ + public interface IValueHolder + { + T Get(); + void Set(T value); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/IntegerBinder.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/IntegerBinder.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,47 @@ +using System; + +namespace Jint.Runtime.VM +{ + public class IntegerBinder: IBinder + { + #region IBinder implementation + + + + #endregion + + #region IBinder implementation + + public bool Equals (int arg1, int arg2) + { + throw new NotImplementedException (); + } + + public int Compare (int arg1, int arg2) + { + throw new NotImplementedException (); + } + + public T2 Convert (int arg) + { + return (T2)Convert.ChangeType(arg,typeof(T2)) ; + } + public int OpAdd (int arg1, int arg2) + { + return arg1 + arg2; + } + + public int OpSub (int arg1, int arg2) + { + return arg1 - arg2; + } + + public int OpMul (int arg1, int arg2) + { + return arg1 * arg2; + } + + #endregion + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/OpCodes/Add.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/OpCodes/Add.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,18 @@ +using System; + +namespace Jint.Runtime.VM.OpCodes +{ + public class Add: BinaryOperation + { + public Add(int a1,int a2, int res) : base(a1,a2,res) { + } + + #region IBinaryOp implementation + public override void Invoke (T arg1, T arg2, IBinder binder, Frame frame) + { + frame.Set(m_res, binder.OpAdd(arg1,arg2)); + } + #endregion + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/OpCodes/BinaryOp.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/OpCodes/BinaryOp.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,19 @@ +using System; + +namespace Jint.Runtime.VM.OpCodes +{ + public abstract class BinaryOp: IOpCode + { + #region IOpCode implementation + + public void Invoke (Frame frame) + { + + } + + #endregion + + + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/OpCodes/BinaryOperation.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/OpCodes/BinaryOperation.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,44 @@ +using System; + +namespace Jint.Runtime.VM +{ + public abstract class BinaryOperation: IBinaryOperation + { + protected int m_arg1; + protected int m_arg2; + protected int m_res; + + protected BinaryOperation(int arg1, int arg2, int res) { + m_arg1 = arg1; + m_arg2 = arg2; + m_res = res; + } + + public virtual void Fallback(BoxBase arg1, BoxBase arg2, Frame frame) { + throw new InvalidOperationException ("Unable to perform a binary operation on the specified arguments"); + } + + #region IBinaryOperation implementation + + public abstract void Invoke (T arg1, T arg2, IBinder binder, Frame frame); + + #endregion + + #region IOperation implementation + + public void Invoke (Frame frame) + { + var box1 = frame.GetBox (m_arg1); + var box2 = frame.GetBox (m_arg2); + + if (box1 != null && box2 != null && box1.HoldingType == box2.HoldingType) { + box1.Invoke (this, box2, frame); + } else { + Fallback (box1, box2, frame); + } + } + + #endregion + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/OpCodes/IBinaryOperation.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/OpCodes/IBinaryOperation.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,10 @@ +using System; + +namespace Jint.Runtime.VM +{ + public interface IBinaryOperation: IOperation + { + void Invoke (T arg1, T arg2, IBinder binder, Frame frame); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/OpCodes/IOpCode.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/OpCodes/IOpCode.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,10 @@ +using System; + +namespace Jint.Runtime.VM.OpCodes +{ + public interface IOpCode + { + void Invoke (Frame frame); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/OpCodes/IOperation.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/OpCodes/IOperation.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,10 @@ +using System; + +namespace Jint.Runtime.VM +{ + public interface IOperation + { + void Invoke (Frame frame); + } +} + diff -r 000000000000 -r e113095f1de0 Jint.Runtime/VM/RuntimeContext.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.Runtime/VM/RuntimeContext.cs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace Jint.Runtime.VM +{ + public class RuntimeContext + { + Dictionary m_binders; + + public RuntimeContext () + { + m_binders = new Dictionary (); + m_binders.Add (typeof(int), new IntegerBinder ()); + } + + public Box BoxValue(T value) { + return new Box (value, GetBinder ()); + } + + public IBinder GetBinder() { + return (IBinder) m_binders [typeof(T)]; + } + } +} + diff -r 000000000000 -r e113095f1de0 Jint.sln --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.sln Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,35 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jint.Runtime", "Jint.Runtime\Jint.Runtime.csproj", "{F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Jint.Experimental", "Jint.Experimental\Jint.Experimental.csproj", "{8AC3346E-5A4E-4B8C-A225-E4C47F912730}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{96947B34-64F4-4A7A-B432-19D7B6B36D14}" + ProjectSection(SolutionItems) = preProject + Performance1.psess = Performance1.psess + Performance2.psess = Performance2.psess + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x86 = Debug|x86 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642}.Debug|x86.ActiveCfg = Debug|x86 + {F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642}.Debug|x86.Build.0 = Debug|x86 + {F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642}.Release|x86.ActiveCfg = Release|x86 + {F3FDE0D1-748F-4DFE-9C1C-D17D7FD4E642}.Release|x86.Build.0 = Release|x86 + {8AC3346E-5A4E-4B8C-A225-E4C47F912730}.Debug|x86.ActiveCfg = Debug|x86 + {8AC3346E-5A4E-4B8C-A225-E4C47F912730}.Debug|x86.Build.0 = Debug|x86 + {8AC3346E-5A4E-4B8C-A225-E4C47F912730}.Release|x86.ActiveCfg = Release|x86 + {8AC3346E-5A4E-4B8C-A225-E4C47F912730}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(MonoDevelopProperties) = preSolution + StartupItem = Jint.Runtime\Jint.Runtime.csproj + EndGlobalSection +EndGlobal diff -r 000000000000 -r e113095f1de0 Jint.suo Binary file Jint.suo has changed diff -r 000000000000 -r e113095f1de0 Jint.userprefs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Jint.userprefs Wed Oct 23 13:24:57 2013 +0400 @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file