lib/nydp/closure.rb in nydp-0.2.3 vs lib/nydp/closure.rb in nydp-0.2.5
- old
+ new
@@ -2,10 +2,13 @@
class Closure
attr_accessor :ifn, :context
def initialize ifn, context
@ifn, @context = ifn, context
+ # TODO don't create a closure where it's not needed (zero_arg functions), use parent context instead
+ # TODO see SymbolLookup for how to ensure variable references stay on track
+ # TODO see InterpretedFunction for where to not instantiate new LexicalContext
end
def invoke_1 vm
ifn.invoke_1 vm, context
end
@@ -26,9 +29,10 @@
ifn.invoke vm, context, arg_values
end
def nydp_type ; "fn" ; end
def to_s
- "(closure #{context.inspect} : #{ifn.to_s})"
+ "(closure #{context.to_s} : #{ifn.to_s})"
end
+ def inspect ; to_s ; end
end
end