HEX
Server: Apache
System: Linux webd004.cluster130.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User: frenchy (106757)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/frenchy/www/french-american.org/current/node_modules/uglyfly-js/lib/get_uglyfly.js
/***********************************************************************
  Copyright 2014      (c) Saair Quaderi <saair.quaderi@gmail.com>
  Copyright 2012-2013 (c) Mihai Bazon <mihai.bazon@gmail.com>

  UglyflyJS sourcecode can be found here:
    https://github.com/quaderi/uglyflyjs

  UglyflyJS (by Saair) is a fork of UglifyJS2 (by Mihai Bazon)
  Both libraries are released under the BSD 2-Clause License.
 ***********************************************************************/

/*globals define, module, require */

((typeof define === "function") ? define :
        function () { "use strict"; require('./nd').apply(module, arguments); })(
    "get_uglyfly",
    [
        "get_warn",
        "merge",
        "AST",
        "Compressor",
        "SourceMap",
        "OutputStream",
        "parse",
        "add_compress_fns_to_AST",
        "add_moz_fns_to_AST",
        "add_output_fns_to_AST",
        "add_scope_fns_to_AST",
        "add_transform_fns_to_AST",
        "add_wrap_fns_to_AST",
        "describe_ast"
    ],
    function (get_warn, merge, AST, Compressor, SourceMap, OutputStream, parse,
        add_compress_fns_to_AST, add_moz_fns_to_AST, add_output_fns_to_AST,
        add_scope_fns_to_AST, add_transform_fns_to_AST, add_wrap_fns_to_AST,
        describe_ast) {
        "use strict";

        function get_uglyfly(MOZ_SourceMap, warn_callback, croak_callback) {
            var u = {},
                warn = get_warn(warn_callback);


            add_moz_fns_to_AST(AST);
            add_wrap_fns_to_AST(AST);
            add_transform_fns_to_AST(AST);
            add_scope_fns_to_AST(AST, warn);
            add_output_fns_to_AST(AST);
            add_compress_fns_to_AST(AST, warn_callback, croak_callback);

            u.get_compressor = function (options, false_by_default) {
                return new Compressor(options, false_by_default, warn, croak_callback);
            };

            u.get_source_map = function (options) {
                return new SourceMap(MOZ_SourceMap, options);
            };

            u.get_output_stream = function (options) {
                return new OutputStream(options, warn, croak_callback);
            };

            u.from_mozilla_ast = function (mozilla_ast) {
                return AST.Node.from_mozilla_ast(mozilla_ast);
            };

            u.parse = function ($TEXT, options) {
                return parse(AST, $TEXT, options);
            };

            u.describe_ast = function (output_stream) {
                if (!output_stream instanceof OutputStream) {
                    output_stream = new OutputStream({
                        beautify: true
                    }, warn, croak_callback);
                }
                return describe_ast(AST, output_stream);
            };

            u.compress = function (toplevel, compressOptions, warningOptions) {
                var options = {
                    warnings: warningOptions
                };
                toplevel.figure_out_scope(compressOptions);
                toplevel = toplevel.transform(u.get_compressor(merge(options, compressOptions)));
                return toplevel;
            };

            u.mangle = function (toplevel, mangleOptions) {
                mangleOptions = mangleOptions || {};
                toplevel.figure_out_scope(mangleOptions);
                if (!mangleOptions.char_frequencies) {
                    toplevel.compute_char_frequency(mangleOptions);
                }
                toplevel.mangle_names(mangleOptions);
                return toplevel;
            };

            u.process = function (toplevel, options, output) {
                var stream,
                    js,
                    source_map,
                    results;
                if (options.compress) {
                    u.compress(toplevel, options.compress, options.warnings);
                }
                if (options.mangle) {
                    u.mangle(toplevel, options.mangle);
                }
                output = output || {};
                if (options.output) {
                    merge(output, options.output);
                }

                stream = u.get_output_stream(output);
                toplevel.print(stream);

                js = stream.toString();
                source_map = output.source_map ? output.source_map.toString() : null;

                if (options.sourceMapURL) {
                    js += '\n//# sourceMappingURL=' + options.sourceMapURL;
                }

                results = {};
                results.js = js;
                results.source_map = source_map;
                return results;
            };

            return u;
        }

        return get_uglyfly;
    }
);