Class: Nydp::Builtin::Ensuring

Inherits:
Object
  • Object
show all
Includes:
Base, Helper, Singleton
Defined in:
lib/nydp/builtin/ensuring.rb

Defined Under Namespace

Classes: InvokeProtection

Instance Method Summary collapse

Methods included from Helper

#cons, #list, #literal?, #pair?, #sig, #sym, #sym?

Methods included from Converter

#n2r, #r2n

Methods included from Base

#builtin_invoke_1, #builtin_invoke_2, #builtin_invoke_3, #builtin_invoke_4, #handle_error, #inspect, #invoke, #invoke_1, #invoke_2, #invoke_3, #invoke_4, #name, #nydp_type, #to_s

Instance Method Details

#builtin_invoke(vm, args) ⇒ Object



19
20
21
22
23
24
25
26
27
# File 'lib/nydp/builtin/ensuring.rb', line 19

def builtin_invoke vm, args
  fn_ensure = args.car
  fn_tricky = args.cdr.car

  protection_instructions = Nydp::Pair.from_list [InvokeProtection.new(fn_ensure), Nydp::PopArg]
  vm.push_ctx_instructions protection_instructions

  fn_tricky.invoke vm, Nydp::NIL
end