code: public static void nullCoalesce(CodeBuilder builder, Label nullExit) {
      builder.dup();
      Label nonNull = new Label();
      builder.ifNonNull(nonNull);
      // See http://mail.ow2.org/wws/arc/asm/2016-02/msg00001.html for a discussion of this pattern
      // but even though the value at the top of the stack here is null, its type isn't.  So we need
      // to pop and push.  This is the idiomatic pattern.
      builder.pop();
      builder.pushNull();
      builder.goTo(nullExit);
      builder.mark(nonNull);
    }
docs: Outputs bytecode that will test the item at the top of the stack for null, and branch to {@code
  nullExit} if it is {@code null}. At {@code nullSafeExit} there will be a null value at the top
  of the stack.