/**
 * Composes single-argument functions from right to left.
 *
 * @param {...Function} funcs The functions to compose.
 * @returns {Function} A function obtained by composing functions from right to
 * left. For example, compose(f, g, h) is identical to arg => f(g(h(arg))).
 */
export default function compose(...funcs) {
  return (...args) => {
    if (funcs.length === 0) {
      // We weren't given any functions, just return the first passed in arg.
      return args[0];
    }

    const last = funcs[funcs.length - 1];
    const rest = funcs.slice(0, -1);

    return rest.reduceRight((composed, f) => f(composed), last(...args));
  }
}

@@ -470,17 +470,16 @@
  args%5B0%5D
-;
 %0A    %7D%0A%0A
@@ -518,17 +518,16 @@
 gth - 1%5D
-;
 %0A    con
@@ -554,17 +554,16 @@
 e(0, -1)
-;
 %0A%0A    re
@@ -632,9 +632,8 @@
 gs))
-;
 %0A  %7D

remove semicolons