public void DecompileGetGlobalVariable() { Block block = new Block(); block.CompileGet("foo"); BlockDecompiler decompiler = new BlockDecompiler(block); var result = decompiler.Decompile(); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count); Assert.AreEqual("GetGlobalVariable foo", result[0]); }
public void CompileAndRun() { Machine machine = new Machine(); Block block; block = new Block(); block.CompileArgument("newX"); block.CompileGet("newX"); block.CompileSet("GlobalX"); block.Execute(machine, new object[] { 10 }); Assert.AreEqual(10, machine.GetGlobalObject("GlobalX")); }
public void CompileWithLocals() { Machine machine = new Machine(); IClass cls = machine.CreateClass("TestClass"); cls.DefineInstanceVariable("x"); Block block; block = new Block(); block.CompileArgument("newX"); block.CompileLocal("l"); block.CompileGet("newX"); block.CompileSet("l"); Assert.AreEqual(1, block.NoLocals); Assert.IsNotNull(block.ByteCodes); Assert.IsTrue(block.ByteCodes.Length > 0); }
public void CompileGetGlobalVariable() { Block block = new Block(); block.CompileGet("Class"); block.CompileGet("Object"); byte p1 = block.CompileGlobal("Object"); byte p2 = block.CompileGlobal("Class"); Assert.AreEqual(1, p1); Assert.AreEqual(0, p2); }
public void DecompileGetNativeType() { Block block = new Block(); block.CompileGet("@System.IO.File"); BlockDecompiler decompiler = new BlockDecompiler(block); var result = decompiler.Decompile(); Assert.IsNotNull(result); Assert.AreEqual(1, result.Count); Assert.AreEqual("GetDotNetType System.IO.File", result[0]); }