public EarleStackFrameExecutor(EarleFunction function, EarleStackFrame parentFrame, int callerIp,
     EarleValue target,
     IEarleRuntimeScope superScope, EarleDictionary locals)
     : base(target)
 {
     Frame = parentFrame.SpawnChild(function, this, callerIp);
     Scopes.Push(new EarleRuntimeScope(superScope, locals));
 }
 public EarleRuntimeScope(IEarleRuntimeScope superScope, EarleDictionary locals)
 {
     _superScope = superScope;
     _locals = locals ?? new EarleDictionary();
 }
 public EarleRuntimeScope(IEarleRuntimeScope superScope)
     : this(superScope, null)
 {
 }