anchor.diff:    List<JumpTarget> continueTargets;
   
     // Inside a catch block, `rethrow` throws the current exception.  The
  -  // translation maintains a current exception when inside a catch block.
  +  // translation maintains a current exception and stack trace when inside a
  +  // catch block.  They are null outside a catch block.
     String currentExceptionName;
  +  String currentStackTraceName;
   
     visit(ast.AstNode node) => node.accept(this);
   
  
positive.code: 
    _translateCatchClauses(List<ast.CatchClause> clauses, rk, ek, sk) {
      var savedExceptionName = currentExceptionName;
      var catchName = newName('catch');
      var exceptionName, stackTraceName, catchBlock;
      if (clauses.isEmpty) {
        exceptionName = currentExceptionName = newName('e');
        stackTraceName = newName('s');
        catchBlock = make.block([ek.apply(exceptionName, stackTraceName)]);
      } else {
        // The exception and stack trace parameters do not necessarily have the
  
negative.code: 
    visitThrowExpression(ast.ThrowExpression node) => (ek, sk) {
      return visit(node.expression)(ek, (expr) {
        // `throw` is always translated as `throw` to ensure that a stack
        // trace is produced.  The translation ensures that all code is inside
        // an try/catch with an appropriate error handler.
        return sk(make.throwExpression(expr));
      });
    };
  