public EnkelFunction Bind(EnkelInstance instance) { var env = new EnkelEnvironment(_closure); env.Define(new DummyToken(TokenType.This, "this", null, 0), instance); return(new EnkelFunction(_declaration, env, _isConstructor)); }
public object Call(IInterpreter interpreter, IList <object> args) { var instance = new EnkelInstance(this); if (Methods.TryGetValue("constructor", out var constructor)) { constructor.Bind(instance).Call(interpreter, args); } return(instance); }