# 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