boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java
branchgc
changeset 900 2ee22312e414
parent 884 af690d50d7d6
child 906 e1291f7b7626
     1.1 --- a/boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java	Sat Nov 29 22:25:40 2014 +0100
     1.2 +++ b/boot/src/main/java/org/netbeans/html/boot/impl/FnUtils.java	Fri Dec 12 11:22:40 2014 +0100
     1.3 @@ -296,6 +296,7 @@
     1.4                  // init Fn
     1.5                  super.visitInsn(Opcodes.POP);
     1.6                  super.visitLdcInsn(Type.getObjectType(FindInClass.this.name));
     1.7 +                super.visitInsn(fia.keepAlive ? Opcodes.ICONST_1 : Opcodes.ICONST_0);
     1.8                  super.visitLdcInsn(body);
     1.9                  super.visitIntInsn(Opcodes.SIPUSH, args.size());
    1.10                  super.visitTypeInsn(Opcodes.ANEWARRAY, "java/lang/String");
    1.11 @@ -311,7 +312,7 @@
    1.12                  }
    1.13                  super.visitMethodInsn(Opcodes.INVOKESTATIC,
    1.14                          "org/netbeans/html/boot/spi/Fn", "define",
    1.15 -                        "(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/String;)Lorg/netbeans/html/boot/spi/Fn;"
    1.16 +                        "(Ljava/lang/Class;ZLjava/lang/String;[Ljava/lang/String;)Lorg/netbeans/html/boot/spi/Fn;"
    1.17                  );
    1.18                  Label noPresenter = new Label();
    1.19                  super.visitInsn(Opcodes.DUP);
    1.20 @@ -526,6 +527,7 @@
    1.21                  String body;
    1.22                  boolean javacall = false;
    1.23                  boolean wait4js = true;
    1.24 +                boolean keepAlive = false;
    1.25  
    1.26                  public FindInAnno() {
    1.27                      super(Opcodes.ASM4);
    1.28 @@ -545,7 +547,11 @@
    1.29                          wait4js = (Boolean) value;
    1.30                          return;
    1.31                      }
    1.32 -                    assert name.equals("body");
    1.33 +                    if (name.equals("keepAlive")) { // NOI18N
    1.34 +                        keepAlive = (Boolean) value;
    1.35 +                        return;
    1.36 +                    }
    1.37 +                    assert name.equals("body"); // NOI18N
    1.38                      body = (String) value;
    1.39                  }
    1.40