Skip to content

Instantly share code, notes, and snippets.

@mlschroe
Created July 29, 2011 18:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mlschroe/1114368 to your computer and use it in GitHub Desktop.
Save mlschroe/1114368 to your computer and use it in GitHub Desktop.
--- ./Actions.pm.orig 2011-07-29 17:59:22.000000000 +0000
+++ ./Actions.pm 2011-07-29 18:02:21.000000000 +0000
@@ -648,7 +648,7 @@ class Perl6::Actions is HLL::Actions {
PAST::Op.new(:pasttype<bind_6model>,
PAST::Var.new(:name<$!>, :scope<lexical_6model>),
PAST::Op.new(:name<&EXCEPTION>, :pasttype<call>,
- PAST::Op.new(:inline(' .get_results (%r)')))));
+ PAST::Op.new(:inline(" .get_results (%r)\n finalize %r")))));
# Otherwise, put Mu into $!.
$past.push(
@@ -3359,16 +3359,8 @@ class Perl6::Actions is HLL::Actions {
PAST::Var.new( :scope('parameter'), :name('$_') ),
PAST::Op.new( :pasttype('bind_6model'),
PAST::Var.new( :scope('lexical_6model'), :name('$_') ),
- PAST::Op.new(
- :pasttype('callmethod'),
- :name('new'),
- PAST::Var.new(
- :name('Exception'),
- :namespace([]),
- :scope('package'),
- ),
- PAST::Var.new( :scope('lexical_6model'), :name('$_') ),
- ),
+ PAST::Op.new(:name<&EXCEPTION>, :pasttype<call>,
+ PAST::Var.new( :scope('lexical_6model'), :name('$_') ) ),
),
PAST::Op.new( :pasttype('bind_6model'),
PAST::Var.new( :scope('lexical_6model'), :name('$!'), :isdecl(1) ),
@@ -3393,7 +3385,9 @@ class Perl6::Actions is HLL::Actions {
'handled'
),
1
- )
+ ),
+ PAST::Op.new( :pasttype('inline'), :inline(' finalize %0'),
+ PAST::Var.new( :scope('register'), :name('exception'))),
);
$block.handlers.unshift(
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment