public ProtoCore.Mirror.RuntimeMirror LookupName(string name, int blockID) { // TODO Jun: The expression interpreter must be integrated into the mirror core.Rmem.PushConstructBlockId(blockID); core.DebugProps.CurrentBlockId = blockID; ProtoScript.Runners.ExpressionInterpreterRunner watchRunner = new ExpressionInterpreterRunner(core); List <ProtoCore.Core.CodeBlockCompilationSnapshot> snapShots = null; if (core.Options.IsDeltaExecution) { snapShots = ProtoCore.Core.CodeBlockCompilationSnapshot.CaptureCoreCompileState(core); } ProtoCore.DSASM.Mirror.ExecutionMirror mirror = watchRunner.Execute(name); if (core.Options.IsDeltaExecution && snapShots != null) { core.ResetDeltaCompileFromSnapshot(snapShots); } ProtoCore.Lang.Obj objExecVal = mirror.GetWatchValue(); ProtoCore.Mirror.RuntimeMirror runtimeMirror = new ProtoCore.Mirror.RuntimeMirror(new ProtoCore.Mirror.MirrorData(core, objExecVal.DsasmValue), core, core); Validity.Assert(runtimeMirror != null); return(runtimeMirror); }