@Override protected Object executeImpl(Object languageContext, TruffleObject function, Object[] args, int offset) { return apply.execute(languageContext, function, args[offset], Object.class, Object.class); } }
@Override protected Object executeImpl(Object languageContext, TruffleObject function, Object[] args, int offset) { return apply.execute(languageContext, function, args[offset], Object.class, Object.class); } }
@Override protected Object executeImpl(Object languageContext, TruffleObject function, Object[] args, int offset) { if (apply == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); apply = insert(new TruffleExecuteNode()); } return apply.execute(languageContext, function, args[offset], returnClass, returnType); }
@Override protected Object executeImpl(Object languageContext, TruffleObject function, Object[] args, int offset) { if (executeNode == null) { CompilerDirectives.transferToInterpreterAndInvalidate(); this.returnClass = JavaInteropReflect.getMethodReturnType(method); this.returnType = JavaInteropReflect.getMethodGenericReturnType(method); this.executeNode = insert(new TruffleExecuteNode()); } return executeNode.execute(languageContext, function, args[offset], returnClass, returnType); }