{"size": 4755, "ext": "js", "max_stars_repo_path": "dist/js/Elixir.ArithmeticError.js", "max_stars_repo_name": "johannbarbie/csmt", "max_stars_repo_stars_event_min_datetime": null, "max_stars_repo_stars_event_max_datetime": null, "max_issues_repo_path": "dist/js/Elixir.ArithmeticError.js", "max_issues_repo_name": "johannbarbie/csmt", "max_issues_repo_issues_event_min_datetime": null, "max_issues_repo_issues_event_max_datetime": null, "max_forks_repo_path": "dist/js/Elixir.ArithmeticError.js", "max_forks_repo_name": "johannbarbie/csmt", "max_forks_repo_forks_event_min_datetime": null, "max_forks_repo_forks_event_max_datetime": null}
{"max_stars_count": null, "max_issues_count": null, "max_forks_count": null, "avg_line_length": 64.2567567568, "max_line_length": 1638, "alphanum_fraction": 0.6956887487}
'use strict';
import ElixirScript from './ElixirScript.Core.js';
import $ArithmeticError$ from './Elixir.ArithmeticError.js';

import $Enum$ from './Elixir.Enum.js';

import $Kernel$ from './Elixir.Kernel.js';

import $String$Chars$ from './Elixir.String.Chars.js';

import $IO$ from './Elixir.IO.js';

function __info__(kind) {
    const __info__map__ = new Map([[Symbol.for('functions'), [new ElixirScript.Core.Tuple(Symbol.for('__struct__'), 0), new ElixirScript.Core.Tuple(Symbol.for('__struct__'), 1), new ElixirScript.Core.Tuple(Symbol.for('blame'), 2), new ElixirScript.Core.Tuple(Symbol.for('exception'), 1), new ElixirScript.Core.Tuple(Symbol.for('message'), 1)]], [Symbol.for('macros'), []], [Symbol.for('attributes'), [new ElixirScript.Core.Tuple(Symbol.for('vsn'), [237848408395659151438830887864167612974]), new ElixirScript.Core.Tuple(Symbol.for('behaviour'), [$Exception$])]], [Symbol.for('compile'), [new ElixirScript.Core.Tuple(Symbol.for('version'), [55, 46, 50, 46, 54]), new ElixirScript.Core.Tuple(Symbol.for('options'), []), new ElixirScript.Core.Tuple(Symbol.for('source'), '/private/tmp/elixir-20181026-69137-ms45yr/elixir-1.7.4/lib/elixir/lib/exception.ex')]], [Symbol.for('md5'), new ElixirScript.Core.BitString(ElixirScript.Core.BitString.integer(178), ElixirScript.Core.BitString.integer(239), ElixirScript.Core.BitString.integer(239), ElixirScript.Core.BitString.integer(236), ElixirScript.Core.BitString.integer(9), ElixirScript.Core.BitString.integer(188), ElixirScript.Core.BitString.integer(6), ElixirScript.Core.BitString.integer(252), ElixirScript.Core.BitString.integer(247), ElixirScript.Core.BitString.integer(224), ElixirScript.Core.BitString.integer(101), ElixirScript.Core.BitString.integer(40), ElixirScript.Core.BitString.integer(88), ElixirScript.Core.BitString.integer(92), ElixirScript.Core.BitString.integer(194), ElixirScript.Core.BitString.integer(46))], [Symbol.for('module'), Symbol.for('Elixir.ArithmeticError')]]);

    const value = __info__map__.get(kind);

    if (value !== null) {
        return value;
    }

    throw new ElixirScript.Core.Patterns.MatchError(kind);
}

function __struct__(...__function_args__) {
    function recur(...__function_args__) {
        let __arg_matches__ = null;

        let __intermediate__ = null;

        if ((__arg_matches__ = ElixirScript.Core.Patterns.match_or_default([], __function_args__, () => {
            return true;
        })) !== null) {
            let [] = __arg_matches__;

            return new Map([[Symbol.for('__exception__'), true], [Symbol.for('__struct__'), $ArithmeticError$], [Symbol.for('message'), 'bad argument in arithmetic expression']]);
        } else if ((__arg_matches__ = ElixirScript.Core.Patterns.match_or_default([ElixirScript.Core.Patterns.variable('kv576460752303293726')], __function_args__, (kv5764607523032937260) => {
            return true;
        })) !== null) {
            let [kv5764607523032937260] = __arg_matches__;

            return $Enum$.reduce(kv5764607523032937260, new Map([[Symbol.for('__exception__'), true], [Symbol.for('__struct__'), $ArithmeticError$], [Symbol.for('message'), 'bad argument in arithmetic expression']]), (...__function_args__) => {
                function recur(...__function_args__) {
                    let __arg_matches__ = null;

                    if ((__arg_matches__ = ElixirScript.Core.Patterns.match_or_default([ElixirScript.Core.Patterns.type(ElixirScript.Core.Tuple, {
                        values: [ElixirScript.Core.Patterns.variable('key576460752303293726'), ElixirScript.Core.Patterns.variable('val576460752303293726')]
                    }), ElixirScript.Core.Patterns.variable('map576460752303293726')], __function_args__, (key5764607523032937260, val5764607523032937260, map5764607523032937260) => {
                        return true;
                    })) !== null) {
                        let [key5764607523032937260, val5764607523032937260, map5764607523032937260] = __arg_matches__;

                        return ElixirScript.Core.maps.update(key5764607523032937260, val5764607523032937260, map5764607523032937260);
                    }

                    throw new ElixirScript.Core.Patterns.MatchError(__function_args__);
                }

                return ElixirScript.Core.Functions.trampoline(new ElixirScript.Core.Functions.Recurse(recur.bind(null, ...__function_args__)));
            });
        }

        throw new ElixirScript.Core.Patterns.MatchError(__function_args__);
    }

    return ElixirScript.Core.Functions.trampoline(new ElixirScript.Core.Functions.Recurse(recur.bind(null, ...__function_args__)));
}

export default {
    __struct__,
    __MODULE__: Symbol.for('Elixir.ArithmeticError'),
    __info__
};
