Class: AmberVM::Interpreter::NewClassInstance

Inherits:
Element show all
Defined in:
lib/amber/interpreter.rb

Instance Attribute Summary

Attributes inherited from Element

#pos

Instance Method Summary collapse

Constructor Details

#initialize(object_class, params) ⇒ NewClassInstance

Returns a new instance of NewClassInstance.



180
181
182
183
# File 'lib/amber/interpreter.rb', line 180

def initialize object_class, params
  @class = object_class
  @params = params
end

Instance Method Details

#execute(env) ⇒ Object



185
186
187
188
189
# File 'lib/amber/interpreter.rb', line 185

def execute env
  AmberVM::debug "Creating class instance..." if $DEBUG
  params = @params.map{|p| p.execute(env)}
  @class.instance(@params, env)
end

#optimize(variables = {}) ⇒ Object



191
192
193
194
# File 'lib/amber/interpreter.rb', line 191

def optimize variables = {}
  p = params.map{|p| p.optimize variables}
  NewClassInstance.new(@class, p)
end