Lines Matching refs:mv

346         final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(ACC_STATIC, CLASS_INIT,
350 GET_NON_NULL_GLOBAL.invoke(mv);
351 mv.putstatic(generatedClassName, GLOBAL_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
353 GET_CLASS_OVERRIDES.invoke(mv);
356 mv.dup();
357 mv.instanceOf(SCRIPT_FUNCTION_TYPE);
358 mv.dup();
359 mv.putstatic(generatedClassName, IS_FUNCTION_FIELD_NAME, BOOLEAN_TYPE_DESCRIPTOR);
361 mv.ifeq(notFunction);
362 mv.dup();
363 mv.checkcast(SCRIPT_FUNCTION_TYPE);
364 emitInitCallThis(mv);
365 mv.visitLabel(notFunction);
367 mv.putstatic(generatedClassName, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
369 endInitMethod(mv);
375 private void emitInitCallThis(final InstructionAdapter mv) {
376 loadField(mv, GLOBAL_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
377 GET_CALL_THIS.invoke(mv);
379 mv.putstatic(generatedClassName, CALL_THIS_FIELD_NAME, OBJECT_TYPE_DESCRIPTOR);
382 mv.putfield(generatedClassName, CALL_THIS_FIELD_NAME, OBJECT_TYPE_DESCRIPTOR);
430 final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(ACC_PUBLIC |
434 mv.visitCode();
435 emitSuperConstructorCall(mv, originalCtorType.getDescriptor());
437 endInitMethod(mv);
470 final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(ACC_PUBLIC, INIT,
473 mv.visitCode();
475 final int extraArgOffset = emitSuperConstructorCall(mv, originalCtorType.getDescriptor());
478 mv.visitVarInsn(ALOAD, 0);
479 GET_NON_NULL_GLOBAL.invoke(mv);
480 mv.putfield(generatedClassName, GLOBAL_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
483 mv.visitVarInsn(ALOAD, 0);
484 mv.visitVarInsn(ALOAD, extraArgOffset);
485 mv.putfield(generatedClassName, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
489 mv.visitVarInsn(ALOAD, 0);
490 mv.iconst(1);
491 mv.putfield(generatedClassName, IS_FUNCTION_FIELD_NAME, BOOLEAN_TYPE_DESCRIPTOR);
493 mv.visitVarInsn(ALOAD, 0);
494 mv.visitVarInsn(ALOAD, extraArgOffset);
495 emitInitCallThis(mv);
498 endInitMethod(mv);
511 private void generateOverridingConstructorWithObjectParam(final InstructionAdapter mv, final String ctorDescriptor) {
512 mv.visitCode();
513 final int extraArgOffset = emitSuperConstructorCall(mv, ctorDescriptor);
516 mv.visitVarInsn(ALOAD, extraArgOffset);
517 mv.instanceOf(SCRIPT_OBJECT_MIRROR_TYPE);
519 mv.ifeq(notMirror);
521 mv.visitVarInsn(ALOAD, 0);
522 mv.visitVarInsn(ALOAD, extraArgOffset);
523 mv.iconst(0);
524 UNWRAP_MIRROR.invoke(mv);
525 mv.putfield(generatedClassName, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
527 mv.visitVarInsn(ALOAD, 0);
528 mv.visitVarInsn(ALOAD, extraArgOffset);
529 mv.iconst(1);
530 UNWRAP_MIRROR.invoke(mv);
531 mv.putfield(generatedClassName, GLOBAL_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
536 mv.visitVarInsn(ALOAD, 0);
537 mv.getfield(generatedClassName, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
538 mv.instanceOf(SCRIPT_FUNCTION_TYPE);
539 mv.ifeq(done);
542 mv.visitVarInsn(ALOAD, 0);
543 mv.iconst(1);
544 mv.putfield(generatedClassName, IS_FUNCTION_FIELD_NAME, BOOLEAN_TYPE_DESCRIPTOR);
546 mv.visitVarInsn(ALOAD, 0);
547 mv.dup();
548 mv.getfield(generatedClassName, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
549 mv.checkcast(SCRIPT_FUNCTION_TYPE);
550 emitInitCallThis(mv);
551 mv.goTo(done);
554 mv.visitLabel(notMirror);
557 mv.visitVarInsn(ALOAD, extraArgOffset);
558 NOT_AN_OBJECT.invoke(mv);
560 mv.visitLabel(done);
561 endInitMethod(mv);
564 private static void endInitMethod(final InstructionAdapter mv) {
565 mv.visitInsn(RETURN);
566 endMethod(mv);
569 private static void endMethod(final InstructionAdapter mv) {
570 mv.visitMaxs(0, 0);
571 mv.visitEnd();
652 final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(getAccessModifiers(method), name,
654 mv.visitCode();
668 loadField(mv, GLOBAL_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
671 SET_GLOBAL.invoke(mv);
673 mv.visitVarInsn(ASTORE, globalRestoringRunnableVar);
677 mv.visitLabel(tryBlockStart);
685 loadField(mv, IS_FUNCTION_FIELD_NAME, BOOLEAN_TYPE_DESCRIPTOR);
689 mv.ifeq(notFunction);
693 loadField(mv, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
694 // NOTE: if we added "mv.checkcast(SCRIPT_FUNCTION_TYPE);" here
703 loadField(mv, CALL_THIS_FIELD_NAME, OBJECT_TYPE_DESCRIPTOR);
705 mv.goTo(callCallee);
706 mv.visitLabel(notFunction);
710 mv.ifne(defaultBehavior);
722 loadField(mv, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
724 HAS_OWN_TO_STRING.invoke(mv);
726 mv.ifeq(defaultBehavior);
729 loadField(mv, DELEGATE_FIELD_NAME, SCRIPT_OBJECT_TYPE_DESCRIPTOR);
730 mv.dup();
733 mv.visitInvokeDynamicInsn(encodedName,
737 mv.visitLdcInsn(name);
739 CHECK_FUNCTION.invoke(mv);
742 mv.dup();
744 mv.ifnonnull(hasFunction);
748 mv.pop2();
754 mv.visitLabel(defaultBehavior);
755 final Runnable emitFinally = ()->emitFinally(mv, globalRestoringRunnableVar);
759 UNSUPPORTED.invoke(mv);
764 mv.athrow();
767 emitSuperCall(mv, method.getDeclaringClass(), name, methodDesc);
768 mv.goTo(normalFinally);
771 mv.visitLabel(hasFunction);
773 mv.swap();
775 mv.visitLabel(callCallee);
785 mv.load(varOffset, t);
786 convertParam(mv, t, isVarArgCall);
795 mv.visitInvokeDynamicInsn(NameCodec.EMPTY_NAME,
801 mv.visitInvokeDynamicInsn(encodedName,
805 convertReturnValue(mv, returnType);
806 mv.visitLabel(normalFinally);
808 mv.areturn(asmReturnType);
816 mv.visitLabel(throwableHandler);
817 WRAP_THROWABLE.invoke(mv);
823 mv.visitLabel(rethrowHandler);
826 mv.athrow();
829 mv.visitTryCatchBlock(tryBlockStart, normalFinally, rethrowHandler, THROWABLE_TYPE_NAME);
832 mv.visitTryCatchBlock(tryBlockStart, normalFinally, rethrowHandler, RUNTIME_EXCEPTION_TYPE_NAME);
833 mv.visitTryCatchBlock(tryBlockStart, normalFinally, rethrowHandler, ERROR_TYPE_NAME);
835 mv.visitTryCatchBlock(tryBlockStart, normalFinally, rethrowHandler, excName);
837 mv.visitTryCatchBlock(tryBlockStart, normalFinally, throwableHandler, THROWABLE_TYPE_NAME);
839 endMethod(mv);
896 private void loadField(final InstructionAdapter mv, final String name, final String desc) {
898 mv.getstatic(generatedClassName, name, desc);
900 mv.visitVarInsn(ALOAD, 0);
901 mv.getfield(generatedClassName, name, desc);
905 private static void convertReturnValue(final InstructionAdapter mv, final Class<?> origReturnType) {
907 mv.pop();
910 EXPORT_RETURN_VALUE.invoke(mv);
912 mv.visitInsn(I2B);
914 mv.visitInsn(I2S);
916 mv.visitInsn(D2F);
918 TO_CHAR_PRIMITIVE.invoke(mv);
925 * @param mv the current method visitor
929 private static void convertParam(final InstructionAdapter mv, final Type t, final boolean varArg) {
936 CHAR_VALUE_OF.invoke(mv);
940 mv.visitInsn(Opcodes.F2D);
946 DOUBLE_VALUE_OF.invoke(mv);
952 LONG_VALUE_OF.invoke(mv);
958 UNWRAP.invoke(mv);
980 * @param mv the instruction adapter
983 private static void emitFinally(final InstructionAdapter mv, final int globalRestoringRunnableVar) {
984 mv.visitVarInsn(ALOAD, globalRestoringRunnableVar);
985 RUN.invoke(mv);
1011 final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(getAccessModifiers(method),
1013 mv.visitCode();
1015 emitSuperCall(mv, method.getDeclaringClass(), name, methodDesc);
1016 mv.areturn(Type.getType(mi.type.returnType()));
1017 endMethod(mv);
1038 private int emitSuperConstructorCall(final InstructionAdapter mv, final String methodDesc) {
1039 return emitSuperCall(mv, null, INIT, methodDesc, true);
1042 private int emitSuperCall(final InstructionAdapter mv, final Class<?> owner, final String name, final String methodDesc) {
1043 return emitSuperCall(mv, owner, name, methodDesc, false);
1046 private int emitSuperCall(final InstructionAdapter mv, final Class<?> owner, final String name, final String methodDesc, final boolean constructor) {
1047 mv.visitVarInsn(ALOAD, 0);
1051 mv.load(nextParam, t);
1060 mv.visitMethodInsn(INVOKESPECIAL, Type.getInternalName(superType), name, methodDesc,
1063 mv.invokespecial(superClassName, name, methodDesc, false);
1077 final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(ACC_PRIVATE | ACC_STATIC,
1081 mv.visitVarInsn(ALOAD, 0);
1082 mv.checkcast(Type.getType(generatedClassName));
1083 mv.invokespecial(superClassName, "finalize", VOID_METHOD_DESCRIPTOR, false);
1085 mv.visitInsn(RETURN);
1086 endMethod(mv);
1090 final InstructionAdapter mv = new InstructionAdapter(cw.visitMethod(ACC_PUBLIC, "finalize",
1093 mv.aconst(new Handle(Opcodes.H_INVOKESTATIC, generatedClassName, FINALIZER_DELEGATE_NAME,
1095 mv.visitVarInsn(ALOAD, 0);
1097 INVOKE_NO_PERMISSIONS.invoke(mv);
1098 mv.visitInsn(RETURN);
1099 endMethod(mv);