@Override public Object invoke(Object proxy, Method method, Object[] arguments) throws Throwable { CompilerAsserts.neverPartOfCompilation(); if (method.equals(functionMethod)) { return target.call(languageContext, functionObj, spreadVarArgsArray(arguments)); } else { return invokeDefault(proxy, method, arguments); } }