File tree 1 file changed +15
-22
lines changed
polymod/hscript/_internal
1 file changed +15
-22
lines changed Original file line number Diff line number Diff line change @@ -373,33 +373,26 @@ class PolymodInterpEx extends Interp
373
373
#else
374
374
var err = error ;
375
375
#end
376
- switch (err ) {
377
- case EScriptThrow (errValue ):
378
- // restore vars
379
- restore (old );
380
- inTry = oldTry ;
381
- // declare 'v'
382
- declared .push ({ n : n , old : locals .get (n ) });
383
- locals .set (n ,{ r : errValue });
384
- var v : Dynamic = expr (ecatch );
385
- restore (old );
386
- return v ;
387
- default :
388
- throw err ;
389
- }
390
- } catch ( err : Dynamic ) {
391
- // I can't handle this error the normal way because Stop is private GRAAAAA
392
- if (Type .getEnumName (err ) == " hscript.Interp.Stop" ) {
376
+ restore (old );
377
+ inTry = oldTry ;
378
+ declared .push ({ n : n , old : locals .get (n ) });
379
+ locals .set (n , { r : switch (err ) {
380
+ case EScriptThrow (errValue ): errValue ;
381
+ default : error ;
382
+ }});
383
+ var v : Dynamic = expr (ecatch );
384
+ restore (old );
385
+ return v ;
386
+ } catch (error : Dynamic ) {
387
+ var en = Type .getEnum (error );
388
+ if (en != null && Type .getEnumName (en ) == " hscript._Interp.Stop" ) {
393
389
inTry = oldTry ;
394
- throw err ;
390
+ throw error ;
395
391
}
396
-
397
- // restore vars
398
392
restore (old );
399
393
inTry = oldTry ;
400
- // declare 'v'
401
394
declared .push ({ n : n , old : locals .get (n ) });
402
- locals .set (n ,{ r : err });
395
+ locals .set (n , { r : error });
403
396
var v : Dynamic = expr (ecatch );
404
397
restore (old );
405
398
return v ;
You can’t perform that action at this time.
0 commit comments