cssesc-source 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/lib/cssesc/source.rb +7 -0
- data/vendor/LICENSE-MIT.txt +20 -0
- data/vendor/README.md +207 -0
- data/vendor/bin/cssesc +122 -0
- data/vendor/cssesc.js +177 -0
- data/vendor/man/cssesc.1 +70 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/MIT-LICENSE.txt +21 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/README.md +43 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/bin/stripcolorcodes.js +18 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/index.js +3 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/package.json +42 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/fixture/with-colors +2 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/fixture/without-colors +2 -0
- data/vendor/node_modules/grunt-shell/node_modules/stripcolorcodes/test/stripcolorcodes-test.js +20 -0
- data/vendor/node_modules/grunt-shell/package.json +53 -0
- data/vendor/node_modules/grunt-shell/readme.md +221 -0
- data/vendor/node_modules/grunt-shell/tasks/shell.js +54 -0
- data/vendor/node_modules/grunt-template/LICENSE-MIT.txt +20 -0
- data/vendor/node_modules/grunt-template/README.md +123 -0
- data/vendor/node_modules/grunt-template/package.json +50 -0
- data/vendor/node_modules/grunt-template/tasks/template.js +44 -0
- data/vendor/node_modules/grunt/CONTRIBUTING.md +1 -0
- data/vendor/node_modules/grunt/LICENSE-MIT +22 -0
- data/vendor/node_modules/grunt/README.md +16 -0
- data/vendor/node_modules/grunt/internal-tasks/bump.js +151 -0
- data/vendor/node_modules/grunt/internal-tasks/subgrunt.js +34 -0
- data/vendor/node_modules/grunt/lib/grunt.js +156 -0
- data/vendor/node_modules/grunt/lib/grunt/cli.js +128 -0
- data/vendor/node_modules/grunt/lib/grunt/config.js +118 -0
- data/vendor/node_modules/grunt/lib/grunt/event.js +16 -0
- data/vendor/node_modules/grunt/lib/grunt/fail.js +84 -0
- data/vendor/node_modules/grunt/lib/grunt/file.js +440 -0
- data/vendor/node_modules/grunt/lib/grunt/help.js +129 -0
- data/vendor/node_modules/grunt/lib/grunt/log.js +352 -0
- data/vendor/node_modules/grunt/lib/grunt/option.js +42 -0
- data/vendor/node_modules/grunt/lib/grunt/task.js +451 -0
- data/vendor/node_modules/grunt/lib/grunt/template.js +95 -0
- data/vendor/node_modules/grunt/lib/grunt/util.js +188 -0
- data/vendor/node_modules/grunt/lib/util/task.js +323 -0
- data/vendor/node_modules/grunt/node_modules/async/LICENSE +19 -0
- data/vendor/node_modules/grunt/node_modules/async/Makefile +25 -0
- data/vendor/node_modules/grunt/node_modules/async/README.md +1021 -0
- data/vendor/node_modules/grunt/node_modules/async/index.js +3 -0
- data/vendor/node_modules/grunt/node_modules/async/lib/async.js +692 -0
- data/vendor/node_modules/grunt/node_modules/async/package.json +32 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/CNAME +1 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/LICENSE +22 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/README +51 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/Rakefile +78 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/bin/cake +7 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/bin/coffee +7 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/extras/jsl.conf +44 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/browser.js +92 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/cake.js +111 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/coffee-script.js +167 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/command.js +500 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/grammar.js +606 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/helpers.js +77 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/index.js +11 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/lexer.js +788 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/nodes.js +2986 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/optparse.js +138 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/parser.js +683 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/repl.js +261 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/rewriter.js +349 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/lib/coffee-script/scope.js +146 -0
- data/vendor/node_modules/grunt/node_modules/coffee-script/package.json +47 -0
- data/vendor/node_modules/grunt/node_modules/colors/MIT-LICENSE.txt +22 -0
- data/vendor/node_modules/grunt/node_modules/colors/ReadMe.md +77 -0
- data/vendor/node_modules/grunt/node_modules/colors/colors.js +342 -0
- data/vendor/node_modules/grunt/node_modules/colors/example.html +76 -0
- data/vendor/node_modules/grunt/node_modules/colors/example.js +77 -0
- data/vendor/node_modules/grunt/node_modules/colors/package.json +29 -0
- data/vendor/node_modules/grunt/node_modules/colors/test.js +70 -0
- data/vendor/node_modules/grunt/node_modules/colors/themes/winston-dark.js +12 -0
- data/vendor/node_modules/grunt/node_modules/colors/themes/winston-light.js +12 -0
- data/vendor/node_modules/grunt/node_modules/dateformat/Readme.md +67 -0
- data/vendor/node_modules/grunt/node_modules/dateformat/lib/dateformat.js +165 -0
- data/vendor/node_modules/grunt/node_modules/dateformat/package.json +20 -0
- data/vendor/node_modules/grunt/node_modules/dateformat/test/test_weekofyear.js +4 -0
- data/vendor/node_modules/grunt/node_modules/dateformat/test/test_weekofyear.sh +27 -0
- data/vendor/node_modules/grunt/node_modules/eventemitter2/README.md +212 -0
- data/vendor/node_modules/grunt/node_modules/eventemitter2/index.js +1 -0
- data/vendor/node_modules/grunt/node_modules/eventemitter2/lib/eventemitter2.js +561 -0
- data/vendor/node_modules/grunt/node_modules/eventemitter2/package.json +62 -0
- data/vendor/node_modules/grunt/node_modules/exit/Gruntfile.js +48 -0
- data/vendor/node_modules/grunt/node_modules/exit/LICENSE-MIT +22 -0
- data/vendor/node_modules/grunt/node_modules/exit/README.md +75 -0
- data/vendor/node_modules/grunt/node_modules/exit/lib/exit.js +41 -0
- data/vendor/node_modules/grunt/node_modules/exit/package.json +51 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/exit_test.js +121 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stderr.txt +10 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stdout-stderr.txt +20 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/10-stdout.txt +10 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stderr.txt +100 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stdout-stderr.txt +200 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/100-stdout.txt +100 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stderr.txt +1000 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stdout-stderr.txt +2000 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/1000-stdout.txt +1000 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/create-files.sh +8 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/log-broken.js +23 -0
- data/vendor/node_modules/grunt/node_modules/exit/test/fixtures/log.js +25 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/Gruntfile.js +25 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/LICENSE-MIT +22 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/README.md +44 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/lib/findup-sync.js +46 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/README.md +164 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.js +5152 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.compat.min.js +42 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.js +4983 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.min.js +40 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.js +4307 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/dist/lodash.underscore.min.js +34 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/node_modules/lodash/package.json +62 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/package.json +48 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/test/findup-sync_test.js +48 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a.txt +0 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a/b/bar.txt +0 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/a/foo.txt +0 -0
- data/vendor/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt +0 -0
- data/vendor/node_modules/grunt/node_modules/getobject/Gruntfile.js +48 -0
- data/vendor/node_modules/grunt/node_modules/getobject/LICENSE-MIT +22 -0
- data/vendor/node_modules/grunt/node_modules/getobject/README.md +20 -0
- data/vendor/node_modules/grunt/node_modules/getobject/lib/getobject.js +60 -0
- data/vendor/node_modules/grunt/node_modules/getobject/package.json +48 -0
- data/vendor/node_modules/grunt/node_modules/getobject/test/namespace_test.js +51 -0
- data/vendor/node_modules/grunt/node_modules/glob/LICENSE +27 -0
- data/vendor/node_modules/grunt/node_modules/glob/README.md +233 -0
- data/vendor/node_modules/grunt/node_modules/glob/examples/g.js +9 -0
- data/vendor/node_modules/grunt/node_modules/glob/examples/usr-local.js +9 -0
- data/vendor/node_modules/grunt/node_modules/glob/glob.js +643 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/LICENSE +27 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/README.md +33 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/graceful-fs.js +442 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/package.json +49 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/test/open.js +46 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/graceful-fs/test/ulimit.js +158 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/README.md +51 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/inherits.js +29 -0
- data/vendor/node_modules/grunt/node_modules/glob/node_modules/inherits/package.json +30 -0
- data/vendor/node_modules/grunt/node_modules/glob/package.json +40 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/00-setup.js +176 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/bash-comparison.js +63 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/bash-results.json +348 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/cwd-test.js +55 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/mark.js +74 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/nocase-nomagic.js +113 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/pause-resume.js +73 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/root-nomount.js +39 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/root.js +46 -0
- data/vendor/node_modules/grunt/node_modules/glob/test/zz-cleanup.js +11 -0
- data/vendor/node_modules/grunt/node_modules/hooker/LICENSE-MIT +22 -0
- data/vendor/node_modules/grunt/node_modules/hooker/README.md +186 -0
- data/vendor/node_modules/grunt/node_modules/hooker/child.js +101 -0
- data/vendor/node_modules/grunt/node_modules/hooker/dist/ba-hooker.js +169 -0
- data/vendor/node_modules/grunt/node_modules/hooker/dist/ba-hooker.min.js +4 -0
- data/vendor/node_modules/grunt/node_modules/hooker/grunt.js +47 -0
- data/vendor/node_modules/grunt/node_modules/hooker/lib/hooker.js +174 -0
- data/vendor/node_modules/grunt/node_modules/hooker/package.json +45 -0
- data/vendor/node_modules/grunt/node_modules/hooker/parent.js +17 -0
- data/vendor/node_modules/grunt/node_modules/hooker/test/hooker_test.js +435 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/LICENSE +21 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/README.md +72 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/README.md~ +54 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/big5.js +9 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/gbk.js +9 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/singlebyte.js +340 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/table/big5.js +1 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/encodings/table/gbk.js +1 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/generation/generate-big5-table.js +25 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/generation/generate-singlebyte.js +142 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/index.js +231 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/package.json +80 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/big5-test.js +36 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/big5File.txt +13 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/cyrillic-test.js +86 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/gbk-test.js +38 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/gbkFile.txt +14 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/greek-test.js +79 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/main-test.js +55 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/performance.js +67 -0
- data/vendor/node_modules/grunt/node_modules/iconv-lite/test/turkish-test.js +90 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/HISTORY.md +155 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/LICENSE +21 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/README.md +249 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/bin/js-yaml.js +125 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/examples/custom_types.js +104 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/examples/custom_types.yaml +18 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/examples/dumper.js +31 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/examples/dumper.json +22 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/examples/sample_document.js +15 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/examples/sample_document.yaml +197 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/index.js +1 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml.js +33 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/common.js +60 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/dumper.js +437 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/exception.js +25 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/loader.js +1549 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/mark.js +78 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/require.js +23 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema.js +103 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/default.js +16 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/minimal.js +13 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/schema/safe.js +25 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type.js +82 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/binary.js +118 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/bool.js +74 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/float.js +102 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/int.js +85 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/function.js +56 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js +56 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js +28 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/map.js +11 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/merge.js +18 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/null.js +36 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/omap.js +53 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/pairs.js +41 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/seq.js +11 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/set.js +31 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/str.js +11 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/lib/js-yaml/type/timestamp.js +91 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/HISTORY.md +109 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/LICENSE +21 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/README.md +239 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/arguments.js +36 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/choice.js +22 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/constants.js +59 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/help.js +13 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/nargs.js +33 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/parents.js +28 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/prefix_chars.js +23 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/sub_commands.js +49 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/sum.js +35 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/examples/testformatters.js +270 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/index.js +1 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action.js +146 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/append.js +55 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/append/constant.js +47 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/count.js +40 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/help.js +48 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store.js +50 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/constant.js +43 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/false.js +27 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/store/true.js +26 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/subparsers.js +148 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action/version.js +50 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/action_container.js +481 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argparse.js +14 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/error.js +50 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/exclusive.js +54 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument/group.js +75 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/argument_parser.js +1165 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/const.js +18 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/help/added_formatters.js +88 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/help/formatter.js +803 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/lib/namespace.js +77 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Gemfile +4 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Gemfile.lock +17 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/README.markdown +814 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/Rakefile +23 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/component.json +11 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/dist/underscore.string.min.js +1 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/lib/underscore.string.js +673 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/libpeerconnection.log +0 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/package.json +73 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/run-qunit.js +45 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/speed.js +148 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/strings.js +685 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/strings_standalone.js +12 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test.html +31 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_standalone.html +18 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/arrays.js +200 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/chaining.js +59 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/collections.js +426 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/functions.js +259 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/index.html +45 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/objects.js +548 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/speed.js +75 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/utility.js +249 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/jquery.js +9404 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/jslitmus.js +670 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/qunit.css +235 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/test_underscore/vendor/qunit.js +1977 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore.string/test/underscore.js +1201 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/CNAME +1 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/CONTRIBUTING.md +9 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/LICENSE +22 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/README.md +19 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/favicon.ico +0 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/index.html +2467 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/index.js +1 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/package.json +35 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore-min.js +1 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/node_modules/underscore/underscore.js +1226 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/argparse/package.json +50 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/README.md +73 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/bin/esparse.js +117 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/bin/esvalidate.js +177 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/esprima.js +3908 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/package.json +59 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/compat.js +239 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/reflect.js +422 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/run.js +66 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/runner.js +387 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/node_modules/esprima/test/test.js +20238 -0
- data/vendor/node_modules/grunt/node_modules/js-yaml/package.json +60 -0
- data/vendor/node_modules/grunt/node_modules/lodash/README.md +140 -0
- data/vendor/node_modules/grunt/node_modules/lodash/lodash.js +4258 -0
- data/vendor/node_modules/grunt/node_modules/lodash/lodash.min.js +35 -0
- data/vendor/node_modules/grunt/node_modules/lodash/lodash.underscore.js +3688 -0
- data/vendor/node_modules/grunt/node_modules/lodash/lodash.underscore.min.js +28 -0
- data/vendor/node_modules/grunt/node_modules/lodash/package.json +62 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/README.md +218 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/minimatch.js +1055 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/package.json +40 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/test/basic.js +399 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/test/brace-expand.js +33 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/test/caching.js +14 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/test/defaults.js +274 -0
- data/vendor/node_modules/grunt/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
- data/vendor/node_modules/grunt/node_modules/nopt/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/nopt/README.md +208 -0
- data/vendor/node_modules/grunt/node_modules/nopt/bin/nopt.js +44 -0
- data/vendor/node_modules/grunt/node_modules/nopt/examples/my-program.js +30 -0
- data/vendor/node_modules/grunt/node_modules/nopt/lib/nopt.js +552 -0
- data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/README.md +23 -0
- data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/lib/abbrev.js +111 -0
- data/vendor/node_modules/grunt/node_modules/nopt/node_modules/abbrev/package.json +29 -0
- data/vendor/node_modules/grunt/node_modules/nopt/package.json +36 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/AUTHORS +6 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/README.md +21 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/README.md +5 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/graceful-fs.js +312 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/package.json +40 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/node_modules/graceful-fs/test/open.js +41 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/package.json +59 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/rimraf.js +161 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/test/run.sh +10 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/test/setup.sh +47 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/test/test-async.js +5 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/test/test-fiber.js +0 -0
- data/vendor/node_modules/grunt/node_modules/rimraf/test/test-sync.js +3 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/Gemfile +5 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/Gemfile.lock +34 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/README.markdown +668 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/Rakefile +28 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/dist/underscore.string.min.js +1 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/lib/underscore.string.js +525 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/package.json +72 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/run-qunit.js +44 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/speed.js +138 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/strings.js +438 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/strings_standalone.js +12 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test.html +31 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_standalone.html +18 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/arrays.js +166 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/chaining.js +59 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/collections.js +270 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/functions.js +198 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/objects.js +535 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/speed.js +70 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/temp.js +27 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/temp_tests.html +19 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/test.html +43 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/utility.js +155 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/jquery.js +19 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/jslitmus.js +670 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/qunit.css +196 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/test_underscore/vendor/qunit.js +2360 -0
- data/vendor/node_modules/grunt/node_modules/underscore.string/test/underscore.js +999 -0
- data/vendor/node_modules/grunt/node_modules/which/LICENSE +23 -0
- data/vendor/node_modules/grunt/node_modules/which/README.md +5 -0
- data/vendor/node_modules/grunt/node_modules/which/bin/which +14 -0
- data/vendor/node_modules/grunt/node_modules/which/package.json +31 -0
- data/vendor/node_modules/grunt/node_modules/which/which.js +104 -0
- data/vendor/node_modules/grunt/package.json +82 -0
- data/vendor/node_modules/istanbul/CHANGELOG.md +57 -0
- data/vendor/node_modules/istanbul/LICENSE +24 -0
- data/vendor/node_modules/istanbul/README.md +205 -0
- data/vendor/node_modules/istanbul/index.js +115 -0
- data/vendor/node_modules/istanbul/lib/cli.js +74 -0
- data/vendor/node_modules/istanbul/lib/collector.js +121 -0
- data/vendor/node_modules/istanbul/lib/command/check-coverage.js +115 -0
- data/vendor/node_modules/istanbul/lib/command/common/run-with-cover.js +199 -0
- data/vendor/node_modules/istanbul/lib/command/cover.js +33 -0
- data/vendor/node_modules/istanbul/lib/command/help.js +58 -0
- data/vendor/node_modules/istanbul/lib/command/index.js +33 -0
- data/vendor/node_modules/istanbul/lib/command/instrument.js +244 -0
- data/vendor/node_modules/istanbul/lib/command/report.js +97 -0
- data/vendor/node_modules/istanbul/lib/command/test.js +31 -0
- data/vendor/node_modules/istanbul/lib/hook.js +187 -0
- data/vendor/node_modules/istanbul/lib/instrumenter.js +759 -0
- data/vendor/node_modules/istanbul/lib/object-utils.js +341 -0
- data/vendor/node_modules/istanbul/lib/register-plugins.js +15 -0
- data/vendor/node_modules/istanbul/lib/report/cobertura.js +207 -0
- data/vendor/node_modules/istanbul/lib/report/html.js +517 -0
- data/vendor/node_modules/istanbul/lib/report/index.js +60 -0
- data/vendor/node_modules/istanbul/lib/report/json.js +55 -0
- data/vendor/node_modules/istanbul/lib/report/lcov.js +49 -0
- data/vendor/node_modules/istanbul/lib/report/lcovonly.js +93 -0
- data/vendor/node_modules/istanbul/lib/report/none.js +20 -0
- data/vendor/node_modules/istanbul/lib/report/teamcity.js +82 -0
- data/vendor/node_modules/istanbul/lib/report/templates/foot.txt +102 -0
- data/vendor/node_modules/istanbul/lib/report/templates/head.txt +200 -0
- data/vendor/node_modules/istanbul/lib/report/text-summary.js +72 -0
- data/vendor/node_modules/istanbul/lib/report/text.js +210 -0
- data/vendor/node_modules/istanbul/lib/store/fslookup.js +60 -0
- data/vendor/node_modules/istanbul/lib/store/index.js +122 -0
- data/vendor/node_modules/istanbul/lib/store/memory.js +55 -0
- data/vendor/node_modules/istanbul/lib/store/tmp.js +80 -0
- data/vendor/node_modules/istanbul/lib/util/factory.js +88 -0
- data/vendor/node_modules/istanbul/lib/util/file-matcher.js +60 -0
- data/vendor/node_modules/istanbul/lib/util/file-writer.js +131 -0
- data/vendor/node_modules/istanbul/lib/util/flow-control.js +26 -0
- data/vendor/node_modules/istanbul/lib/util/help-formatter.js +24 -0
- data/vendor/node_modules/istanbul/lib/util/input-error.js +12 -0
- data/vendor/node_modules/istanbul/lib/util/insertion-text.js +109 -0
- data/vendor/node_modules/istanbul/lib/util/meta.js +13 -0
- data/vendor/node_modules/istanbul/lib/util/tree-summarizer.js +213 -0
- data/vendor/node_modules/istanbul/lib/util/writer.js +56 -0
- data/vendor/node_modules/istanbul/lib/util/yui-load-hook.js +49 -0
- data/vendor/node_modules/istanbul/lib/vendor/prettify.css +1 -0
- data/vendor/node_modules/istanbul/lib/vendor/prettify.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/abbrev/LICENSE +23 -0
- data/vendor/node_modules/istanbul/node_modules/abbrev/README.md +23 -0
- data/vendor/node_modules/istanbul/node_modules/abbrev/lib/abbrev.js +111 -0
- data/vendor/node_modules/istanbul/node_modules/abbrev/package.json +29 -0
- data/vendor/node_modules/istanbul/node_modules/async/LICENSE +19 -0
- data/vendor/node_modules/istanbul/node_modules/async/README.md +1414 -0
- data/vendor/node_modules/istanbul/node_modules/async/component.json +11 -0
- data/vendor/node_modules/istanbul/node_modules/async/lib/async.js +955 -0
- data/vendor/node_modules/istanbul/node_modules/async/package.json +43 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/LICENSE.BSD +19 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/LICENSE.source-map +27 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/README.md +99 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/bin/escodegen.js +45 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/bin/esgenerate.js +45 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/component.json +48 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/escodegen.browser.js +3072 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/escodegen.js +2275 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/LICENSE.BSD +19 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/README.md +29 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/estraverse.js +315 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/estraverse/package.json +41 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/CHANGELOG.md +112 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/LICENSE +28 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/Makefile.dryice.js +166 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/README.md +434 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/assert-shim.js +56 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/mini-require.js +152 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/prefix-source-map.jsm +20 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/prefix-utils.jsm +18 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-browser.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-source-map.jsm +6 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/suffix-utils.jsm +21 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/test-prefix.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/build/test-suffix.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/array-set.js +97 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/base64.js +42 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/binary-search.js +81 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-consumer.js +477 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/source-node.js +371 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/lib/source-map/util.js +205 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/README.md +171 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/node_modules/amdefine/package.json +36 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/package.json +110 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/run-tests.js +71 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-api.js +26 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-array-set.js +104 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-base64.js +35 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/test-source-node.js +365 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/node_modules/source-map/test/source-map/util.js +161 -0
- data/vendor/node_modules/istanbul/node_modules/escodegen/package.json +58 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/README.md +73 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/bin/esparse.js +117 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/bin/esvalidate.js +177 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/esprima.js +3908 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/package.json +59 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/test/compat.js +239 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/test/reflect.js +422 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/test/run.js +66 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/test/runner.js +387 -0
- data/vendor/node_modules/istanbul/node_modules/esprima/test/test.js +20238 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/LICENSE-MIT +22 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/README.md +87 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/lib/fileset.js +64 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/LICENSE +27 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/README.md +250 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/examples/g.js +9 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/examples/usr-local.js +9 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/glob.js +680 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/LICENSE +16 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/README.md +42 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/inherits_browser.js +23 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/package.json +33 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/node_modules/inherits/test.js +25 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/package.json +39 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/00-setup.js +176 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/bash-comparison.js +63 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/bash-results.json +350 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/cwd-test.js +55 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/globstar-match.js +19 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/mark.js +74 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/new-glob-optional-options.js +10 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/nocase-nomagic.js +113 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/pause-resume.js +73 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/root-nomount.js +39 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/root.js +46 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/stat.js +32 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/glob/test/zz-cleanup.js +11 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/LICENSE +23 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/README.md +218 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/minimatch.js +1055 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/CONTRIBUTORS +14 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +252 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/package.json +33 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/basic.js +369 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/package.json +42 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/package.json +40 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/basic.js +399 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/brace-expand.js +33 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/caching.js +14 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/defaults.js +274 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/node_modules/minimatch/test/extglob-ending-with-state-char.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/package.json +34 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/tests/fixtures/an (odd) filename.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/tests/helper.js +61 -0
- data/vendor/node_modules/istanbul/node_modules/fileset/tests/test.js +133 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/LICENSE +19 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/README.markdown +391 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/bin/handlebars +213 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/bower.json +9 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.js +2278 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.min.js +2 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.runtime.js +362 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/dist/handlebars.runtime.min.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/global-test.js +18 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/global.js +4 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/handlebars-source.gemspec +21 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/handlebars.js.nuspec +17 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars.js +43 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/base.js +166 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/browser-prefix.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/browser-suffix.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/ast.js +138 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/base.js +21 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/compiler.js +1305 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/index.js +16 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/parser.js +483 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/printer.js +138 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/compiler/visitor.js +18 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/runtime.js +106 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/source.rb +11 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/lib/handlebars/utils.js +83 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/min.sh +11 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/LICENSE +21 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/bool.js +10 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/boolean_double.js +7 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/boolean_single.js +7 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/default_hash.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/default_singles.js +7 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/divide.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count.js +20 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count_options.js +29 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/line_count_wrap.js +29 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/nonopt.js +4 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/reflect.js +2 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/short.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/string.js +11 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/usage-options.js +19 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/example/xup.js +10 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/index.js +478 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/package.json +46 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/readme.markdown +487 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_.js +71 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_/argv.js +2 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/_/bin.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/parse.js +446 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/optimist/test/usage.js +292 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/LICENSE +29 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/README.md +588 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/bin/uglifyjs +402 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/ast.js +985 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/compress.js +2028 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/mozilla-ast.js +267 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/output.js +1229 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/parse.js +1410 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/scope.js +581 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/sourcemap.js +81 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/transform.js +217 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/lib/utils.js +295 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/CHANGELOG.md +112 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/LICENSE +28 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/Makefile.dryice.js +166 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/README.md +434 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/assert-shim.js +56 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/mini-require.js +152 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-source-map.jsm +20 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/prefix-utils.jsm +18 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-browser.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-source-map.jsm +6 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/suffix-utils.jsm +21 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-prefix.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/build/test-suffix.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/array-set.js +97 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64-vlq.js +144 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/base64.js +42 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/binary-search.js +81 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-consumer.js +477 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-map-generator.js +380 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/source-node.js +371 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/lib/source-map/util.js +205 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/LICENSE +58 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/README.md +171 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/amdefine.js +299 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/intercept.js +36 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/node_modules/amdefine/package.json +37 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/package.json +110 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/run-tests.js +71 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-api.js +26 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-array-set.js +104 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64-vlq.js +24 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-base64.js +35 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-binary-search.js +54 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-dog-fooding.js +72 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-consumer.js +451 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-map-generator.js +417 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/test-source-node.js +365 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/node_modules/source-map/test/source-map/util.js +161 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/package.json +39 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/arrays.js +12 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/blocks.js +49 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/conditionals.js +143 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/dead-code.js +89 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/debugger.js +24 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/drop-unused.js +97 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-105.js +25 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-12.js +11 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-143.js +48 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-22.js +17 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-44.js +31 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/issue-59.js +30 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/labels.js +163 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/loops.js +123 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/properties.js +54 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/sequences.js +161 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/switch.js +260 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/compress/typeof.js +25 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/test/run-tests.js +170 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/node_modules/uglify-js/tools/node.js +165 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/package.json +42 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/release-notes.md +93 -0
- data/vendor/node_modules/istanbul/node_modules/handlebars/test.js +20 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/LICENSE +21 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/examples/pow.js +6 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/index.js +82 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/package.json +34 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/readme.markdown +63 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/chmod.js +38 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/clobber.js +37 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/mkdirp.js +28 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/perm.js +32 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/perm_sync.js +39 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/race.js +41 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/rel.js +32 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/return.js +25 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/return_sync.js +24 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/root.js +18 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/sync.js +32 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/umask.js +28 -0
- data/vendor/node_modules/istanbul/node_modules/mkdirp/test/umask_sync.js +32 -0
- data/vendor/node_modules/istanbul/node_modules/nopt/LICENSE +23 -0
- data/vendor/node_modules/istanbul/node_modules/nopt/README.md +210 -0
- data/vendor/node_modules/istanbul/node_modules/nopt/bin/nopt.js +51 -0
- data/vendor/node_modules/istanbul/node_modules/nopt/examples/my-program.js +30 -0
- data/vendor/node_modules/istanbul/node_modules/nopt/lib/nopt.js +612 -0
- data/vendor/node_modules/istanbul/node_modules/nopt/package.json +36 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/LICENSE +18 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/example/async.js +5 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/example/sync.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/index.js +5 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/lib/async.js +125 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/lib/caller.js +8 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/lib/core.js +4 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/lib/core.json +38 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/lib/node-modules-paths.js +25 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/lib/sync.js +80 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/package.json +36 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/readme.markdown +144 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/core.js +12 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/filter.js +18 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/filter_sync.js +15 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/mock.js +142 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/mock_sync.js +68 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver.js +270 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/bar/node_modules/foo/index.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/doom.js +0 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/package.json +3 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/baz/quux.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/garply/lib/index.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/garply/package.json +3 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/grux/index.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/biz/node_modules/tiv/index.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/cup.coffee +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/foo.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/mug.coffee +0 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/mug.js +0 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/other_path/root.js +0 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/quux/foo/index.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/without_basedir/main.js +6 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver/without_basedir/node_modules/mymodule.js +1 -0
- data/vendor/node_modules/istanbul/node_modules/resolve/test/resolver_sync.js +170 -0
- data/vendor/node_modules/istanbul/node_modules/which/LICENSE +23 -0
- data/vendor/node_modules/istanbul/node_modules/which/README.md +5 -0
- data/vendor/node_modules/istanbul/node_modules/which/bin/which +14 -0
- data/vendor/node_modules/istanbul/node_modules/which/package.json +32 -0
- data/vendor/node_modules/istanbul/node_modules/which/which.js +104 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/README.markdown +70 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/example/center.js +10 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/example/meat.js +3 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/index.js +76 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/package.json +45 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/test/break.js +30 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/test/idleness.txt +63 -0
- data/vendor/node_modules/istanbul/node_modules/wordwrap/test/wrap.js +31 -0
- data/vendor/node_modules/istanbul/package.json +117 -0
- data/vendor/node_modules/istanbul/test/browser/support/index.html +153 -0
- data/vendor/node_modules/istanbul/test/browser/support/phantom-test.client.js +49 -0
- data/vendor/node_modules/istanbul/test/browser/support/server.js +154 -0
- data/vendor/node_modules/istanbul/test/browser/test-browser-instrumentation.js +94 -0
- data/vendor/node_modules/istanbul/test/cli-helper.js +219 -0
- data/vendor/node_modules/istanbul/test/cli/package.json +8 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/amd/ipsum.js +11 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/amd/lorem.js +7 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/lib/bar.js +13 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/lib/foo.js +12 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/lib/util/bad.js +1 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/lib/util/generate-names.js +5 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/dependency/index.js +9 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/post-require/hook.js +11 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/node_modules/post-require/package.json +5 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/test/amd-run.js +16 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/test/global-leak.js +30 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/test/run.js +25 -0
- data/vendor/node_modules/istanbul/test/cli/sample-project/vendor/dummy_vendor_lib.js +9 -0
- data/vendor/node_modules/istanbul/test/cli/test-base-cli.js +39 -0
- data/vendor/node_modules/istanbul/test/cli/test-check-coverage-command.js +97 -0
- data/vendor/node_modules/istanbul/test/cli/test-cobertura-report.js +54 -0
- data/vendor/node_modules/istanbul/test/cli/test-cover-command.js +170 -0
- data/vendor/node_modules/istanbul/test/cli/test-html-report.js +125 -0
- data/vendor/node_modules/istanbul/test/cli/test-instrument-command.js +167 -0
- data/vendor/node_modules/istanbul/test/cli/test-json-report.js +60 -0
- data/vendor/node_modules/istanbul/test/cli/test-lcov-report.js +58 -0
- data/vendor/node_modules/istanbul/test/cli/test-lcovonly-report.js +61 -0
- data/vendor/node_modules/istanbul/test/cli/test-lots-of-files.js +87 -0
- data/vendor/node_modules/istanbul/test/cli/test-none-report.js +17 -0
- data/vendor/node_modules/istanbul/test/cli/test-report-command.js +65 -0
- data/vendor/node_modules/istanbul/test/cli/test-teamcity-report.js +54 -0
- data/vendor/node_modules/istanbul/test/cli/test-test-command.js +43 -0
- data/vendor/node_modules/istanbul/test/common.js +19 -0
- data/vendor/node_modules/istanbul/test/helper.js +122 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-do.js +53 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-expressions.js +70 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-for.js +206 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-forin.js +50 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-functions.js +102 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-if.js +393 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-misc.js +35 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-statement.js +182 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-strict.js +121 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-switch.js +155 -0
- data/vendor/node_modules/istanbul/test/instrumentation/test-while.js +104 -0
- data/vendor/node_modules/istanbul/test/loader.js +38 -0
- data/vendor/node_modules/istanbul/test/other/data-complete-copy/baz.js +3 -0
- data/vendor/node_modules/istanbul/test/other/data-complete-copy/fixture.xml +1 -0
- data/vendor/node_modules/istanbul/test/other/data-complete-copy/foo.js +4 -0
- data/vendor/node_modules/istanbul/test/other/data-complete-copy/myfile1 +0 -0
- data/vendor/node_modules/istanbul/test/other/data-complete-copy/myfile2 +1 -0
- data/vendor/node_modules/istanbul/test/other/data-complete-copy/subdir/x.css +3 -0
- data/vendor/node_modules/istanbul/test/other/data/baz.js +3 -0
- data/vendor/node_modules/istanbul/test/other/data/foo.js +4 -0
- data/vendor/node_modules/istanbul/test/other/data/matcher/general/general.js +2 -0
- data/vendor/node_modules/istanbul/test/other/data/matcher/general/node_modules/mod-file.js +2 -0
- data/vendor/node_modules/istanbul/test/other/data/matcher/lib/lib-top.js +2 -0
- data/vendor/node_modules/istanbul/test/other/data/matcher/node_modules/dep/mod-file.js +2 -0
- data/vendor/node_modules/istanbul/test/other/data/matcher/node_modules/mod-file.js +2 -0
- data/vendor/node_modules/istanbul/test/other/data/matcher/top.js +2 -0
- data/vendor/node_modules/istanbul/test/other/test-collector.js +85 -0
- data/vendor/node_modules/istanbul/test/other/test-command-xface.js +35 -0
- data/vendor/node_modules/istanbul/test/other/test-file-writer.js +71 -0
- data/vendor/node_modules/istanbul/test/other/test-help-formatter.js +31 -0
- data/vendor/node_modules/istanbul/test/other/test-hook.js +87 -0
- data/vendor/node_modules/istanbul/test/other/test-index-xface.js +17 -0
- data/vendor/node_modules/istanbul/test/other/test-input-error.js +10 -0
- data/vendor/node_modules/istanbul/test/other/test-insertion-text.js +102 -0
- data/vendor/node_modules/istanbul/test/other/test-matcher.js +93 -0
- data/vendor/node_modules/istanbul/test/other/test-object-utils.js +201 -0
- data/vendor/node_modules/istanbul/test/other/test-store.js +129 -0
- data/vendor/node_modules/istanbul/test/other/test-summarizer.js +172 -0
- data/vendor/node_modules/istanbul/test/run-again.js +19 -0
- data/vendor/node_modules/istanbul/test/run.js +108 -0
- data/vendor/node_modules/istanbul/yui-coverage-comparison.md +85 -0
- data/vendor/node_modules/qunit-clib/LICENSE.txt +20 -0
- data/vendor/node_modules/qunit-clib/README.md +2 -0
- data/vendor/node_modules/qunit-clib/package.json +36 -0
- data/vendor/node_modules/qunit-clib/qunit-clib.js +570 -0
- data/vendor/node_modules/qunitjs/AUTHORS.txt +55 -0
- data/vendor/node_modules/qunitjs/History.md +496 -0
- data/vendor/node_modules/qunitjs/README.md +62 -0
- data/vendor/node_modules/qunitjs/addons/canvas/README.md +17 -0
- data/vendor/node_modules/qunitjs/addons/canvas/canvas-test.js +76 -0
- data/vendor/node_modules/qunitjs/addons/canvas/canvas.html +15 -0
- data/vendor/node_modules/qunitjs/addons/canvas/qunit-canvas.js +6 -0
- data/vendor/node_modules/qunitjs/addons/close-enough/README.md +18 -0
- data/vendor/node_modules/qunitjs/addons/close-enough/close-enough-test.js +35 -0
- data/vendor/node_modules/qunitjs/addons/close-enough/close-enough.html +14 -0
- data/vendor/node_modules/qunitjs/addons/close-enough/qunit-close-enough.js +32 -0
- data/vendor/node_modules/qunitjs/addons/composite/README.md +26 -0
- data/vendor/node_modules/qunitjs/addons/composite/composite-demo-test.html +24 -0
- data/vendor/node_modules/qunitjs/addons/composite/index.html +34 -0
- data/vendor/node_modules/qunitjs/addons/composite/qunit-composite.css +13 -0
- data/vendor/node_modules/qunitjs/addons/composite/qunit-composite.js +112 -0
- data/vendor/node_modules/qunitjs/addons/junitlogger/README.md +18 -0
- data/vendor/node_modules/qunitjs/addons/junitlogger/index.html +44 -0
- data/vendor/node_modules/qunitjs/addons/junitlogger/junitlogger.js +306 -0
- data/vendor/node_modules/qunitjs/addons/phantomjs/README.md +16 -0
- data/vendor/node_modules/qunitjs/addons/phantomjs/runner.js +127 -0
- data/vendor/node_modules/qunitjs/addons/step/README.md +20 -0
- data/vendor/node_modules/qunitjs/addons/step/qunit-step.js +26 -0
- data/vendor/node_modules/qunitjs/addons/step/step-test.js +15 -0
- data/vendor/node_modules/qunitjs/addons/step/step.html +14 -0
- data/vendor/node_modules/qunitjs/addons/themes/README.md +6 -0
- data/vendor/node_modules/qunitjs/addons/themes/gabe.css +371 -0
- data/vendor/node_modules/qunitjs/addons/themes/gabe.html +15 -0
- data/vendor/node_modules/qunitjs/addons/themes/ninja.css +196 -0
- data/vendor/node_modules/qunitjs/addons/themes/ninja.html +15 -0
- data/vendor/node_modules/qunitjs/addons/themes/nv.css +217 -0
- data/vendor/node_modules/qunitjs/addons/themes/nv.html +15 -0
- data/vendor/node_modules/qunitjs/grunt.js +101 -0
- data/vendor/node_modules/qunitjs/package.json +49 -0
- data/vendor/node_modules/qunitjs/qunit/qunit.css +244 -0
- data/vendor/node_modules/qunitjs/qunit/qunit.js +2152 -0
- data/vendor/node_modules/qunitjs/test/async.html +26 -0
- data/vendor/node_modules/qunitjs/test/async.js +6 -0
- data/vendor/node_modules/qunitjs/test/deepEqual.js +1438 -0
- data/vendor/node_modules/qunitjs/test/headless.html +28 -0
- data/vendor/node_modules/qunitjs/test/index.html +16 -0
- data/vendor/node_modules/qunitjs/test/logs.html +14 -0
- data/vendor/node_modules/qunitjs/test/logs.js +184 -0
- data/vendor/node_modules/qunitjs/test/narwhal-test.js +22 -0
- data/vendor/node_modules/qunitjs/test/node-test.js +22 -0
- data/vendor/node_modules/qunitjs/test/swarminject.js +10 -0
- data/vendor/node_modules/qunitjs/test/test.js +804 -0
- data/vendor/node_modules/regenerate/LICENSE-MIT.txt +20 -0
- data/vendor/node_modules/regenerate/README.md +467 -0
- data/vendor/node_modules/regenerate/package.json +50 -0
- data/vendor/node_modules/regenerate/regenerate.js +617 -0
- data/vendor/node_modules/requirejs/README.md +9 -0
- data/vendor/node_modules/requirejs/bin/r.js +26059 -0
- data/vendor/node_modules/requirejs/package.json +39 -0
- data/vendor/node_modules/requirejs/require.js +2054 -0
- data/vendor/package.json +56 -0
- metadata +949 -0
@@ -0,0 +1,402 @@
|
|
1
|
+
#! /usr/bin/env node
|
2
|
+
// -*- js -*-
|
3
|
+
|
4
|
+
"use strict";
|
5
|
+
|
6
|
+
var UglifyJS = require("../tools/node");
|
7
|
+
var sys = require("util");
|
8
|
+
var optimist = require("optimist");
|
9
|
+
var fs = require("fs");
|
10
|
+
var async = require("async");
|
11
|
+
var acorn;
|
12
|
+
var ARGS = optimist
|
13
|
+
.usage("$0 input1.js [input2.js ...] [options]\n\
|
14
|
+
Use a single dash to read input from the standard input.\
|
15
|
+
\n\n\
|
16
|
+
NOTE: by default there is no mangling/compression.\n\
|
17
|
+
Without [options] it will simply parse input files and dump the AST\n\
|
18
|
+
with whitespace and comments discarded. To achieve compression and\n\
|
19
|
+
mangling you need to use `-c` and `-m`.\
|
20
|
+
")
|
21
|
+
.describe("source-map", "Specify an output file where to generate source map.")
|
22
|
+
.describe("source-map-root", "The path to the original source to be included in the source map.")
|
23
|
+
.describe("source-map-url", "The path to the source map to be added in //# sourceMappingURL. Defaults to the value passed with --source-map.")
|
24
|
+
.describe("in-source-map", "Input source map, useful if you're compressing JS that was generated from some other original code.")
|
25
|
+
.describe("screw-ie8", "Pass this flag if you don't care about full compliance with Internet Explorer 6-8 quirks (by default UglifyJS will try to be IE-proof).")
|
26
|
+
.describe("expr", "Parse a single expression, rather than a program (for parsing JSON)")
|
27
|
+
.describe("p", "Skip prefix for original filenames that appear in source maps. \
|
28
|
+
For example -p 3 will drop 3 directories from file names and ensure they are relative paths.")
|
29
|
+
.describe("o", "Output file (default STDOUT).")
|
30
|
+
.describe("b", "Beautify output/specify output options.")
|
31
|
+
.describe("m", "Mangle names/pass mangler options.")
|
32
|
+
.describe("r", "Reserved names to exclude from mangling.")
|
33
|
+
.describe("c", "Enable compressor/pass compressor options. \
|
34
|
+
Pass options like -c hoist_vars=false,if_return=false. \
|
35
|
+
Use -c with no argument to use the default compression options.")
|
36
|
+
.describe("d", "Global definitions")
|
37
|
+
.describe("e", "Embed everything in a big function, with a configurable parameter/argument list.")
|
38
|
+
|
39
|
+
.describe("comments", "Preserve copyright comments in the output. \
|
40
|
+
By default this works like Google Closure, keeping JSDoc-style comments that contain \"@license\" or \"@preserve\". \
|
41
|
+
You can optionally pass one of the following arguments to this flag:\n\
|
42
|
+
- \"all\" to keep all comments\n\
|
43
|
+
- a valid JS regexp (needs to start with a slash) to keep only comments that match.\n\
|
44
|
+
\
|
45
|
+
Note that currently not *all* comments can be kept when compression is on, \
|
46
|
+
because of dead code removal or cascading statements into sequences.")
|
47
|
+
|
48
|
+
.describe("stats", "Display operations run time on STDERR.")
|
49
|
+
.describe("acorn", "Use Acorn for parsing.")
|
50
|
+
.describe("spidermonkey", "Assume input files are SpiderMonkey AST format (as JSON).")
|
51
|
+
.describe("self", "Build itself (UglifyJS2) as a library (implies --wrap=UglifyJS --export-all)")
|
52
|
+
.describe("wrap", "Embed everything in a big function, making the “exports” and “global” variables available. \
|
53
|
+
You need to pass an argument to this option to specify the name that your module will take when included in, say, a browser.")
|
54
|
+
.describe("export-all", "Only used when --wrap, this tells UglifyJS to add code to automatically export all globals.")
|
55
|
+
.describe("lint", "Display some scope warnings")
|
56
|
+
.describe("v", "Verbose")
|
57
|
+
.describe("V", "Print version number and exit.")
|
58
|
+
|
59
|
+
.alias("p", "prefix")
|
60
|
+
.alias("o", "output")
|
61
|
+
.alias("v", "verbose")
|
62
|
+
.alias("b", "beautify")
|
63
|
+
.alias("m", "mangle")
|
64
|
+
.alias("c", "compress")
|
65
|
+
.alias("d", "define")
|
66
|
+
.alias("r", "reserved")
|
67
|
+
.alias("V", "version")
|
68
|
+
.alias("e", "enclose")
|
69
|
+
|
70
|
+
.string("source-map")
|
71
|
+
.string("source-map-root")
|
72
|
+
.string("source-map-url")
|
73
|
+
.string("b")
|
74
|
+
.string("m")
|
75
|
+
.string("c")
|
76
|
+
.string("d")
|
77
|
+
.string("e")
|
78
|
+
.string("comments")
|
79
|
+
.string("wrap")
|
80
|
+
|
81
|
+
.boolean("expr")
|
82
|
+
.boolean("screw-ie8")
|
83
|
+
.boolean("export-all")
|
84
|
+
.boolean("self")
|
85
|
+
.boolean("v")
|
86
|
+
.boolean("stats")
|
87
|
+
.boolean("acorn")
|
88
|
+
.boolean("spidermonkey")
|
89
|
+
.boolean("lint")
|
90
|
+
.boolean("V")
|
91
|
+
|
92
|
+
.wrap(80)
|
93
|
+
|
94
|
+
.argv
|
95
|
+
;
|
96
|
+
|
97
|
+
normalize(ARGS);
|
98
|
+
|
99
|
+
if (ARGS.version || ARGS.V) {
|
100
|
+
var json = require("../package.json");
|
101
|
+
sys.puts(json.name + ' ' + json.version);
|
102
|
+
process.exit(0);
|
103
|
+
}
|
104
|
+
|
105
|
+
if (ARGS.ast_help) {
|
106
|
+
var desc = UglifyJS.describe_ast();
|
107
|
+
sys.puts(typeof desc == "string" ? desc : JSON.stringify(desc, null, 2));
|
108
|
+
process.exit(0);
|
109
|
+
}
|
110
|
+
|
111
|
+
if (ARGS.h || ARGS.help) {
|
112
|
+
sys.puts(optimist.help());
|
113
|
+
process.exit(0);
|
114
|
+
}
|
115
|
+
|
116
|
+
if (ARGS.acorn) {
|
117
|
+
acorn = require("acorn");
|
118
|
+
}
|
119
|
+
|
120
|
+
var COMPRESS = getOptions("c", true);
|
121
|
+
var MANGLE = getOptions("m", true);
|
122
|
+
var BEAUTIFY = getOptions("b", true);
|
123
|
+
|
124
|
+
if (ARGS.d) {
|
125
|
+
if (COMPRESS) COMPRESS.global_defs = getOptions("d");
|
126
|
+
}
|
127
|
+
|
128
|
+
if (ARGS.screw_ie8) {
|
129
|
+
if (COMPRESS) COMPRESS.screw_ie8 = true;
|
130
|
+
if (MANGLE) MANGLE.screw_ie8 = true;
|
131
|
+
}
|
132
|
+
|
133
|
+
if (ARGS.r) {
|
134
|
+
if (MANGLE) MANGLE.except = ARGS.r.replace(/^\s+|\s+$/g).split(/\s*,+\s*/);
|
135
|
+
}
|
136
|
+
|
137
|
+
var OUTPUT_OPTIONS = {
|
138
|
+
beautify: BEAUTIFY ? true : false
|
139
|
+
};
|
140
|
+
|
141
|
+
if (BEAUTIFY)
|
142
|
+
UglifyJS.merge(OUTPUT_OPTIONS, BEAUTIFY);
|
143
|
+
|
144
|
+
if (ARGS.comments) {
|
145
|
+
if (/^\//.test(ARGS.comments)) {
|
146
|
+
OUTPUT_OPTIONS.comments = new Function("return(" + ARGS.comments + ")")();
|
147
|
+
} else if (ARGS.comments == "all") {
|
148
|
+
OUTPUT_OPTIONS.comments = true;
|
149
|
+
} else {
|
150
|
+
OUTPUT_OPTIONS.comments = function(node, comment) {
|
151
|
+
var text = comment.value;
|
152
|
+
var type = comment.type;
|
153
|
+
if (type == "comment2") {
|
154
|
+
// multiline comment
|
155
|
+
return /@preserve|@license|@cc_on/i.test(text);
|
156
|
+
}
|
157
|
+
}
|
158
|
+
}
|
159
|
+
}
|
160
|
+
|
161
|
+
var files = ARGS._.slice();
|
162
|
+
|
163
|
+
if (ARGS.self) {
|
164
|
+
if (files.length > 0) {
|
165
|
+
sys.error("WARN: Ignoring input files since --self was passed");
|
166
|
+
}
|
167
|
+
files = UglifyJS.FILES;
|
168
|
+
if (!ARGS.wrap) ARGS.wrap = "UglifyJS";
|
169
|
+
ARGS.export_all = true;
|
170
|
+
}
|
171
|
+
|
172
|
+
var ORIG_MAP = ARGS.in_source_map;
|
173
|
+
|
174
|
+
if (ORIG_MAP) {
|
175
|
+
ORIG_MAP = JSON.parse(fs.readFileSync(ORIG_MAP));
|
176
|
+
if (files.length == 0) {
|
177
|
+
sys.error("INFO: Using file from the input source map: " + ORIG_MAP.file);
|
178
|
+
files = [ ORIG_MAP.file ];
|
179
|
+
}
|
180
|
+
if (ARGS.source_map_root == null) {
|
181
|
+
ARGS.source_map_root = ORIG_MAP.sourceRoot;
|
182
|
+
}
|
183
|
+
}
|
184
|
+
|
185
|
+
if (files.length == 0) {
|
186
|
+
files = [ "-" ];
|
187
|
+
}
|
188
|
+
|
189
|
+
if (files.indexOf("-") >= 0 && ARGS.source_map) {
|
190
|
+
sys.error("ERROR: Source map doesn't work with input from STDIN");
|
191
|
+
process.exit(1);
|
192
|
+
}
|
193
|
+
|
194
|
+
if (files.filter(function(el){ return el == "-" }).length > 1) {
|
195
|
+
sys.error("ERROR: Can read a single file from STDIN (two or more dashes specified)");
|
196
|
+
process.exit(1);
|
197
|
+
}
|
198
|
+
|
199
|
+
var STATS = {};
|
200
|
+
var OUTPUT_FILE = ARGS.o;
|
201
|
+
var TOPLEVEL = null;
|
202
|
+
|
203
|
+
var SOURCE_MAP = ARGS.source_map ? UglifyJS.SourceMap({
|
204
|
+
file: OUTPUT_FILE,
|
205
|
+
root: ARGS.source_map_root,
|
206
|
+
orig: ORIG_MAP,
|
207
|
+
}) : null;
|
208
|
+
|
209
|
+
OUTPUT_OPTIONS.source_map = SOURCE_MAP;
|
210
|
+
|
211
|
+
try {
|
212
|
+
var output = UglifyJS.OutputStream(OUTPUT_OPTIONS);
|
213
|
+
var compressor = COMPRESS && UglifyJS.Compressor(COMPRESS);
|
214
|
+
} catch(ex) {
|
215
|
+
if (ex instanceof UglifyJS.DefaultsError) {
|
216
|
+
sys.error(ex.msg);
|
217
|
+
sys.error("Supported options:");
|
218
|
+
sys.error(sys.inspect(ex.defs));
|
219
|
+
process.exit(1);
|
220
|
+
}
|
221
|
+
}
|
222
|
+
|
223
|
+
async.eachLimit(files, 1, function (file, cb) {
|
224
|
+
read_whole_file(file, function (err, code) {
|
225
|
+
if (err) {
|
226
|
+
sys.error("ERROR: can't read file: " + filename);
|
227
|
+
process.exit(1);
|
228
|
+
}
|
229
|
+
if (ARGS.p != null) {
|
230
|
+
file = file.replace(/^\/+/, "").split(/\/+/).slice(ARGS.p).join("/");
|
231
|
+
}
|
232
|
+
time_it("parse", function(){
|
233
|
+
if (ARGS.spidermonkey) {
|
234
|
+
var program = JSON.parse(code);
|
235
|
+
if (!TOPLEVEL) TOPLEVEL = program;
|
236
|
+
else TOPLEVEL.body = TOPLEVEL.body.concat(program.body);
|
237
|
+
}
|
238
|
+
else if (ARGS.acorn) {
|
239
|
+
TOPLEVEL = acorn.parse(code, {
|
240
|
+
locations : true,
|
241
|
+
trackComments : true,
|
242
|
+
sourceFile : file,
|
243
|
+
program : TOPLEVEL
|
244
|
+
});
|
245
|
+
}
|
246
|
+
else {
|
247
|
+
TOPLEVEL = UglifyJS.parse(code, {
|
248
|
+
filename : file,
|
249
|
+
toplevel : TOPLEVEL,
|
250
|
+
expression : ARGS.expr,
|
251
|
+
});
|
252
|
+
};
|
253
|
+
});
|
254
|
+
cb();
|
255
|
+
});
|
256
|
+
}, function () {
|
257
|
+
if (ARGS.acorn || ARGS.spidermonkey) time_it("convert_ast", function(){
|
258
|
+
TOPLEVEL = UglifyJS.AST_Node.from_mozilla_ast(TOPLEVEL);
|
259
|
+
});
|
260
|
+
|
261
|
+
if (ARGS.wrap) {
|
262
|
+
TOPLEVEL = TOPLEVEL.wrap_commonjs(ARGS.wrap, ARGS.export_all);
|
263
|
+
}
|
264
|
+
|
265
|
+
if (ARGS.enclose) {
|
266
|
+
var arg_parameter_list = ARGS.enclose;
|
267
|
+
|
268
|
+
if (!(arg_parameter_list instanceof Array)) {
|
269
|
+
arg_parameter_list = [arg_parameter_list];
|
270
|
+
}
|
271
|
+
|
272
|
+
TOPLEVEL = TOPLEVEL.wrap_enclose(arg_parameter_list);
|
273
|
+
}
|
274
|
+
|
275
|
+
var SCOPE_IS_NEEDED = COMPRESS || MANGLE || ARGS.lint;
|
276
|
+
|
277
|
+
if (SCOPE_IS_NEEDED) {
|
278
|
+
time_it("scope", function(){
|
279
|
+
TOPLEVEL.figure_out_scope({ screw_ie8: ARGS.screw_ie8 });
|
280
|
+
if (ARGS.lint) {
|
281
|
+
TOPLEVEL.scope_warnings();
|
282
|
+
}
|
283
|
+
});
|
284
|
+
}
|
285
|
+
|
286
|
+
if (COMPRESS) {
|
287
|
+
time_it("squeeze", function(){
|
288
|
+
TOPLEVEL = TOPLEVEL.transform(compressor);
|
289
|
+
});
|
290
|
+
}
|
291
|
+
|
292
|
+
if (SCOPE_IS_NEEDED) {
|
293
|
+
time_it("scope", function(){
|
294
|
+
TOPLEVEL.figure_out_scope({ screw_ie8: ARGS.screw_ie8 });
|
295
|
+
if (MANGLE) {
|
296
|
+
TOPLEVEL.compute_char_frequency(MANGLE);
|
297
|
+
}
|
298
|
+
});
|
299
|
+
}
|
300
|
+
|
301
|
+
if (MANGLE) time_it("mangle", function(){
|
302
|
+
TOPLEVEL.mangle_names(MANGLE);
|
303
|
+
});
|
304
|
+
time_it("generate", function(){
|
305
|
+
TOPLEVEL.print(output);
|
306
|
+
});
|
307
|
+
|
308
|
+
output = output.get();
|
309
|
+
|
310
|
+
if (SOURCE_MAP) {
|
311
|
+
fs.writeFileSync(ARGS.source_map, SOURCE_MAP, "utf8");
|
312
|
+
output += "\n//# sourceMappingURL=" + (ARGS.source_map_url || ARGS.source_map);
|
313
|
+
}
|
314
|
+
|
315
|
+
if (OUTPUT_FILE) {
|
316
|
+
fs.writeFileSync(OUTPUT_FILE, output, "utf8");
|
317
|
+
} else {
|
318
|
+
sys.print(output);
|
319
|
+
sys.error("\n");
|
320
|
+
}
|
321
|
+
|
322
|
+
if (ARGS.stats) {
|
323
|
+
sys.error(UglifyJS.string_template("Timing information (compressed {count} files):", {
|
324
|
+
count: files.length
|
325
|
+
}));
|
326
|
+
for (var i in STATS) if (STATS.hasOwnProperty(i)) {
|
327
|
+
sys.error(UglifyJS.string_template("- {name}: {time}s", {
|
328
|
+
name: i,
|
329
|
+
time: (STATS[i] / 1000).toFixed(3)
|
330
|
+
}));
|
331
|
+
}
|
332
|
+
}
|
333
|
+
});
|
334
|
+
|
335
|
+
/* -----[ functions ]----- */
|
336
|
+
|
337
|
+
function normalize(o) {
|
338
|
+
for (var i in o) if (o.hasOwnProperty(i) && /-/.test(i)) {
|
339
|
+
o[i.replace(/-/g, "_")] = o[i];
|
340
|
+
delete o[i];
|
341
|
+
}
|
342
|
+
}
|
343
|
+
|
344
|
+
function getOptions(x, constants) {
|
345
|
+
x = ARGS[x];
|
346
|
+
if (!x) return null;
|
347
|
+
var ret = {};
|
348
|
+
if (x !== true) {
|
349
|
+
var ast;
|
350
|
+
try {
|
351
|
+
ast = UglifyJS.parse(x);
|
352
|
+
} catch(ex) {
|
353
|
+
if (ex instanceof UglifyJS.JS_Parse_Error) {
|
354
|
+
sys.error("Error parsing arguments in: " + x);
|
355
|
+
process.exit(1);
|
356
|
+
}
|
357
|
+
}
|
358
|
+
ast.walk(new UglifyJS.TreeWalker(function(node){
|
359
|
+
if (node instanceof UglifyJS.AST_Toplevel) return; // descend
|
360
|
+
if (node instanceof UglifyJS.AST_SimpleStatement) return; // descend
|
361
|
+
if (node instanceof UglifyJS.AST_Seq) return; // descend
|
362
|
+
if (node instanceof UglifyJS.AST_Assign) {
|
363
|
+
var name = node.left.print_to_string({ beautify: false }).replace(/-/g, "_");
|
364
|
+
var value = node.right;
|
365
|
+
if (constants)
|
366
|
+
value = new Function("return (" + value.print_to_string() + ")")();
|
367
|
+
ret[name] = value;
|
368
|
+
return true; // no descend
|
369
|
+
}
|
370
|
+
sys.error(node.TYPE)
|
371
|
+
sys.error("Error parsing arguments in: " + x);
|
372
|
+
process.exit(1);
|
373
|
+
}));
|
374
|
+
}
|
375
|
+
return ret;
|
376
|
+
}
|
377
|
+
|
378
|
+
function read_whole_file(filename, cb) {
|
379
|
+
if (filename == "-") {
|
380
|
+
var chunks = [];
|
381
|
+
process.stdin.setEncoding('utf-8');
|
382
|
+
process.stdin.on('data', function (chunk) {
|
383
|
+
chunks.push(chunk);
|
384
|
+
}).on('end', function () {
|
385
|
+
cb(null, chunks.join(""));
|
386
|
+
});
|
387
|
+
process.openStdin();
|
388
|
+
} else {
|
389
|
+
fs.readFile(filename, "utf-8", cb);
|
390
|
+
}
|
391
|
+
}
|
392
|
+
|
393
|
+
function time_it(name, cont) {
|
394
|
+
var t1 = new Date().getTime();
|
395
|
+
var ret = cont();
|
396
|
+
if (ARGS.stats) {
|
397
|
+
var spent = new Date().getTime() - t1;
|
398
|
+
if (STATS[name]) STATS[name] += spent;
|
399
|
+
else STATS[name] = spent;
|
400
|
+
}
|
401
|
+
return ret;
|
402
|
+
}
|
@@ -0,0 +1,985 @@
|
|
1
|
+
/***********************************************************************
|
2
|
+
|
3
|
+
A JavaScript tokenizer / parser / beautifier / compressor.
|
4
|
+
https://github.com/mishoo/UglifyJS2
|
5
|
+
|
6
|
+
-------------------------------- (C) ---------------------------------
|
7
|
+
|
8
|
+
Author: Mihai Bazon
|
9
|
+
<mihai.bazon@gmail.com>
|
10
|
+
http://mihai.bazon.net/blog
|
11
|
+
|
12
|
+
Distributed under the BSD license:
|
13
|
+
|
14
|
+
Copyright 2012 (c) Mihai Bazon <mihai.bazon@gmail.com>
|
15
|
+
|
16
|
+
Redistribution and use in source and binary forms, with or without
|
17
|
+
modification, are permitted provided that the following conditions
|
18
|
+
are met:
|
19
|
+
|
20
|
+
* Redistributions of source code must retain the above
|
21
|
+
copyright notice, this list of conditions and the following
|
22
|
+
disclaimer.
|
23
|
+
|
24
|
+
* Redistributions in binary form must reproduce the above
|
25
|
+
copyright notice, this list of conditions and the following
|
26
|
+
disclaimer in the documentation and/or other materials
|
27
|
+
provided with the distribution.
|
28
|
+
|
29
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER “AS IS” AND ANY
|
30
|
+
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
31
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
32
|
+
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE
|
33
|
+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
|
34
|
+
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
35
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
36
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
37
|
+
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
|
38
|
+
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
|
39
|
+
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
40
|
+
SUCH DAMAGE.
|
41
|
+
|
42
|
+
***********************************************************************/
|
43
|
+
|
44
|
+
"use strict";
|
45
|
+
|
46
|
+
function DEFNODE(type, props, methods, base) {
|
47
|
+
if (arguments.length < 4) base = AST_Node;
|
48
|
+
if (!props) props = [];
|
49
|
+
else props = props.split(/\s+/);
|
50
|
+
var self_props = props;
|
51
|
+
if (base && base.PROPS)
|
52
|
+
props = props.concat(base.PROPS);
|
53
|
+
var code = "return function AST_" + type + "(props){ if (props) { ";
|
54
|
+
for (var i = props.length; --i >= 0;) {
|
55
|
+
code += "this." + props[i] + " = props." + props[i] + ";";
|
56
|
+
}
|
57
|
+
var proto = base && new base;
|
58
|
+
if (proto && proto.initialize || (methods && methods.initialize))
|
59
|
+
code += "this.initialize();";
|
60
|
+
code += "}}";
|
61
|
+
var ctor = new Function(code)();
|
62
|
+
if (proto) {
|
63
|
+
ctor.prototype = proto;
|
64
|
+
ctor.BASE = base;
|
65
|
+
}
|
66
|
+
if (base) base.SUBCLASSES.push(ctor);
|
67
|
+
ctor.prototype.CTOR = ctor;
|
68
|
+
ctor.PROPS = props || null;
|
69
|
+
ctor.SELF_PROPS = self_props;
|
70
|
+
ctor.SUBCLASSES = [];
|
71
|
+
if (type) {
|
72
|
+
ctor.prototype.TYPE = ctor.TYPE = type;
|
73
|
+
}
|
74
|
+
if (methods) for (i in methods) if (methods.hasOwnProperty(i)) {
|
75
|
+
if (/^\$/.test(i)) {
|
76
|
+
ctor[i.substr(1)] = methods[i];
|
77
|
+
} else {
|
78
|
+
ctor.prototype[i] = methods[i];
|
79
|
+
}
|
80
|
+
}
|
81
|
+
ctor.DEFMETHOD = function(name, method) {
|
82
|
+
this.prototype[name] = method;
|
83
|
+
};
|
84
|
+
return ctor;
|
85
|
+
};
|
86
|
+
|
87
|
+
var AST_Token = DEFNODE("Token", "type value line col pos endpos nlb comments_before file", {
|
88
|
+
}, null);
|
89
|
+
|
90
|
+
var AST_Node = DEFNODE("Node", "start end", {
|
91
|
+
clone: function() {
|
92
|
+
return new this.CTOR(this);
|
93
|
+
},
|
94
|
+
$documentation: "Base class of all AST nodes",
|
95
|
+
$propdoc: {
|
96
|
+
start: "[AST_Token] The first token of this node",
|
97
|
+
end: "[AST_Token] The last token of this node"
|
98
|
+
},
|
99
|
+
_walk: function(visitor) {
|
100
|
+
return visitor._visit(this);
|
101
|
+
},
|
102
|
+
walk: function(visitor) {
|
103
|
+
return this._walk(visitor); // not sure the indirection will be any help
|
104
|
+
}
|
105
|
+
}, null);
|
106
|
+
|
107
|
+
AST_Node.warn_function = null;
|
108
|
+
AST_Node.warn = function(txt, props) {
|
109
|
+
if (AST_Node.warn_function)
|
110
|
+
AST_Node.warn_function(string_template(txt, props));
|
111
|
+
};
|
112
|
+
|
113
|
+
/* -----[ statements ]----- */
|
114
|
+
|
115
|
+
var AST_Statement = DEFNODE("Statement", null, {
|
116
|
+
$documentation: "Base class of all statements",
|
117
|
+
});
|
118
|
+
|
119
|
+
var AST_Debugger = DEFNODE("Debugger", null, {
|
120
|
+
$documentation: "Represents a debugger statement",
|
121
|
+
}, AST_Statement);
|
122
|
+
|
123
|
+
var AST_Directive = DEFNODE("Directive", "value scope", {
|
124
|
+
$documentation: "Represents a directive, like \"use strict\";",
|
125
|
+
$propdoc: {
|
126
|
+
value: "[string] The value of this directive as a plain string (it's not an AST_String!)",
|
127
|
+
scope: "[AST_Scope/S] The scope that this directive affects"
|
128
|
+
},
|
129
|
+
}, AST_Statement);
|
130
|
+
|
131
|
+
var AST_SimpleStatement = DEFNODE("SimpleStatement", "body", {
|
132
|
+
$documentation: "A statement consisting of an expression, i.e. a = 1 + 2",
|
133
|
+
$propdoc: {
|
134
|
+
body: "[AST_Node] an expression node (should not be instanceof AST_Statement)"
|
135
|
+
},
|
136
|
+
_walk: function(visitor) {
|
137
|
+
return visitor._visit(this, function(){
|
138
|
+
this.body._walk(visitor);
|
139
|
+
});
|
140
|
+
}
|
141
|
+
}, AST_Statement);
|
142
|
+
|
143
|
+
function walk_body(node, visitor) {
|
144
|
+
if (node.body instanceof AST_Statement) {
|
145
|
+
node.body._walk(visitor);
|
146
|
+
}
|
147
|
+
else node.body.forEach(function(stat){
|
148
|
+
stat._walk(visitor);
|
149
|
+
});
|
150
|
+
};
|
151
|
+
|
152
|
+
var AST_Block = DEFNODE("Block", "body", {
|
153
|
+
$documentation: "A body of statements (usually bracketed)",
|
154
|
+
$propdoc: {
|
155
|
+
body: "[AST_Statement*] an array of statements"
|
156
|
+
},
|
157
|
+
_walk: function(visitor) {
|
158
|
+
return visitor._visit(this, function(){
|
159
|
+
walk_body(this, visitor);
|
160
|
+
});
|
161
|
+
}
|
162
|
+
}, AST_Statement);
|
163
|
+
|
164
|
+
var AST_BlockStatement = DEFNODE("BlockStatement", null, {
|
165
|
+
$documentation: "A block statement",
|
166
|
+
}, AST_Block);
|
167
|
+
|
168
|
+
var AST_EmptyStatement = DEFNODE("EmptyStatement", null, {
|
169
|
+
$documentation: "The empty statement (empty block or simply a semicolon)",
|
170
|
+
_walk: function(visitor) {
|
171
|
+
return visitor._visit(this);
|
172
|
+
}
|
173
|
+
}, AST_Statement);
|
174
|
+
|
175
|
+
var AST_StatementWithBody = DEFNODE("StatementWithBody", "body", {
|
176
|
+
$documentation: "Base class for all statements that contain one nested body: `For`, `ForIn`, `Do`, `While`, `With`",
|
177
|
+
$propdoc: {
|
178
|
+
body: "[AST_Statement] the body; this should always be present, even if it's an AST_EmptyStatement"
|
179
|
+
},
|
180
|
+
_walk: function(visitor) {
|
181
|
+
return visitor._visit(this, function(){
|
182
|
+
this.body._walk(visitor);
|
183
|
+
});
|
184
|
+
}
|
185
|
+
}, AST_Statement);
|
186
|
+
|
187
|
+
var AST_LabeledStatement = DEFNODE("LabeledStatement", "label", {
|
188
|
+
$documentation: "Statement with a label",
|
189
|
+
$propdoc: {
|
190
|
+
label: "[AST_Label] a label definition"
|
191
|
+
},
|
192
|
+
_walk: function(visitor) {
|
193
|
+
return visitor._visit(this, function(){
|
194
|
+
this.label._walk(visitor);
|
195
|
+
this.body._walk(visitor);
|
196
|
+
});
|
197
|
+
}
|
198
|
+
}, AST_StatementWithBody);
|
199
|
+
|
200
|
+
var AST_DWLoop = DEFNODE("DWLoop", "condition", {
|
201
|
+
$documentation: "Base class for do/while statements",
|
202
|
+
$propdoc: {
|
203
|
+
condition: "[AST_Node] the loop condition. Should not be instanceof AST_Statement"
|
204
|
+
},
|
205
|
+
_walk: function(visitor) {
|
206
|
+
return visitor._visit(this, function(){
|
207
|
+
this.condition._walk(visitor);
|
208
|
+
this.body._walk(visitor);
|
209
|
+
});
|
210
|
+
}
|
211
|
+
}, AST_StatementWithBody);
|
212
|
+
|
213
|
+
var AST_Do = DEFNODE("Do", null, {
|
214
|
+
$documentation: "A `do` statement",
|
215
|
+
}, AST_DWLoop);
|
216
|
+
|
217
|
+
var AST_While = DEFNODE("While", null, {
|
218
|
+
$documentation: "A `while` statement",
|
219
|
+
}, AST_DWLoop);
|
220
|
+
|
221
|
+
var AST_For = DEFNODE("For", "init condition step", {
|
222
|
+
$documentation: "A `for` statement",
|
223
|
+
$propdoc: {
|
224
|
+
init: "[AST_Node?] the `for` initialization code, or null if empty",
|
225
|
+
condition: "[AST_Node?] the `for` termination clause, or null if empty",
|
226
|
+
step: "[AST_Node?] the `for` update clause, or null if empty"
|
227
|
+
},
|
228
|
+
_walk: function(visitor) {
|
229
|
+
return visitor._visit(this, function(){
|
230
|
+
if (this.init) this.init._walk(visitor);
|
231
|
+
if (this.condition) this.condition._walk(visitor);
|
232
|
+
if (this.step) this.step._walk(visitor);
|
233
|
+
this.body._walk(visitor);
|
234
|
+
});
|
235
|
+
}
|
236
|
+
}, AST_StatementWithBody);
|
237
|
+
|
238
|
+
var AST_ForIn = DEFNODE("ForIn", "init name object", {
|
239
|
+
$documentation: "A `for ... in` statement",
|
240
|
+
$propdoc: {
|
241
|
+
init: "[AST_Node] the `for/in` initialization code",
|
242
|
+
name: "[AST_SymbolRef?] the loop variable, only if `init` is AST_Var",
|
243
|
+
object: "[AST_Node] the object that we're looping through"
|
244
|
+
},
|
245
|
+
_walk: function(visitor) {
|
246
|
+
return visitor._visit(this, function(){
|
247
|
+
this.init._walk(visitor);
|
248
|
+
this.object._walk(visitor);
|
249
|
+
this.body._walk(visitor);
|
250
|
+
});
|
251
|
+
}
|
252
|
+
}, AST_StatementWithBody);
|
253
|
+
|
254
|
+
var AST_With = DEFNODE("With", "expression", {
|
255
|
+
$documentation: "A `with` statement",
|
256
|
+
$propdoc: {
|
257
|
+
expression: "[AST_Node] the `with` expression"
|
258
|
+
},
|
259
|
+
_walk: function(visitor) {
|
260
|
+
return visitor._visit(this, function(){
|
261
|
+
this.expression._walk(visitor);
|
262
|
+
this.body._walk(visitor);
|
263
|
+
});
|
264
|
+
}
|
265
|
+
}, AST_StatementWithBody);
|
266
|
+
|
267
|
+
/* -----[ scope and functions ]----- */
|
268
|
+
|
269
|
+
var AST_Scope = DEFNODE("Scope", "directives variables functions uses_with uses_eval parent_scope enclosed cname", {
|
270
|
+
$documentation: "Base class for all statements introducing a lexical scope",
|
271
|
+
$propdoc: {
|
272
|
+
directives: "[string*/S] an array of directives declared in this scope",
|
273
|
+
variables: "[Object/S] a map of name -> SymbolDef for all variables/functions defined in this scope",
|
274
|
+
functions: "[Object/S] like `variables`, but only lists function declarations",
|
275
|
+
uses_with: "[boolean/S] tells whether this scope uses the `with` statement",
|
276
|
+
uses_eval: "[boolean/S] tells whether this scope contains a direct call to the global `eval`",
|
277
|
+
parent_scope: "[AST_Scope?/S] link to the parent scope",
|
278
|
+
enclosed: "[SymbolDef*/S] a list of all symbol definitions that are accessed from this scope or any subscopes",
|
279
|
+
cname: "[integer/S] current index for mangling variables (used internally by the mangler)",
|
280
|
+
},
|
281
|
+
}, AST_Block);
|
282
|
+
|
283
|
+
var AST_Toplevel = DEFNODE("Toplevel", "globals", {
|
284
|
+
$documentation: "The toplevel scope",
|
285
|
+
$propdoc: {
|
286
|
+
globals: "[Object/S] a map of name -> SymbolDef for all undeclared names",
|
287
|
+
},
|
288
|
+
wrap_enclose: function(arg_parameter_pairs) {
|
289
|
+
var self = this;
|
290
|
+
var args = [];
|
291
|
+
var parameters = [];
|
292
|
+
|
293
|
+
arg_parameter_pairs.forEach(function(pair) {
|
294
|
+
var split = pair.split(":");
|
295
|
+
|
296
|
+
args.push(split[0]);
|
297
|
+
parameters.push(split[1]);
|
298
|
+
});
|
299
|
+
|
300
|
+
var wrapped_tl = "(function(" + parameters.join(",") + "){ '$ORIG'; })(" + args.join(",") + ")";
|
301
|
+
wrapped_tl = parse(wrapped_tl);
|
302
|
+
wrapped_tl = wrapped_tl.transform(new TreeTransformer(function before(node){
|
303
|
+
if (node instanceof AST_Directive && node.value == "$ORIG") {
|
304
|
+
return MAP.splice(self.body);
|
305
|
+
}
|
306
|
+
}));
|
307
|
+
return wrapped_tl;
|
308
|
+
},
|
309
|
+
wrap_commonjs: function(name, export_all) {
|
310
|
+
var self = this;
|
311
|
+
var to_export = [];
|
312
|
+
if (export_all) {
|
313
|
+
self.figure_out_scope();
|
314
|
+
self.walk(new TreeWalker(function(node){
|
315
|
+
if (node instanceof AST_SymbolDeclaration && node.definition().global) {
|
316
|
+
if (!find_if(function(n){ return n.name == node.name }, to_export))
|
317
|
+
to_export.push(node);
|
318
|
+
}
|
319
|
+
}));
|
320
|
+
}
|
321
|
+
var wrapped_tl = "(function(exports, global){ global['" + name + "'] = exports; '$ORIG'; '$EXPORTS'; }({}, (function(){return this}())))";
|
322
|
+
wrapped_tl = parse(wrapped_tl);
|
323
|
+
wrapped_tl = wrapped_tl.transform(new TreeTransformer(function before(node){
|
324
|
+
if (node instanceof AST_SimpleStatement) {
|
325
|
+
node = node.body;
|
326
|
+
if (node instanceof AST_String) switch (node.getValue()) {
|
327
|
+
case "$ORIG":
|
328
|
+
return MAP.splice(self.body);
|
329
|
+
case "$EXPORTS":
|
330
|
+
var body = [];
|
331
|
+
to_export.forEach(function(sym){
|
332
|
+
body.push(new AST_SimpleStatement({
|
333
|
+
body: new AST_Assign({
|
334
|
+
left: new AST_Sub({
|
335
|
+
expression: new AST_SymbolRef({ name: "exports" }),
|
336
|
+
property: new AST_String({ value: sym.name }),
|
337
|
+
}),
|
338
|
+
operator: "=",
|
339
|
+
right: new AST_SymbolRef(sym),
|
340
|
+
}),
|
341
|
+
}));
|
342
|
+
});
|
343
|
+
return MAP.splice(body);
|
344
|
+
}
|
345
|
+
}
|
346
|
+
}));
|
347
|
+
return wrapped_tl;
|
348
|
+
}
|
349
|
+
}, AST_Scope);
|
350
|
+
|
351
|
+
var AST_Lambda = DEFNODE("Lambda", "name argnames uses_arguments", {
|
352
|
+
$documentation: "Base class for functions",
|
353
|
+
$propdoc: {
|
354
|
+
name: "[AST_SymbolDeclaration?] the name of this function",
|
355
|
+
argnames: "[AST_SymbolFunarg*] array of function arguments",
|
356
|
+
uses_arguments: "[boolean/S] tells whether this function accesses the arguments array"
|
357
|
+
},
|
358
|
+
_walk: function(visitor) {
|
359
|
+
return visitor._visit(this, function(){
|
360
|
+
if (this.name) this.name._walk(visitor);
|
361
|
+
this.argnames.forEach(function(arg){
|
362
|
+
arg._walk(visitor);
|
363
|
+
});
|
364
|
+
walk_body(this, visitor);
|
365
|
+
});
|
366
|
+
}
|
367
|
+
}, AST_Scope);
|
368
|
+
|
369
|
+
var AST_Accessor = DEFNODE("Accessor", null, {
|
370
|
+
$documentation: "A setter/getter function"
|
371
|
+
}, AST_Lambda);
|
372
|
+
|
373
|
+
var AST_Function = DEFNODE("Function", null, {
|
374
|
+
$documentation: "A function expression"
|
375
|
+
}, AST_Lambda);
|
376
|
+
|
377
|
+
var AST_Defun = DEFNODE("Defun", null, {
|
378
|
+
$documentation: "A function definition"
|
379
|
+
}, AST_Lambda);
|
380
|
+
|
381
|
+
/* -----[ JUMPS ]----- */
|
382
|
+
|
383
|
+
var AST_Jump = DEFNODE("Jump", null, {
|
384
|
+
$documentation: "Base class for “jumps” (for now that's `return`, `throw`, `break` and `continue`)"
|
385
|
+
}, AST_Statement);
|
386
|
+
|
387
|
+
var AST_Exit = DEFNODE("Exit", "value", {
|
388
|
+
$documentation: "Base class for “exits” (`return` and `throw`)",
|
389
|
+
$propdoc: {
|
390
|
+
value: "[AST_Node?] the value returned or thrown by this statement; could be null for AST_Return"
|
391
|
+
},
|
392
|
+
_walk: function(visitor) {
|
393
|
+
return visitor._visit(this, this.value && function(){
|
394
|
+
this.value._walk(visitor);
|
395
|
+
});
|
396
|
+
}
|
397
|
+
}, AST_Jump);
|
398
|
+
|
399
|
+
var AST_Return = DEFNODE("Return", null, {
|
400
|
+
$documentation: "A `return` statement"
|
401
|
+
}, AST_Exit);
|
402
|
+
|
403
|
+
var AST_Throw = DEFNODE("Throw", null, {
|
404
|
+
$documentation: "A `throw` statement"
|
405
|
+
}, AST_Exit);
|
406
|
+
|
407
|
+
var AST_LoopControl = DEFNODE("LoopControl", "label", {
|
408
|
+
$documentation: "Base class for loop control statements (`break` and `continue`)",
|
409
|
+
$propdoc: {
|
410
|
+
label: "[AST_LabelRef?] the label, or null if none",
|
411
|
+
},
|
412
|
+
_walk: function(visitor) {
|
413
|
+
return visitor._visit(this, this.label && function(){
|
414
|
+
this.label._walk(visitor);
|
415
|
+
});
|
416
|
+
}
|
417
|
+
}, AST_Jump);
|
418
|
+
|
419
|
+
var AST_Break = DEFNODE("Break", null, {
|
420
|
+
$documentation: "A `break` statement"
|
421
|
+
}, AST_LoopControl);
|
422
|
+
|
423
|
+
var AST_Continue = DEFNODE("Continue", null, {
|
424
|
+
$documentation: "A `continue` statement"
|
425
|
+
}, AST_LoopControl);
|
426
|
+
|
427
|
+
/* -----[ IF ]----- */
|
428
|
+
|
429
|
+
var AST_If = DEFNODE("If", "condition alternative", {
|
430
|
+
$documentation: "A `if` statement",
|
431
|
+
$propdoc: {
|
432
|
+
condition: "[AST_Node] the `if` condition",
|
433
|
+
alternative: "[AST_Statement?] the `else` part, or null if not present"
|
434
|
+
},
|
435
|
+
_walk: function(visitor) {
|
436
|
+
return visitor._visit(this, function(){
|
437
|
+
this.condition._walk(visitor);
|
438
|
+
this.body._walk(visitor);
|
439
|
+
if (this.alternative) this.alternative._walk(visitor);
|
440
|
+
});
|
441
|
+
}
|
442
|
+
}, AST_StatementWithBody);
|
443
|
+
|
444
|
+
/* -----[ SWITCH ]----- */
|
445
|
+
|
446
|
+
var AST_Switch = DEFNODE("Switch", "expression", {
|
447
|
+
$documentation: "A `switch` statement",
|
448
|
+
$propdoc: {
|
449
|
+
expression: "[AST_Node] the `switch` “discriminant”"
|
450
|
+
},
|
451
|
+
_walk: function(visitor) {
|
452
|
+
return visitor._visit(this, function(){
|
453
|
+
this.expression._walk(visitor);
|
454
|
+
walk_body(this, visitor);
|
455
|
+
});
|
456
|
+
}
|
457
|
+
}, AST_Block);
|
458
|
+
|
459
|
+
var AST_SwitchBranch = DEFNODE("SwitchBranch", null, {
|
460
|
+
$documentation: "Base class for `switch` branches",
|
461
|
+
}, AST_Block);
|
462
|
+
|
463
|
+
var AST_Default = DEFNODE("Default", null, {
|
464
|
+
$documentation: "A `default` switch branch",
|
465
|
+
}, AST_SwitchBranch);
|
466
|
+
|
467
|
+
var AST_Case = DEFNODE("Case", "expression", {
|
468
|
+
$documentation: "A `case` switch branch",
|
469
|
+
$propdoc: {
|
470
|
+
expression: "[AST_Node] the `case` expression"
|
471
|
+
},
|
472
|
+
_walk: function(visitor) {
|
473
|
+
return visitor._visit(this, function(){
|
474
|
+
this.expression._walk(visitor);
|
475
|
+
walk_body(this, visitor);
|
476
|
+
});
|
477
|
+
}
|
478
|
+
}, AST_SwitchBranch);
|
479
|
+
|
480
|
+
/* -----[ EXCEPTIONS ]----- */
|
481
|
+
|
482
|
+
var AST_Try = DEFNODE("Try", "bcatch bfinally", {
|
483
|
+
$documentation: "A `try` statement",
|
484
|
+
$propdoc: {
|
485
|
+
bcatch: "[AST_Catch?] the catch block, or null if not present",
|
486
|
+
bfinally: "[AST_Finally?] the finally block, or null if not present"
|
487
|
+
},
|
488
|
+
_walk: function(visitor) {
|
489
|
+
return visitor._visit(this, function(){
|
490
|
+
walk_body(this, visitor);
|
491
|
+
if (this.bcatch) this.bcatch._walk(visitor);
|
492
|
+
if (this.bfinally) this.bfinally._walk(visitor);
|
493
|
+
});
|
494
|
+
}
|
495
|
+
}, AST_Block);
|
496
|
+
|
497
|
+
// XXX: this is wrong according to ECMA-262 (12.4). the catch block
|
498
|
+
// should introduce another scope, as the argname should be visible
|
499
|
+
// only inside the catch block. However, doing it this way because of
|
500
|
+
// IE which simply introduces the name in the surrounding scope. If
|
501
|
+
// we ever want to fix this then AST_Catch should inherit from
|
502
|
+
// AST_Scope.
|
503
|
+
var AST_Catch = DEFNODE("Catch", "argname", {
|
504
|
+
$documentation: "A `catch` node; only makes sense as part of a `try` statement",
|
505
|
+
$propdoc: {
|
506
|
+
argname: "[AST_SymbolCatch] symbol for the exception"
|
507
|
+
},
|
508
|
+
_walk: function(visitor) {
|
509
|
+
return visitor._visit(this, function(){
|
510
|
+
this.argname._walk(visitor);
|
511
|
+
walk_body(this, visitor);
|
512
|
+
});
|
513
|
+
}
|
514
|
+
}, AST_Block);
|
515
|
+
|
516
|
+
var AST_Finally = DEFNODE("Finally", null, {
|
517
|
+
$documentation: "A `finally` node; only makes sense as part of a `try` statement"
|
518
|
+
}, AST_Block);
|
519
|
+
|
520
|
+
/* -----[ VAR/CONST ]----- */
|
521
|
+
|
522
|
+
var AST_Definitions = DEFNODE("Definitions", "definitions", {
|
523
|
+
$documentation: "Base class for `var` or `const` nodes (variable declarations/initializations)",
|
524
|
+
$propdoc: {
|
525
|
+
definitions: "[AST_VarDef*] array of variable definitions"
|
526
|
+
},
|
527
|
+
_walk: function(visitor) {
|
528
|
+
return visitor._visit(this, function(){
|
529
|
+
this.definitions.forEach(function(def){
|
530
|
+
def._walk(visitor);
|
531
|
+
});
|
532
|
+
});
|
533
|
+
}
|
534
|
+
}, AST_Statement);
|
535
|
+
|
536
|
+
var AST_Var = DEFNODE("Var", null, {
|
537
|
+
$documentation: "A `var` statement"
|
538
|
+
}, AST_Definitions);
|
539
|
+
|
540
|
+
var AST_Const = DEFNODE("Const", null, {
|
541
|
+
$documentation: "A `const` statement"
|
542
|
+
}, AST_Definitions);
|
543
|
+
|
544
|
+
var AST_VarDef = DEFNODE("VarDef", "name value", {
|
545
|
+
$documentation: "A variable declaration; only appears in a AST_Definitions node",
|
546
|
+
$propdoc: {
|
547
|
+
name: "[AST_SymbolVar|AST_SymbolConst] name of the variable",
|
548
|
+
value: "[AST_Node?] initializer, or null of there's no initializer"
|
549
|
+
},
|
550
|
+
_walk: function(visitor) {
|
551
|
+
return visitor._visit(this, function(){
|
552
|
+
this.name._walk(visitor);
|
553
|
+
if (this.value) this.value._walk(visitor);
|
554
|
+
});
|
555
|
+
}
|
556
|
+
});
|
557
|
+
|
558
|
+
/* -----[ OTHER ]----- */
|
559
|
+
|
560
|
+
var AST_Call = DEFNODE("Call", "expression args", {
|
561
|
+
$documentation: "A function call expression",
|
562
|
+
$propdoc: {
|
563
|
+
expression: "[AST_Node] expression to invoke as function",
|
564
|
+
args: "[AST_Node*] array of arguments"
|
565
|
+
},
|
566
|
+
_walk: function(visitor) {
|
567
|
+
return visitor._visit(this, function(){
|
568
|
+
this.expression._walk(visitor);
|
569
|
+
this.args.forEach(function(arg){
|
570
|
+
arg._walk(visitor);
|
571
|
+
});
|
572
|
+
});
|
573
|
+
}
|
574
|
+
});
|
575
|
+
|
576
|
+
var AST_New = DEFNODE("New", null, {
|
577
|
+
$documentation: "An object instantiation. Derives from a function call since it has exactly the same properties"
|
578
|
+
}, AST_Call);
|
579
|
+
|
580
|
+
var AST_Seq = DEFNODE("Seq", "car cdr", {
|
581
|
+
$documentation: "A sequence expression (two comma-separated expressions)",
|
582
|
+
$propdoc: {
|
583
|
+
car: "[AST_Node] first element in sequence",
|
584
|
+
cdr: "[AST_Node] second element in sequence"
|
585
|
+
},
|
586
|
+
$cons: function(x, y) {
|
587
|
+
var seq = new AST_Seq(x);
|
588
|
+
seq.car = x;
|
589
|
+
seq.cdr = y;
|
590
|
+
return seq;
|
591
|
+
},
|
592
|
+
$from_array: function(array) {
|
593
|
+
if (array.length == 0) return null;
|
594
|
+
if (array.length == 1) return array[0].clone();
|
595
|
+
var list = null;
|
596
|
+
for (var i = array.length; --i >= 0;) {
|
597
|
+
list = AST_Seq.cons(array[i], list);
|
598
|
+
}
|
599
|
+
var p = list;
|
600
|
+
while (p) {
|
601
|
+
if (p.cdr && !p.cdr.cdr) {
|
602
|
+
p.cdr = p.cdr.car;
|
603
|
+
break;
|
604
|
+
}
|
605
|
+
p = p.cdr;
|
606
|
+
}
|
607
|
+
return list;
|
608
|
+
},
|
609
|
+
to_array: function() {
|
610
|
+
var p = this, a = [];
|
611
|
+
while (p) {
|
612
|
+
a.push(p.car);
|
613
|
+
if (p.cdr && !(p.cdr instanceof AST_Seq)) {
|
614
|
+
a.push(p.cdr);
|
615
|
+
break;
|
616
|
+
}
|
617
|
+
p = p.cdr;
|
618
|
+
}
|
619
|
+
return a;
|
620
|
+
},
|
621
|
+
add: function(node) {
|
622
|
+
var p = this;
|
623
|
+
while (p) {
|
624
|
+
if (!(p.cdr instanceof AST_Seq)) {
|
625
|
+
var cell = AST_Seq.cons(p.cdr, node);
|
626
|
+
return p.cdr = cell;
|
627
|
+
}
|
628
|
+
p = p.cdr;
|
629
|
+
}
|
630
|
+
},
|
631
|
+
_walk: function(visitor) {
|
632
|
+
return visitor._visit(this, function(){
|
633
|
+
this.car._walk(visitor);
|
634
|
+
if (this.cdr) this.cdr._walk(visitor);
|
635
|
+
});
|
636
|
+
}
|
637
|
+
});
|
638
|
+
|
639
|
+
var AST_PropAccess = DEFNODE("PropAccess", "expression property", {
|
640
|
+
$documentation: "Base class for property access expressions, i.e. `a.foo` or `a[\"foo\"]`",
|
641
|
+
$propdoc: {
|
642
|
+
expression: "[AST_Node] the “container” expression",
|
643
|
+
property: "[AST_Node|string] the property to access. For AST_Dot this is always a plain string, while for AST_Sub it's an arbitrary AST_Node"
|
644
|
+
}
|
645
|
+
});
|
646
|
+
|
647
|
+
var AST_Dot = DEFNODE("Dot", null, {
|
648
|
+
$documentation: "A dotted property access expression",
|
649
|
+
_walk: function(visitor) {
|
650
|
+
return visitor._visit(this, function(){
|
651
|
+
this.expression._walk(visitor);
|
652
|
+
});
|
653
|
+
}
|
654
|
+
}, AST_PropAccess);
|
655
|
+
|
656
|
+
var AST_Sub = DEFNODE("Sub", null, {
|
657
|
+
$documentation: "Index-style property access, i.e. `a[\"foo\"]`",
|
658
|
+
_walk: function(visitor) {
|
659
|
+
return visitor._visit(this, function(){
|
660
|
+
this.expression._walk(visitor);
|
661
|
+
this.property._walk(visitor);
|
662
|
+
});
|
663
|
+
}
|
664
|
+
}, AST_PropAccess);
|
665
|
+
|
666
|
+
var AST_Unary = DEFNODE("Unary", "operator expression", {
|
667
|
+
$documentation: "Base class for unary expressions",
|
668
|
+
$propdoc: {
|
669
|
+
operator: "[string] the operator",
|
670
|
+
expression: "[AST_Node] expression that this unary operator applies to"
|
671
|
+
},
|
672
|
+
_walk: function(visitor) {
|
673
|
+
return visitor._visit(this, function(){
|
674
|
+
this.expression._walk(visitor);
|
675
|
+
});
|
676
|
+
}
|
677
|
+
});
|
678
|
+
|
679
|
+
var AST_UnaryPrefix = DEFNODE("UnaryPrefix", null, {
|
680
|
+
$documentation: "Unary prefix expression, i.e. `typeof i` or `++i`"
|
681
|
+
}, AST_Unary);
|
682
|
+
|
683
|
+
var AST_UnaryPostfix = DEFNODE("UnaryPostfix", null, {
|
684
|
+
$documentation: "Unary postfix expression, i.e. `i++`"
|
685
|
+
}, AST_Unary);
|
686
|
+
|
687
|
+
var AST_Binary = DEFNODE("Binary", "left operator right", {
|
688
|
+
$documentation: "Binary expression, i.e. `a + b`",
|
689
|
+
$propdoc: {
|
690
|
+
left: "[AST_Node] left-hand side expression",
|
691
|
+
operator: "[string] the operator",
|
692
|
+
right: "[AST_Node] right-hand side expression"
|
693
|
+
},
|
694
|
+
_walk: function(visitor) {
|
695
|
+
return visitor._visit(this, function(){
|
696
|
+
this.left._walk(visitor);
|
697
|
+
this.right._walk(visitor);
|
698
|
+
});
|
699
|
+
}
|
700
|
+
});
|
701
|
+
|
702
|
+
var AST_Conditional = DEFNODE("Conditional", "condition consequent alternative", {
|
703
|
+
$documentation: "Conditional expression using the ternary operator, i.e. `a ? b : c`",
|
704
|
+
$propdoc: {
|
705
|
+
condition: "[AST_Node]",
|
706
|
+
consequent: "[AST_Node]",
|
707
|
+
alternative: "[AST_Node]"
|
708
|
+
},
|
709
|
+
_walk: function(visitor) {
|
710
|
+
return visitor._visit(this, function(){
|
711
|
+
this.condition._walk(visitor);
|
712
|
+
this.consequent._walk(visitor);
|
713
|
+
this.alternative._walk(visitor);
|
714
|
+
});
|
715
|
+
}
|
716
|
+
});
|
717
|
+
|
718
|
+
var AST_Assign = DEFNODE("Assign", null, {
|
719
|
+
$documentation: "An assignment expression — `a = b + 5`",
|
720
|
+
}, AST_Binary);
|
721
|
+
|
722
|
+
/* -----[ LITERALS ]----- */
|
723
|
+
|
724
|
+
var AST_Array = DEFNODE("Array", "elements", {
|
725
|
+
$documentation: "An array literal",
|
726
|
+
$propdoc: {
|
727
|
+
elements: "[AST_Node*] array of elements"
|
728
|
+
},
|
729
|
+
_walk: function(visitor) {
|
730
|
+
return visitor._visit(this, function(){
|
731
|
+
this.elements.forEach(function(el){
|
732
|
+
el._walk(visitor);
|
733
|
+
});
|
734
|
+
});
|
735
|
+
}
|
736
|
+
});
|
737
|
+
|
738
|
+
var AST_Object = DEFNODE("Object", "properties", {
|
739
|
+
$documentation: "An object literal",
|
740
|
+
$propdoc: {
|
741
|
+
properties: "[AST_ObjectProperty*] array of properties"
|
742
|
+
},
|
743
|
+
_walk: function(visitor) {
|
744
|
+
return visitor._visit(this, function(){
|
745
|
+
this.properties.forEach(function(prop){
|
746
|
+
prop._walk(visitor);
|
747
|
+
});
|
748
|
+
});
|
749
|
+
}
|
750
|
+
});
|
751
|
+
|
752
|
+
var AST_ObjectProperty = DEFNODE("ObjectProperty", "key value", {
|
753
|
+
$documentation: "Base class for literal object properties",
|
754
|
+
$propdoc: {
|
755
|
+
key: "[string] the property name; it's always a plain string in our AST, no matter if it was a string, number or identifier in original code",
|
756
|
+
value: "[AST_Node] property value. For setters and getters this is an AST_Function."
|
757
|
+
},
|
758
|
+
_walk: function(visitor) {
|
759
|
+
return visitor._visit(this, function(){
|
760
|
+
this.value._walk(visitor);
|
761
|
+
});
|
762
|
+
}
|
763
|
+
});
|
764
|
+
|
765
|
+
var AST_ObjectKeyVal = DEFNODE("ObjectKeyVal", null, {
|
766
|
+
$documentation: "A key: value object property",
|
767
|
+
}, AST_ObjectProperty);
|
768
|
+
|
769
|
+
var AST_ObjectSetter = DEFNODE("ObjectSetter", null, {
|
770
|
+
$documentation: "An object setter property",
|
771
|
+
}, AST_ObjectProperty);
|
772
|
+
|
773
|
+
var AST_ObjectGetter = DEFNODE("ObjectGetter", null, {
|
774
|
+
$documentation: "An object getter property",
|
775
|
+
}, AST_ObjectProperty);
|
776
|
+
|
777
|
+
var AST_Symbol = DEFNODE("Symbol", "scope name thedef", {
|
778
|
+
$propdoc: {
|
779
|
+
name: "[string] name of this symbol",
|
780
|
+
scope: "[AST_Scope/S] the current scope (not necessarily the definition scope)",
|
781
|
+
thedef: "[SymbolDef/S] the definition of this symbol"
|
782
|
+
},
|
783
|
+
$documentation: "Base class for all symbols",
|
784
|
+
});
|
785
|
+
|
786
|
+
var AST_SymbolAccessor = DEFNODE("SymbolAccessor", null, {
|
787
|
+
$documentation: "The name of a property accessor (setter/getter function)"
|
788
|
+
}, AST_Symbol);
|
789
|
+
|
790
|
+
var AST_SymbolDeclaration = DEFNODE("SymbolDeclaration", "init", {
|
791
|
+
$documentation: "A declaration symbol (symbol in var/const, function name or argument, symbol in catch)",
|
792
|
+
$propdoc: {
|
793
|
+
init: "[AST_Node*/S] array of initializers for this declaration."
|
794
|
+
}
|
795
|
+
}, AST_Symbol);
|
796
|
+
|
797
|
+
var AST_SymbolVar = DEFNODE("SymbolVar", null, {
|
798
|
+
$documentation: "Symbol defining a variable",
|
799
|
+
}, AST_SymbolDeclaration);
|
800
|
+
|
801
|
+
var AST_SymbolConst = DEFNODE("SymbolConst", null, {
|
802
|
+
$documentation: "A constant declaration"
|
803
|
+
}, AST_SymbolDeclaration);
|
804
|
+
|
805
|
+
var AST_SymbolFunarg = DEFNODE("SymbolFunarg", null, {
|
806
|
+
$documentation: "Symbol naming a function argument",
|
807
|
+
}, AST_SymbolVar);
|
808
|
+
|
809
|
+
var AST_SymbolDefun = DEFNODE("SymbolDefun", null, {
|
810
|
+
$documentation: "Symbol defining a function",
|
811
|
+
}, AST_SymbolDeclaration);
|
812
|
+
|
813
|
+
var AST_SymbolLambda = DEFNODE("SymbolLambda", null, {
|
814
|
+
$documentation: "Symbol naming a function expression",
|
815
|
+
}, AST_SymbolDeclaration);
|
816
|
+
|
817
|
+
var AST_SymbolCatch = DEFNODE("SymbolCatch", null, {
|
818
|
+
$documentation: "Symbol naming the exception in catch",
|
819
|
+
}, AST_SymbolDeclaration);
|
820
|
+
|
821
|
+
var AST_Label = DEFNODE("Label", "references", {
|
822
|
+
$documentation: "Symbol naming a label (declaration)",
|
823
|
+
$propdoc: {
|
824
|
+
references: "[AST_LabelRef*] a list of nodes referring to this label"
|
825
|
+
}
|
826
|
+
}, AST_Symbol);
|
827
|
+
|
828
|
+
var AST_SymbolRef = DEFNODE("SymbolRef", null, {
|
829
|
+
$documentation: "Reference to some symbol (not definition/declaration)",
|
830
|
+
}, AST_Symbol);
|
831
|
+
|
832
|
+
var AST_LabelRef = DEFNODE("LabelRef", null, {
|
833
|
+
$documentation: "Reference to a label symbol",
|
834
|
+
}, AST_Symbol);
|
835
|
+
|
836
|
+
var AST_This = DEFNODE("This", null, {
|
837
|
+
$documentation: "The `this` symbol",
|
838
|
+
}, AST_Symbol);
|
839
|
+
|
840
|
+
var AST_Constant = DEFNODE("Constant", null, {
|
841
|
+
$documentation: "Base class for all constants",
|
842
|
+
getValue: function() {
|
843
|
+
return this.value;
|
844
|
+
}
|
845
|
+
});
|
846
|
+
|
847
|
+
var AST_String = DEFNODE("String", "value", {
|
848
|
+
$documentation: "A string literal",
|
849
|
+
$propdoc: {
|
850
|
+
value: "[string] the contents of this string"
|
851
|
+
}
|
852
|
+
}, AST_Constant);
|
853
|
+
|
854
|
+
var AST_Number = DEFNODE("Number", "value", {
|
855
|
+
$documentation: "A number literal",
|
856
|
+
$propdoc: {
|
857
|
+
value: "[number] the numeric value"
|
858
|
+
}
|
859
|
+
}, AST_Constant);
|
860
|
+
|
861
|
+
var AST_RegExp = DEFNODE("RegExp", "value", {
|
862
|
+
$documentation: "A regexp literal",
|
863
|
+
$propdoc: {
|
864
|
+
value: "[RegExp] the actual regexp"
|
865
|
+
}
|
866
|
+
}, AST_Constant);
|
867
|
+
|
868
|
+
var AST_Atom = DEFNODE("Atom", null, {
|
869
|
+
$documentation: "Base class for atoms",
|
870
|
+
}, AST_Constant);
|
871
|
+
|
872
|
+
var AST_Null = DEFNODE("Null", null, {
|
873
|
+
$documentation: "The `null` atom",
|
874
|
+
value: null
|
875
|
+
}, AST_Atom);
|
876
|
+
|
877
|
+
var AST_NaN = DEFNODE("NaN", null, {
|
878
|
+
$documentation: "The impossible value",
|
879
|
+
value: 0/0
|
880
|
+
}, AST_Atom);
|
881
|
+
|
882
|
+
var AST_Undefined = DEFNODE("Undefined", null, {
|
883
|
+
$documentation: "The `undefined` value",
|
884
|
+
value: (function(){}())
|
885
|
+
}, AST_Atom);
|
886
|
+
|
887
|
+
var AST_Hole = DEFNODE("Hole", null, {
|
888
|
+
$documentation: "A hole in an array",
|
889
|
+
value: (function(){}())
|
890
|
+
}, AST_Atom);
|
891
|
+
|
892
|
+
var AST_Infinity = DEFNODE("Infinity", null, {
|
893
|
+
$documentation: "The `Infinity` value",
|
894
|
+
value: 1/0
|
895
|
+
}, AST_Atom);
|
896
|
+
|
897
|
+
var AST_Boolean = DEFNODE("Boolean", null, {
|
898
|
+
$documentation: "Base class for booleans",
|
899
|
+
}, AST_Atom);
|
900
|
+
|
901
|
+
var AST_False = DEFNODE("False", null, {
|
902
|
+
$documentation: "The `false` atom",
|
903
|
+
value: false
|
904
|
+
}, AST_Boolean);
|
905
|
+
|
906
|
+
var AST_True = DEFNODE("True", null, {
|
907
|
+
$documentation: "The `true` atom",
|
908
|
+
value: true
|
909
|
+
}, AST_Boolean);
|
910
|
+
|
911
|
+
/* -----[ TreeWalker ]----- */
|
912
|
+
|
913
|
+
function TreeWalker(callback) {
|
914
|
+
this.visit = callback;
|
915
|
+
this.stack = [];
|
916
|
+
};
|
917
|
+
TreeWalker.prototype = {
|
918
|
+
_visit: function(node, descend) {
|
919
|
+
this.stack.push(node);
|
920
|
+
var ret = this.visit(node, descend ? function(){
|
921
|
+
descend.call(node);
|
922
|
+
} : noop);
|
923
|
+
if (!ret && descend) {
|
924
|
+
descend.call(node);
|
925
|
+
}
|
926
|
+
this.stack.pop();
|
927
|
+
return ret;
|
928
|
+
},
|
929
|
+
parent: function(n) {
|
930
|
+
return this.stack[this.stack.length - 2 - (n || 0)];
|
931
|
+
},
|
932
|
+
push: function (node) {
|
933
|
+
this.stack.push(node);
|
934
|
+
},
|
935
|
+
pop: function() {
|
936
|
+
return this.stack.pop();
|
937
|
+
},
|
938
|
+
self: function() {
|
939
|
+
return this.stack[this.stack.length - 1];
|
940
|
+
},
|
941
|
+
find_parent: function(type) {
|
942
|
+
var stack = this.stack;
|
943
|
+
for (var i = stack.length; --i >= 0;) {
|
944
|
+
var x = stack[i];
|
945
|
+
if (x instanceof type) return x;
|
946
|
+
}
|
947
|
+
},
|
948
|
+
in_boolean_context: function() {
|
949
|
+
var stack = this.stack;
|
950
|
+
var i = stack.length, self = stack[--i];
|
951
|
+
while (i > 0) {
|
952
|
+
var p = stack[--i];
|
953
|
+
if ((p instanceof AST_If && p.condition === self) ||
|
954
|
+
(p instanceof AST_Conditional && p.condition === self) ||
|
955
|
+
(p instanceof AST_DWLoop && p.condition === self) ||
|
956
|
+
(p instanceof AST_For && p.condition === self) ||
|
957
|
+
(p instanceof AST_UnaryPrefix && p.operator == "!" && p.expression === self))
|
958
|
+
{
|
959
|
+
return true;
|
960
|
+
}
|
961
|
+
if (!(p instanceof AST_Binary && (p.operator == "&&" || p.operator == "||")))
|
962
|
+
return false;
|
963
|
+
self = p;
|
964
|
+
}
|
965
|
+
},
|
966
|
+
loopcontrol_target: function(label) {
|
967
|
+
var stack = this.stack;
|
968
|
+
if (label) {
|
969
|
+
for (var i = stack.length; --i >= 0;) {
|
970
|
+
var x = stack[i];
|
971
|
+
if (x instanceof AST_LabeledStatement && x.label.name == label.name) {
|
972
|
+
return x.body;
|
973
|
+
}
|
974
|
+
}
|
975
|
+
} else {
|
976
|
+
for (var i = stack.length; --i >= 0;) {
|
977
|
+
var x = stack[i];
|
978
|
+
if (x instanceof AST_Switch
|
979
|
+
|| x instanceof AST_For
|
980
|
+
|| x instanceof AST_ForIn
|
981
|
+
|| x instanceof AST_DWLoop) return x;
|
982
|
+
}
|
983
|
+
}
|
984
|
+
}
|
985
|
+
};
|