@@ -27,13 +27,17 @@ function findReset(tag, ctx) {
27
27
op . continuationreset = function ( ctx , currentHLL , tag , block ) {
28
28
return new Promise ( function ( resolve , reject ) {
29
29
if ( block instanceof Cont ) {
30
- block . resetCtx . $$outside = resolve ;
30
+ block . resetCtx . $$outsideResolve = resolve ;
31
+ block . resetCtx . $$outsideReject = reject ;
31
32
block . inside ( Null ) ;
32
33
} else {
33
34
const newCtx = new CtxJustReset ( ctx , ctx , null ) ;
34
- newCtx . $$outside = resolve ;
35
+ newCtx . $$outsideResolve = resolve ;
36
+ newCtx . $$outsideReject = reject ;
35
37
newCtx . $$tag = tag ;
36
- block . $$call ( newCtx , null ) . then ( value => newCtx . $$outside ( nqp . retval ( currentHLL , value ) ) , reject ) ;
38
+ block . $$call ( newCtx , null ) . then (
39
+ value => newCtx . $$outsideResolve ( nqp . retval ( currentHLL , value ) ) ,
40
+ error => newCtx . $$outsideReject ( error ) ) ;
37
41
}
38
42
} ) ;
39
43
} ;
@@ -58,14 +62,16 @@ op.continuationcontrol = function(ctx, currentHLL, protect, tag, closure) {
58
62
return new Promise ( function ( resolve , reject ) {
59
63
const resetCtx = findReset ( tag , ctx ) ;
60
64
const cont = new Cont ( ctx , resolve , resetCtx ) ;
61
- closure . $$call ( protect ? resetCtx : resetCtx . $$caller , null , cont ) . then ( value => resetCtx . $$outside ( nqp . retval ( currentHLL , value ) ) , reject ) ;
65
+ closure . $$call ( protect ? resetCtx : resetCtx . $$caller , null , cont ) . then ( value => resetCtx . $$outsideResolve ( nqp . retval ( currentHLL , value ) ) , reject ) ;
62
66
} ) ;
63
67
} ;
64
68
65
69
op . continuationinvoke = function ( ctx , currentHLL , cont , inject ) {
66
70
return new Promise ( function ( resolve , reject ) {
67
71
cont . resetCtx . $$caller = ctx ;
68
- cont . resetCtx . $$outside = resolve ;
72
+ cont . resetCtx . $$outsideResolve = resolve ;
73
+ cont . resetCtx . $$outsideReject = reject ;
74
+
69
75
inject . $$call ( cont . ctx , null ) . then ( value => {
70
76
cont . inside ( nqp . retval ( currentHLL , value ) ) ;
71
77
} , reject ) ;
0 commit comments