anchor.diff:                  // Replace the old top shared scope with the new one
                   ctx.Parameters.SharedScope .= tmpScope
   
  +                jsErr .= Dlr.castAsT<UserError> (Dlr.callInstanceMethod caughtExn (typeof<Exception>.GetMethod("GetBaseException")) Seq.empty)
  +
  +                (Dlr.if'
  +                    (Dlr.isNull jsErr)
  +                    (Dlr.throwValue caughtExn)
  +                )
  +
                   // Copy the javascript exception value into the variable
  -                Identifier.setValue ctx name (caughtExn .-> "Value")
  +                Identifier.setValue ctx name (jsErr .-> "Value")
   
                   // Compile the javascript catch block
                   ctx $ compile ast $ Dlr.castVoid
  
positive.code: 
              [Dlr.tryFinally catchBlock restoreSharedScope] $ Seq.ofList
            )
            
          Dlr.catchVar caughtExn catchBlock
  
      | _ -> failwith "Que?"
  
negative.code:         let catchBlock =
            Dlr.blockTmpT<Scope> (fun tmpScope ->
              let catchBlock =
                Dlr.block [jsErr] [
  
                  // Create the new scope
                  tmpScope .= Dlr.newArrayBoundsT<BV> !!!2
  
  