File tree 1 file changed +17
-20
lines changed
polymod/hscript/_internal
1 file changed +17
-20
lines changed Original file line number Diff line number Diff line change @@ -373,33 +373,30 @@ 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 vars
377
+ restore (old );
378
+ inTry = oldTry ;
379
+ // declare 'v'
380
+ declared .push ({ n : n , old : locals .get (n ) });
381
+ locals .set (n , { r : switch (err ) {
382
+ case EScriptThrow (errValue ): errValue ;
383
+ default : error ;
384
+ }});
385
+ var v : Dynamic = expr (ecatch );
386
+ restore (old );
387
+ return v ;
388
+ } catch (error : Dynamic ) {
389
+ var en = Type .getEnum (error );
390
+ if (en != null && en .getName () == " hscript._Interp.Stop" ) {
393
391
inTry = oldTry ;
394
- throw err ;
392
+ throw error ;
395
393
}
396
-
397
394
// restore vars
398
395
restore (old );
399
396
inTry = oldTry ;
400
397
// declare 'v'
401
398
declared .push ({ n : n , old : locals .get (n ) });
402
- locals .set (n ,{ r : err });
399
+ locals .set (n , { r : error });
403
400
var v : Dynamic = expr (ecatch );
404
401
restore (old );
405
402
return v ;
You can’t perform that action at this time.
0 commit comments