jass 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +47 -0
- data/README.md +45 -0
- data/lib/jass.rb +55 -0
- data/lib/jass/base.rb +141 -0
- data/lib/jass/bundle_processor.rb +28 -0
- data/lib/jass/compiler.rb +112 -0
- data/lib/jass/dependency.rb +14 -0
- data/lib/jass/errors.rb +29 -0
- data/lib/jass/es6_processor.rb +17 -0
- data/lib/jass/function.rb +13 -0
- data/lib/jass/global_directive_processor.rb +12 -0
- data/lib/jass/plugin.rb +13 -0
- data/lib/jass/railtie.rb +12 -0
- data/lib/jass/version.rb +3 -0
- data/vendor/node_modules/@types/acorn/index.d.ts +256 -0
- data/vendor/node_modules/@types/acorn/package.json +29 -0
- data/vendor/node_modules/@types/estree/index.d.ts +546 -0
- data/vendor/node_modules/@types/estree/package.json +22 -0
- data/vendor/node_modules/acorn-dynamic-import/lib/index.js +17 -0
- data/vendor/node_modules/acorn-dynamic-import/lib/inject.js +72 -0
- data/vendor/node_modules/acorn-dynamic-import/lib/walk.js +22 -0
- data/vendor/node_modules/acorn-dynamic-import/package.json +45 -0
- data/vendor/node_modules/acorn-dynamic-import/src/index.js +4 -0
- data/vendor/node_modules/acorn-dynamic-import/src/inject.js +52 -0
- data/vendor/node_modules/acorn-dynamic-import/src/walk.js +12 -0
- data/vendor/node_modules/acorn-es7-plugin/acorn-es7-plugin.js +17 -0
- data/vendor/node_modules/acorn-es7-plugin/acorn-v3.js +333 -0
- data/vendor/node_modules/acorn-es7-plugin/acorn-v4.js +194 -0
- data/vendor/node_modules/acorn-es7-plugin/package.json +29 -0
- data/vendor/node_modules/acorn-jsx/index.js +3 -0
- data/vendor/node_modules/acorn-jsx/inject.js +449 -0
- data/vendor/node_modules/acorn-jsx/package.json +28 -0
- data/vendor/node_modules/acorn-jsx/xhtml.js +255 -0
- data/vendor/node_modules/acorn/bin/_acorn.js +69 -0
- data/vendor/node_modules/acorn/bin/acorn +4 -0
- data/vendor/node_modules/acorn/bin/run_test262.js +22 -0
- data/vendor/node_modules/acorn/bin/test262.whitelist +409 -0
- data/vendor/node_modules/acorn/dist/acorn.es.js +5305 -0
- data/vendor/node_modules/acorn/dist/acorn.js +5336 -0
- data/vendor/node_modules/acorn/dist/acorn_loose.es.js +1412 -0
- data/vendor/node_modules/acorn/dist/acorn_loose.js +1422 -0
- data/vendor/node_modules/acorn/dist/walk.es.js +419 -0
- data/vendor/node_modules/acorn/dist/walk.js +439 -0
- data/vendor/node_modules/acorn/package.json +56 -0
- data/vendor/node_modules/ansi-styles/index.js +165 -0
- data/vendor/node_modules/ansi-styles/package.json +56 -0
- data/vendor/node_modules/arr-diff/index.js +58 -0
- data/vendor/node_modules/arr-diff/package.json +49 -0
- data/vendor/node_modules/arr-flatten/index.js +22 -0
- data/vendor/node_modules/arr-flatten/package.json +76 -0
- data/vendor/node_modules/array-unique/index.js +28 -0
- data/vendor/node_modules/array-unique/package.json +37 -0
- data/vendor/node_modules/braces/index.js +399 -0
- data/vendor/node_modules/braces/package.json +83 -0
- data/vendor/node_modules/buble/bin/buble +24 -0
- data/vendor/node_modules/buble/bin/handleError.js +58 -0
- data/vendor/node_modules/buble/bin/runBuble.js +150 -0
- data/vendor/node_modules/buble/bin/showHelp.js +16 -0
- data/vendor/node_modules/buble/dist/buble-browser-deps.umd.js +14857 -0
- data/vendor/node_modules/buble/dist/buble-browser.cjs.js +9941 -0
- data/vendor/node_modules/buble/dist/buble-browser.es.js +9933 -0
- data/vendor/node_modules/buble/dist/buble.cjs.js +9433 -0
- data/vendor/node_modules/buble/dist/buble.es.js +9425 -0
- data/vendor/node_modules/buble/package.json +74 -0
- data/vendor/node_modules/buble/register.js +90 -0
- data/vendor/node_modules/buble/src/index.js +98 -0
- data/vendor/node_modules/buble/src/program/BlockStatement.js +373 -0
- data/vendor/node_modules/buble/src/program/Node.js +112 -0
- data/vendor/node_modules/buble/src/program/Program.js +74 -0
- data/vendor/node_modules/buble/src/program/Scope.js +116 -0
- data/vendor/node_modules/buble/src/program/extractNames.js +35 -0
- data/vendor/node_modules/buble/src/program/keys.js +4 -0
- data/vendor/node_modules/buble/src/program/types/ArrayExpression.js +70 -0
- data/vendor/node_modules/buble/src/program/types/ArrowFunctionExpression.js +52 -0
- data/vendor/node_modules/buble/src/program/types/AssignmentExpression.js +185 -0
- data/vendor/node_modules/buble/src/program/types/BinaryExpression.js +12 -0
- data/vendor/node_modules/buble/src/program/types/BreakStatement.js +26 -0
- data/vendor/node_modules/buble/src/program/types/CallExpression.js +104 -0
- data/vendor/node_modules/buble/src/program/types/ClassBody.js +237 -0
- data/vendor/node_modules/buble/src/program/types/ClassDeclaration.js +79 -0
- data/vendor/node_modules/buble/src/program/types/ClassExpression.js +51 -0
- data/vendor/node_modules/buble/src/program/types/ContinueStatement.js +17 -0
- data/vendor/node_modules/buble/src/program/types/ExportDefaultDeclaration.js +10 -0
- data/vendor/node_modules/buble/src/program/types/ExportNamedDeclaration.js +10 -0
- data/vendor/node_modules/buble/src/program/types/ForInStatement.js +76 -0
- data/vendor/node_modules/buble/src/program/types/ForOfStatement.js +89 -0
- data/vendor/node_modules/buble/src/program/types/ForStatement.js +54 -0
- data/vendor/node_modules/buble/src/program/types/FunctionDeclaration.js +25 -0
- data/vendor/node_modules/buble/src/program/types/FunctionExpression.js +74 -0
- data/vendor/node_modules/buble/src/program/types/Identifier.js +54 -0
- data/vendor/node_modules/buble/src/program/types/IfStatement.js +29 -0
- data/vendor/node_modules/buble/src/program/types/ImportDeclaration.js +10 -0
- data/vendor/node_modules/buble/src/program/types/ImportDefaultSpecifier.js +8 -0
- data/vendor/node_modules/buble/src/program/types/ImportSpecifier.js +8 -0
- data/vendor/node_modules/buble/src/program/types/JSXAttribute.js +20 -0
- data/vendor/node_modules/buble/src/program/types/JSXClosingElement.js +27 -0
- data/vendor/node_modules/buble/src/program/types/JSXClosingFragment.js +22 -0
- data/vendor/node_modules/buble/src/program/types/JSXElement.js +57 -0
- data/vendor/node_modules/buble/src/program/types/JSXExpressionContainer.js +10 -0
- data/vendor/node_modules/buble/src/program/types/JSXFragment.js +4 -0
- data/vendor/node_modules/buble/src/program/types/JSXOpeningElement.js +93 -0
- data/vendor/node_modules/buble/src/program/types/JSXOpeningFragment.js +7 -0
- data/vendor/node_modules/buble/src/program/types/JSXSpreadAttribute.js +10 -0
- data/vendor/node_modules/buble/src/program/types/Literal.js +43 -0
- data/vendor/node_modules/buble/src/program/types/MemberExpression.js +13 -0
- data/vendor/node_modules/buble/src/program/types/NewExpression.js +55 -0
- data/vendor/node_modules/buble/src/program/types/ObjectExpression.js +250 -0
- data/vendor/node_modules/buble/src/program/types/Property.js +52 -0
- data/vendor/node_modules/buble/src/program/types/ReturnStatement.js +32 -0
- data/vendor/node_modules/buble/src/program/types/SpreadElement.js +12 -0
- data/vendor/node_modules/buble/src/program/types/Super.js +88 -0
- data/vendor/node_modules/buble/src/program/types/TaggedTemplateExpression.js +63 -0
- data/vendor/node_modules/buble/src/program/types/TemplateElement.js +7 -0
- data/vendor/node_modules/buble/src/program/types/TemplateLiteral.js +80 -0
- data/vendor/node_modules/buble/src/program/types/ThisExpression.js +31 -0
- data/vendor/node_modules/buble/src/program/types/UpdateExpression.js +32 -0
- data/vendor/node_modules/buble/src/program/types/VariableDeclaration.js +101 -0
- data/vendor/node_modules/buble/src/program/types/VariableDeclarator.js +43 -0
- data/vendor/node_modules/buble/src/program/types/index.js +98 -0
- data/vendor/node_modules/buble/src/program/types/shared/LoopStatement.js +105 -0
- data/vendor/node_modules/buble/src/program/types/shared/ModuleDeclaration.js +10 -0
- data/vendor/node_modules/buble/src/program/wrap.js +68 -0
- data/vendor/node_modules/buble/src/support.js +97 -0
- data/vendor/node_modules/buble/src/utils/CompileError.js +30 -0
- data/vendor/node_modules/buble/src/utils/array.js +11 -0
- data/vendor/node_modules/buble/src/utils/checkConst.js +8 -0
- data/vendor/node_modules/buble/src/utils/deindent.js +30 -0
- data/vendor/node_modules/buble/src/utils/destructure.js +377 -0
- data/vendor/node_modules/buble/src/utils/getSnippet.js +30 -0
- data/vendor/node_modules/buble/src/utils/isReference.js +41 -0
- data/vendor/node_modules/buble/src/utils/locate.js +20 -0
- data/vendor/node_modules/buble/src/utils/patterns.js +1 -0
- data/vendor/node_modules/buble/src/utils/removeTrailingComma.js +13 -0
- data/vendor/node_modules/buble/src/utils/reserved.js +6 -0
- data/vendor/node_modules/buble/src/utils/spread.js +70 -0
- data/vendor/node_modules/builtin-modules/builtin-modules.json +39 -0
- data/vendor/node_modules/builtin-modules/index.js +10 -0
- data/vendor/node_modules/builtin-modules/package.json +40 -0
- data/vendor/node_modules/builtin-modules/static.js +2 -0
- data/vendor/node_modules/chalk/index.js +228 -0
- data/vendor/node_modules/chalk/package.json +66 -0
- data/vendor/node_modules/chalk/templates.js +128 -0
- data/vendor/node_modules/chalk/types/index.d.ts +97 -0
- data/vendor/node_modules/color-convert/conversions.js +861 -0
- data/vendor/node_modules/color-convert/index.js +78 -0
- data/vendor/node_modules/color-convert/package.json +46 -0
- data/vendor/node_modules/color-convert/route.js +97 -0
- data/vendor/node_modules/color-name/index.js +152 -0
- data/vendor/node_modules/color-name/package.json +25 -0
- data/vendor/node_modules/color-name/test.js +7 -0
- data/vendor/node_modules/date-time/index.js +33 -0
- data/vendor/node_modules/date-time/package.json +39 -0
- data/vendor/node_modules/escape-string-regexp/index.js +11 -0
- data/vendor/node_modules/escape-string-regexp/package.json +41 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.es.js +57 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.umd.js +68 -0
- data/vendor/node_modules/estree-walker/package.json +34 -0
- data/vendor/node_modules/estree-walker/src/estree-walker.js +51 -0
- data/vendor/node_modules/expand-brackets/index.js +163 -0
- data/vendor/node_modules/expand-brackets/package.json +62 -0
- data/vendor/node_modules/expand-range/index.js +43 -0
- data/vendor/node_modules/expand-range/package.json +73 -0
- data/vendor/node_modules/extglob/index.js +178 -0
- data/vendor/node_modules/extglob/package.json +60 -0
- data/vendor/node_modules/filename-regex/index.js +10 -0
- data/vendor/node_modules/filename-regex/package.json +50 -0
- data/vendor/node_modules/fill-range/index.js +408 -0
- data/vendor/node_modules/fill-range/package.json +61 -0
- data/vendor/node_modules/for-in/index.js +16 -0
- data/vendor/node_modules/for-in/package.json +68 -0
- data/vendor/node_modules/for-own/index.js +19 -0
- data/vendor/node_modules/for-own/package.json +70 -0
- data/vendor/node_modules/glob-base/index.js +51 -0
- data/vendor/node_modules/glob-base/package.json +52 -0
- data/vendor/node_modules/glob-parent/index.js +10 -0
- data/vendor/node_modules/glob-parent/package.json +35 -0
- data/vendor/node_modules/glob-parent/test.js +28 -0
- data/vendor/node_modules/has-flag/index.js +8 -0
- data/vendor/node_modules/has-flag/package.json +44 -0
- data/vendor/node_modules/irregular-plurals/irregular-plurals.json +146 -0
- data/vendor/node_modules/irregular-plurals/package.json +39 -0
- data/vendor/node_modules/is-buffer/index.js +21 -0
- data/vendor/node_modules/is-buffer/package.json +51 -0
- data/vendor/node_modules/is-dotfile/index.js +14 -0
- data/vendor/node_modules/is-dotfile/package.json +69 -0
- data/vendor/node_modules/is-equal-shallow/index.js +27 -0
- data/vendor/node_modules/is-equal-shallow/package.json +54 -0
- data/vendor/node_modules/is-extendable/index.js +13 -0
- data/vendor/node_modules/is-extendable/package.json +51 -0
- data/vendor/node_modules/is-extglob/index.js +11 -0
- data/vendor/node_modules/is-extglob/package.json +48 -0
- data/vendor/node_modules/is-glob/index.js +14 -0
- data/vendor/node_modules/is-glob/package.json +60 -0
- data/vendor/node_modules/is-module/index.js +11 -0
- data/vendor/node_modules/is-module/package.json +20 -0
- data/vendor/node_modules/is-number/index.js +19 -0
- data/vendor/node_modules/is-number/package.json +59 -0
- data/vendor/node_modules/is-posix-bracket/index.js +10 -0
- data/vendor/node_modules/is-posix-bracket/package.json +64 -0
- data/vendor/node_modules/is-primitive/index.js +13 -0
- data/vendor/node_modules/is-primitive/package.json +46 -0
- data/vendor/node_modules/is-reference/dist/is-reference.es.js +26 -0
- data/vendor/node_modules/is-reference/dist/is-reference.js +34 -0
- data/vendor/node_modules/is-reference/dist/types/index.d.ts +2 -0
- data/vendor/node_modules/is-reference/package.json +47 -0
- data/vendor/node_modules/isarray/index.js +5 -0
- data/vendor/node_modules/isarray/package.json +45 -0
- data/vendor/node_modules/isarray/test.js +20 -0
- data/vendor/node_modules/isobject/index.js +14 -0
- data/vendor/node_modules/isobject/package.json +67 -0
- data/vendor/node_modules/kind-of/index.js +116 -0
- data/vendor/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/locate-character/dist/locate-character.es.js +43 -0
- data/vendor/node_modules/locate-character/dist/locate-character.umd.js +54 -0
- data/vendor/node_modules/locate-character/dist/types/index.d.ts +17 -0
- data/vendor/node_modules/locate-character/package.json +41 -0
- data/vendor/node_modules/magic-string/dist/magic-string.cjs.js +1300 -0
- data/vendor/node_modules/magic-string/dist/magic-string.es.js +1296 -0
- data/vendor/node_modules/magic-string/dist/magic-string.umd.js +1352 -0
- data/vendor/node_modules/magic-string/index.d.ts +83 -0
- data/vendor/node_modules/magic-string/node_modules/vlq/dist/vlq.js +91 -0
- data/vendor/node_modules/magic-string/node_modules/vlq/package.json +27 -0
- data/vendor/node_modules/magic-string/node_modules/vlq/src/vlq.js +78 -0
- data/vendor/node_modules/magic-string/package.json +55 -0
- data/vendor/node_modules/micromatch/index.js +431 -0
- data/vendor/node_modules/micromatch/lib/chars.js +67 -0
- data/vendor/node_modules/micromatch/lib/expand.js +304 -0
- data/vendor/node_modules/micromatch/lib/glob.js +193 -0
- data/vendor/node_modules/micromatch/lib/utils.js +149 -0
- data/vendor/node_modules/micromatch/package.json +114 -0
- data/vendor/node_modules/minimist/index.js +236 -0
- data/vendor/node_modules/minimist/package.json +45 -0
- data/vendor/node_modules/nodent-compiler/compiler.js +171 -0
- data/vendor/node_modules/nodent-compiler/lib/arboriculture.js +2694 -0
- data/vendor/node_modules/nodent-compiler/lib/output.js +934 -0
- data/vendor/node_modules/nodent-compiler/lib/parser.js +291 -0
- data/vendor/node_modules/nodent-compiler/package.json +37 -0
- data/vendor/node_modules/normalize-path/index.js +19 -0
- data/vendor/node_modules/normalize-path/package.json +78 -0
- data/vendor/node_modules/object.omit/index.js +40 -0
- data/vendor/node_modules/object.omit/package.json +67 -0
- data/vendor/node_modules/os-homedir/index.js +24 -0
- data/vendor/node_modules/os-homedir/package.json +41 -0
- data/vendor/node_modules/parse-glob/index.js +156 -0
- data/vendor/node_modules/parse-glob/package.json +62 -0
- data/vendor/node_modules/parse-ms/index.js +16 -0
- data/vendor/node_modules/parse-ms/package.json +34 -0
- data/vendor/node_modules/path-parse/index.js +93 -0
- data/vendor/node_modules/path-parse/index.min.js +1 -0
- data/vendor/node_modules/path-parse/package.json +33 -0
- data/vendor/node_modules/path-parse/test.js +77 -0
- data/vendor/node_modules/path-parse/test.min.js +1 -0
- data/vendor/node_modules/plur/index.js +20 -0
- data/vendor/node_modules/plur/package.json +42 -0
- data/vendor/node_modules/preserve/index.js +54 -0
- data/vendor/node_modules/preserve/package.json +48 -0
- data/vendor/node_modules/preserve/test.js +48 -0
- data/vendor/node_modules/pretty-ms/index.js +48 -0
- data/vendor/node_modules/pretty-ms/package.json +48 -0
- data/vendor/node_modules/randomatic/index.js +82 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/index.js +22 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js +116 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/package.json +83 -0
- data/vendor/node_modules/randomatic/node_modules/kind-of/index.js +119 -0
- data/vendor/node_modules/randomatic/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/randomatic/package.json +78 -0
- data/vendor/node_modules/regex-cache/index.js +68 -0
- data/vendor/node_modules/regex-cache/package.json +64 -0
- data/vendor/node_modules/remove-trailing-separator/index.js +17 -0
- data/vendor/node_modules/remove-trailing-separator/package.json +37 -0
- data/vendor/node_modules/repeat-element/index.js +18 -0
- data/vendor/node_modules/repeat-element/package.json +44 -0
- data/vendor/node_modules/repeat-string/index.js +70 -0
- data/vendor/node_modules/repeat-string/package.json +77 -0
- data/vendor/node_modules/require-relative/index.js +33 -0
- data/vendor/node_modules/require-relative/package.json +22 -0
- data/vendor/node_modules/resolve/index.js +8 -0
- data/vendor/node_modules/resolve/lib/async.js +203 -0
- data/vendor/node_modules/resolve/lib/caller.js +8 -0
- data/vendor/node_modules/resolve/lib/core.js +53 -0
- data/vendor/node_modules/resolve/lib/core.json +69 -0
- data/vendor/node_modules/resolve/lib/node-modules-paths.js +45 -0
- data/vendor/node_modules/resolve/lib/sync.js +93 -0
- data/vendor/node_modules/resolve/package.json +40 -0
- data/vendor/node_modules/rollup-plugin-commonjs/dist/rollup-plugin-commonjs.cjs.js +804 -0
- data/vendor/node_modules/rollup-plugin-commonjs/dist/rollup-plugin-commonjs.es.js +800 -0
- data/vendor/node_modules/rollup-plugin-commonjs/package.json +52 -0
- data/vendor/node_modules/rollup-plugin-commonjs/src/ast-utils.js +104 -0
- data/vendor/node_modules/rollup-plugin-commonjs/src/defaultResolver.js +39 -0
- data/vendor/node_modules/rollup-plugin-commonjs/src/helpers.js +19 -0
- data/vendor/node_modules/rollup-plugin-commonjs/src/index.js +198 -0
- data/vendor/node_modules/rollup-plugin-commonjs/src/transform.js +431 -0
- data/vendor/node_modules/rollup-plugin-commonjs/src/utils.js +13 -0
- data/vendor/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.cjs.js +218 -0
- data/vendor/node_modules/rollup-plugin-node-resolve/dist/rollup-plugin-node-resolve.es.js +214 -0
- data/vendor/node_modules/rollup-plugin-node-resolve/package.json +51 -0
- data/vendor/node_modules/rollup-plugin-node-resolve/src/empty.js +1 -0
- data/vendor/node_modules/rollup-plugin-node-resolve/src/index.js +205 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.cjs.js +223 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es.js +214 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es6.js +217 -0
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.es.js +55 -0
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.es6.js +59 -0
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/dist/estree-walker.umd.js +65 -0
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/package.json +33 -0
- data/vendor/node_modules/rollup-pluginutils/node_modules/estree-walker/src/estree-walker.js +49 -0
- data/vendor/node_modules/rollup-pluginutils/package.json +40 -0
- data/vendor/node_modules/rollup-pluginutils/src/addExtension.js +6 -0
- data/vendor/node_modules/rollup-pluginutils/src/attachScopes.js +147 -0
- data/vendor/node_modules/rollup-pluginutils/src/createFilter.js +33 -0
- data/vendor/node_modules/rollup-pluginutils/src/index.js +4 -0
- data/vendor/node_modules/rollup-pluginutils/src/makeLegalIdentifier.js +15 -0
- data/vendor/node_modules/rollup-pluginutils/src/utils/ensureArray.js +5 -0
- data/vendor/node_modules/rollup/bin/rollup +4085 -0
- data/vendor/node_modules/rollup/dist/rollup.browser.js +19829 -0
- data/vendor/node_modules/rollup/dist/rollup.es.js +23586 -0
- data/vendor/node_modules/rollup/dist/rollup.js +23597 -0
- data/vendor/node_modules/rollup/dist/typings/Chunk.d.ts +85 -0
- data/vendor/node_modules/rollup/dist/typings/ExternalModule.d.ts +30 -0
- data/vendor/node_modules/rollup/dist/typings/Graph.d.ts +47 -0
- data/vendor/node_modules/rollup/dist/typings/Module.d.ts +130 -0
- data/vendor/node_modules/rollup/dist/typings/ast/CallOptions.d.ts +20 -0
- data/vendor/node_modules/rollup/dist/typings/ast/Entity.d.ts +16 -0
- data/vendor/node_modules/rollup/dist/typings/ast/ExecutionPathOptions.d.ts +57 -0
- data/vendor/node_modules/rollup/dist/typings/ast/clone.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/ast/enhance.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/ast/keys.d.ts +4 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ArrayExpression.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ArrayPattern.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ArrowFunctionExpression.d.ts +25 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/AssignmentExpression.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/AssignmentPattern.d.ts +16 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/AssignmentProperty.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/AwaitExpression.d.ts +8 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/BinaryExpression.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/BlockStatement.d.ts +19 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/BreakStatement.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/CallExpression.d.ts +22 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/CatchClause.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ClassBody.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ClassDeclaration.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ClassExpression.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ConditionalExpression.d.ts +28 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/DoWhileStatement.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/EmptyStatement.d.ts +8 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ExportAllDeclaration.d.ts +12 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ExportDefaultDeclaration.d.ts +21 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ExportNamedDeclaration.d.ts +21 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ExportSpecifier.d.ts +8 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ExpressionStatement.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ForInStatement.d.ts +20 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ForOfStatement.d.ts +21 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ForStatement.d.ts +19 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/FunctionDeclaration.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/FunctionExpression.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/Identifier.d.ts +29 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/IfStatement.d.ts +17 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/Import.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ImportDeclaration.d.ts +17 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ImportDefaultSpecifier.d.ts +7 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ImportNamespaceSpecifier.d.ts +7 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ImportSpecifier.d.ts +8 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/LabeledStatement.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/Literal.d.ts +22 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/LogicalExpression.d.ts +23 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/MemberExpression.d.ts +34 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/MethodDefinition.d.ts +16 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/NewExpression.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/NodeType.d.ts +64 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ObjectExpression.d.ts +22 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ObjectPattern.d.ts +15 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/Program.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/Property.d.ts +30 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/RestElement.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ReturnStatement.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/SequenceExpression.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/SpreadElement.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/SwitchCase.d.ts +11 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/SwitchStatement.d.ts +12 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/TaggedTemplateExpression.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/TemplateElement.d.ts +12 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/TemplateLiteral.d.ts +12 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ThisExpression.d.ts +17 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/ThrowStatement.d.ts +8 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/UnaryExpression.d.ts +16 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/UnknownNode.d.ts +5 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/UpdateExpression.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/VariableDeclaration.d.ts +21 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/VariableDeclarator.d.ts +13 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/WhileStatement.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/YieldExpression.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/index.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/shared/ClassNode.d.ts +17 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/shared/Expression.d.ts +21 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/shared/FunctionNode.d.ts +25 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/shared/Node.d.ts +133 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/shared/Pattern.d.ts +4 -0
- data/vendor/node_modules/rollup/dist/typings/ast/nodes/shared/pureFunctions.d.ts +4 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/BlockScope.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/CatchScope.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/FunctionScope.d.ts +20 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/GlobalScope.d.ts +7 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/ModuleScope.d.ts +11 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/ParameterScope.d.ts +16 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/ReturnValueScope.d.ts +11 -0
- data/vendor/node_modules/rollup/dist/typings/ast/scopes/Scope.d.ts +42 -0
- data/vendor/node_modules/rollup/dist/typings/ast/utils/extractNames.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/ast/values.d.ts +31 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/ArgumentsVariable.d.ts +15 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/ExportDefaultVariable.d.ts +16 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/ExternalVariable.d.ts +12 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/GlobalVariable.d.ts +11 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/LocalVariable.d.ts +21 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/NamespaceVariable.d.ts +20 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/ParameterVariable.d.ts +5 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/ReplaceableInitializationVariable.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/ThisVariable.d.ts +4 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/Variable.d.ts +43 -0
- data/vendor/node_modules/rollup/dist/typings/ast/variables/VariableReassignmentTracker.d.ts +11 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/amd.d.ts +11 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/cjs.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/es.d.ts +9 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/iife.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/index.d.ts +15 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/esModuleExport.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/getExportBlock.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/getGlobalNameMaker.d.ts +4 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/getInteropBlock.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/sanitize.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/setupNamespace.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/trimEmptyImports.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/shared/warnOnBuiltins.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/system.d.ts +8 -0
- data/vendor/node_modules/rollup/dist/typings/finalisers/umd.d.ts +10 -0
- data/vendor/node_modules/rollup/dist/typings/node-entry.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/rollup/index.d.ts +167 -0
- data/vendor/node_modules/rollup/dist/typings/utils/callIfFunction.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/utils/collapseSourcemaps.d.ts +5 -0
- data/vendor/node_modules/rollup/dist/typings/utils/commondir.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/utils/defaults.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/utils/deprecateOptions.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/utils/ensureArray.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/utils/entryHashing.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/utils/error.d.ts +18 -0
- data/vendor/node_modules/rollup/dist/typings/utils/first-sync.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/utils/first.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/utils/flushTime.d.ts +5 -0
- data/vendor/node_modules/rollup/dist/typings/utils/fs.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/utils/getCodeFrame.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/utils/getExportMode.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/utils/getIndentString.d.ts +4 -0
- data/vendor/node_modules/rollup/dist/typings/utils/identifierHelpers.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/utils/mergeOptions.d.ts +19 -0
- data/vendor/node_modules/rollup/dist/typings/utils/object.d.ts +7 -0
- data/vendor/node_modules/rollup/dist/typings/utils/path.d.ts +6 -0
- data/vendor/node_modules/rollup/dist/typings/utils/promise.d.ts +2 -0
- data/vendor/node_modules/rollup/dist/typings/utils/relativeId.d.ts +1 -0
- data/vendor/node_modules/rollup/dist/typings/utils/renderHelpers.d.ts +26 -0
- data/vendor/node_modules/rollup/dist/typings/utils/sourceMappingURL.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/utils/timers.d.ts +7 -0
- data/vendor/node_modules/rollup/dist/typings/utils/transform.d.ts +25 -0
- data/vendor/node_modules/rollup/dist/typings/utils/transformBundle.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/watch/chokidar.d.ts +3 -0
- data/vendor/node_modules/rollup/dist/typings/watch/fileWatchers.d.ts +14 -0
- data/vendor/node_modules/rollup/dist/typings/watch/index.d.ts +47 -0
- data/vendor/node_modules/rollup/package.json +122 -0
- data/vendor/node_modules/rollup/typings/package.json.d.ts +3 -0
- data/vendor/node_modules/signal-exit/index.js +157 -0
- data/vendor/node_modules/signal-exit/package.json +38 -0
- data/vendor/node_modules/signal-exit/signals.js +53 -0
- data/vendor/node_modules/source-map/dist/source-map.debug.js +3091 -0
- data/vendor/node_modules/source-map/dist/source-map.js +3090 -0
- data/vendor/node_modules/source-map/dist/source-map.min.js +2 -0
- data/vendor/node_modules/source-map/lib/array-set.js +121 -0
- data/vendor/node_modules/source-map/lib/base64-vlq.js +140 -0
- data/vendor/node_modules/source-map/lib/base64.js +67 -0
- data/vendor/node_modules/source-map/lib/binary-search.js +111 -0
- data/vendor/node_modules/source-map/lib/mapping-list.js +79 -0
- data/vendor/node_modules/source-map/lib/quick-sort.js +114 -0
- data/vendor/node_modules/source-map/lib/source-map-consumer.js +1082 -0
- data/vendor/node_modules/source-map/lib/source-map-generator.js +416 -0
- data/vendor/node_modules/source-map/lib/source-node.js +413 -0
- data/vendor/node_modules/source-map/lib/util.js +417 -0
- data/vendor/node_modules/source-map/package.json +72 -0
- data/vendor/node_modules/source-map/source-map.js +8 -0
- data/vendor/node_modules/sourcemap-codec/dist/sourcemap-codec.es.js +129 -0
- data/vendor/node_modules/sourcemap-codec/dist/sourcemap-codec.umd.js +140 -0
- data/vendor/node_modules/sourcemap-codec/dist/types/sourcemap-codec.d.ts +5 -0
- data/vendor/node_modules/sourcemap-codec/package.json +52 -0
- data/vendor/node_modules/supports-color/browser.js +5 -0
- data/vendor/node_modules/supports-color/index.js +135 -0
- data/vendor/node_modules/supports-color/package.json +53 -0
- data/vendor/node_modules/time-zone/index.js +10 -0
- data/vendor/node_modules/time-zone/package.json +35 -0
- data/vendor/node_modules/vlq/dist/types/vlq.d.ts +2 -0
- data/vendor/node_modules/vlq/dist/vlq.es.js +64 -0
- data/vendor/node_modules/vlq/dist/vlq.js +75 -0
- data/vendor/node_modules/vlq/package.json +30 -0
- data/vendor/package.json +15 -0
- data/vendor/yarn.lock +453 -0
- metadata +641 -0
@@ -0,0 +1,934 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
// This module is derived from Astring by David Bonnet (see below), but heavily
|
4
|
+
// modified to support source-maps & es7 as specified in
|
5
|
+
// https://github.com/estree/estree/blob/master/experimental/async-functions.md
|
6
|
+
// --------------------
|
7
|
+
// Astring is a tiny and fast JavaScript code generator from an ESTree-compliant AST.
|
8
|
+
//
|
9
|
+
// Astring was written by David Bonnet and released under an MIT license.
|
10
|
+
//
|
11
|
+
// The Git repository for Astring is available at:
|
12
|
+
// https://github.com/davidbonnet/astring.git
|
13
|
+
//
|
14
|
+
// Please use the GitHub bug tracker to report issues:
|
15
|
+
// https://github.com/davidbonnet/astring/issues
|
16
|
+
|
17
|
+
var SourceMapGenerator = require('source-map').SourceMapGenerator;
|
18
|
+
var ForInStatement, RestElement, BinaryExpression, ArrayExpression, BlockStatement;
|
19
|
+
|
20
|
+
var repeat ;
|
21
|
+
if ("".repeat) {
|
22
|
+
repeat = function(str,count){
|
23
|
+
return count && str ? str.repeat(count):"" ;
|
24
|
+
} ;
|
25
|
+
} else {
|
26
|
+
var cache = {} ;
|
27
|
+
repeat = function(str,count) {
|
28
|
+
if (!count || !str) return "" ;
|
29
|
+
var k = ""+str+count ;
|
30
|
+
if (!cache[k]) {
|
31
|
+
var out = [];
|
32
|
+
while (count--) {
|
33
|
+
out.push(str);
|
34
|
+
}
|
35
|
+
cache[k] = out.join('');
|
36
|
+
}
|
37
|
+
return cache[k] ;
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
var OPERATORS_PRECEDENCE = {
|
42
|
+
'ExpressionStatement': -1, // Use to parenthesize FunctionExpressions as statements
|
43
|
+
'Identifier': 21,
|
44
|
+
'Literal': 21,
|
45
|
+
'BooleanLiteral':21,
|
46
|
+
'RegExpLiteral':21,
|
47
|
+
'NumericLiteral':21,
|
48
|
+
'StringLiteral':21,
|
49
|
+
'NullLiteral':21,
|
50
|
+
'ThisExpression': 21,
|
51
|
+
'SuperExpression': 21,
|
52
|
+
'ObjectExpression': 21,
|
53
|
+
'ClassExpression': 21,
|
54
|
+
// '(_)':20, // Parens
|
55
|
+
'MemberExpression': 19,
|
56
|
+
// 'new()':19,
|
57
|
+
'CallExpression': 18,
|
58
|
+
'NewExpression': 18,
|
59
|
+
'ArrayExpression': 17.5,
|
60
|
+
'FunctionExpression': 17.5,
|
61
|
+
'FunctionDeclaration': 17.5,
|
62
|
+
'ArrowFunctionExpression': 17.5,
|
63
|
+
'UpdateExpression++': 17, // Postfix is 17, prefix is 16
|
64
|
+
'UpdateExpression--': 17, // Postfix is 17, prefix is 16
|
65
|
+
'UpdateExpression++prefix': 16, // Postfix is 17, prefix is 16
|
66
|
+
'UpdateExpression--prefix': 16, // Postfix is 17, prefix is 16
|
67
|
+
'UnaryExpression':16, // ! ~ + - typeof void delete
|
68
|
+
'AwaitExpression': 16,
|
69
|
+
'BinaryExpression**': 15,
|
70
|
+
'BinaryExpression*': 15,
|
71
|
+
'BinaryExpression/': 15,
|
72
|
+
'BinaryExpression%': 15,
|
73
|
+
'BinaryExpression+': 14,
|
74
|
+
'BinaryExpression-': 14,
|
75
|
+
'BinaryExpression<<': 13,
|
76
|
+
'BinaryExpression>>': 13,
|
77
|
+
'BinaryExpression>>>': 13,
|
78
|
+
'BinaryExpression<': 12,
|
79
|
+
'BinaryExpression<=': 12,
|
80
|
+
'BinaryExpression>': 12,
|
81
|
+
'BinaryExpression>=': 12,
|
82
|
+
'BinaryExpressionin': 12,
|
83
|
+
'BinaryExpressioninstanceof': 12,
|
84
|
+
'BinaryExpression==': 11,
|
85
|
+
'BinaryExpression===': 11,
|
86
|
+
'BinaryExpression!=': 11,
|
87
|
+
'BinaryExpression!==': 11,
|
88
|
+
'BinaryExpression&': 10,
|
89
|
+
'BinaryExpression^': 9,
|
90
|
+
'BinaryExpression|': 8,
|
91
|
+
'LogicalExpression&&': 7,
|
92
|
+
'LogicalExpression||': 6,
|
93
|
+
'ConditionalExpression': 5,
|
94
|
+
'AssignmentPattern': 4,
|
95
|
+
'AssignmentExpression': 4,
|
96
|
+
'yield': 3,
|
97
|
+
'YieldExpression': 3,
|
98
|
+
'SpreadElement': 2,
|
99
|
+
'comma-separated-list':1.5,
|
100
|
+
'SequenceExpression': 1
|
101
|
+
};
|
102
|
+
|
103
|
+
var CommaList = {type:'comma-separated-list'} ;
|
104
|
+
|
105
|
+
function precedence(node) {
|
106
|
+
if (node.type==='NewExpression' && node.arguments && node.arguments.length)
|
107
|
+
return 19 ;
|
108
|
+
var p = OPERATORS_PRECEDENCE[node.type] || OPERATORS_PRECEDENCE[node.type+node.operator] || OPERATORS_PRECEDENCE[node.type+node.operator+(node.prefix?"prefix":"")];
|
109
|
+
if (p !== undefined)
|
110
|
+
return p;
|
111
|
+
//console.log("Precedence?",node.type,node.operator) ;
|
112
|
+
return 20;
|
113
|
+
}
|
114
|
+
|
115
|
+
function out(node,state,type) {
|
116
|
+
var f = this[type || node.type] ;
|
117
|
+
if (f) {
|
118
|
+
/*
|
119
|
+
try {
|
120
|
+
var attr = Object.keys(node).filter(k=>k[0]==='$').map(k=>k+(node[k]?"+":"-")) ;
|
121
|
+
if (attr.length)
|
122
|
+
state.write(node,"/*"+attr.join(", ")+"\u002A/ ") ;
|
123
|
+
} catch (ex) {} ;
|
124
|
+
*/
|
125
|
+
f.call(this, node, state);
|
126
|
+
} else {
|
127
|
+
// Unknown node type - just spew its source
|
128
|
+
state.write(node,"/*"+node.type+"?*/ "+state.sourceAt(node.start,node.end)) ;
|
129
|
+
}
|
130
|
+
}
|
131
|
+
function expr(state, parent, node, assoc) {
|
132
|
+
if (assoc===2 ||
|
133
|
+
precedence(node) < precedence(parent) ||
|
134
|
+
(precedence(node) == precedence(parent) && (assoc || parent.right === node))) {
|
135
|
+
state.write(null, '(');
|
136
|
+
this.out(node, state,node.type);
|
137
|
+
state.write(null, ')');
|
138
|
+
} else {
|
139
|
+
this.out(node, state,node.type);
|
140
|
+
}
|
141
|
+
}
|
142
|
+
function formatParameters(params, state) {
|
143
|
+
var param;
|
144
|
+
state.write(null, '(');
|
145
|
+
if (params != null && params.length > 0) {
|
146
|
+
this.out(params[0], state,params[0].type);
|
147
|
+
for (var i = 1, length = params.length; i < length; i++) {
|
148
|
+
param = params[i];
|
149
|
+
state.write(param, ', ');
|
150
|
+
this.out(param, state,param.type);
|
151
|
+
}
|
152
|
+
}
|
153
|
+
state.write(null, ') ');
|
154
|
+
}
|
155
|
+
function argumentList(node, state) {
|
156
|
+
state.write(node, '(');
|
157
|
+
var args = node['arguments'];
|
158
|
+
if (args.length > 0) {
|
159
|
+
var length = args.length;
|
160
|
+
for (var i = 0; i < length; i++) {
|
161
|
+
if (i!=0)
|
162
|
+
state.write(null, ', ');
|
163
|
+
this.expr(state,CommaList,args[i]) ;
|
164
|
+
}
|
165
|
+
}
|
166
|
+
state.write(null, ')');
|
167
|
+
};
|
168
|
+
|
169
|
+
var traveler = {
|
170
|
+
out: out,
|
171
|
+
expr: expr,
|
172
|
+
argumentList: argumentList,
|
173
|
+
formatParameters: formatParameters,
|
174
|
+
Program: function (node, state) {
|
175
|
+
var statements, statement;
|
176
|
+
var indent = repeat(state.indent, state.indentLevel);
|
177
|
+
var lineEnd = state.lineEnd;
|
178
|
+
statements = node.body;
|
179
|
+
for (var i = 0, length = statements.length; i < length; i++) {
|
180
|
+
statement = statements[i];
|
181
|
+
state.write(null, indent);
|
182
|
+
this.out(statement, state,statement.type);
|
183
|
+
state.write(null, lineEnd);
|
184
|
+
}
|
185
|
+
},
|
186
|
+
BlockStatement: BlockStatement = function (node, state) {
|
187
|
+
var statements, statement;
|
188
|
+
var indent = repeat(state.indent, state.indentLevel++);
|
189
|
+
var lineEnd = state.lineEnd;
|
190
|
+
var statementIndent = indent + state.indent;
|
191
|
+
state.write(node, '{');
|
192
|
+
statements = node.body;
|
193
|
+
if (statements != null && statements.length > 0) {
|
194
|
+
state.write(null, lineEnd);
|
195
|
+
for (var i = 0, length = statements.length; i < length; i++) {
|
196
|
+
statement = statements[i];
|
197
|
+
state.write(null, statementIndent);
|
198
|
+
this.out(statement, state,statement.type);
|
199
|
+
state.write(null, lineEnd);
|
200
|
+
}
|
201
|
+
state.write(null, indent);
|
202
|
+
}
|
203
|
+
state.write(node.loc ? {
|
204
|
+
loc: {
|
205
|
+
start: {
|
206
|
+
line: node.loc.end.line,
|
207
|
+
column: 0
|
208
|
+
}
|
209
|
+
}
|
210
|
+
} : null, '}');
|
211
|
+
state.indentLevel--;
|
212
|
+
},
|
213
|
+
ClassBody: BlockStatement,
|
214
|
+
EmptyStatement: function (node, state) {
|
215
|
+
state.write(node, ';');
|
216
|
+
},
|
217
|
+
ParenthesizedExpression: function (node, state) {
|
218
|
+
this.expr(state, node, node.expression, 2);
|
219
|
+
},
|
220
|
+
ExpressionStatement: function (node, state) {
|
221
|
+
if (node.expression.type === 'FunctionExpression' || node.expression.type === 'ObjectExpression') {
|
222
|
+
state.write(null, '(');
|
223
|
+
this.expr(state, node, node.expression);
|
224
|
+
state.write(null, ')');
|
225
|
+
} else {
|
226
|
+
this.expr(state, node, node.expression);
|
227
|
+
}
|
228
|
+
state.write(null, ';');
|
229
|
+
},
|
230
|
+
IfStatement: function (node, state) {
|
231
|
+
state.write(node, 'if (');
|
232
|
+
this.out(node.test, state,node.test.type);
|
233
|
+
state.write(null, ') ');
|
234
|
+
if (node.consequent.type !== 'BlockStatement')
|
235
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
236
|
+
this.out(node.consequent, state,node.consequent.type);
|
237
|
+
if (node.alternate != null) {
|
238
|
+
if (node.consequent.type !== 'BlockStatement')
|
239
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel));
|
240
|
+
state.write(null, ' else ');
|
241
|
+
if (node.alternate.type !== 'BlockStatement' && node.alternate.type !== 'IfStatement')
|
242
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
243
|
+
this.out(node.alternate, state,node.alternate.type);
|
244
|
+
}
|
245
|
+
},
|
246
|
+
LabeledStatement: function (node, state) {
|
247
|
+
this.out(node.label, state,node.label.type);
|
248
|
+
state.write(null, ':');
|
249
|
+
this.out(node.body, state,node.body.type);
|
250
|
+
},
|
251
|
+
BreakStatement: function (node, state) {
|
252
|
+
state.write(node, 'break');
|
253
|
+
if (node.label) {
|
254
|
+
state.write(null, ' ');
|
255
|
+
this.out(node.label, state,node.label.type);
|
256
|
+
}
|
257
|
+
state.write(null, ';');
|
258
|
+
},
|
259
|
+
ContinueStatement: function (node, state) {
|
260
|
+
state.write(node, 'continue');
|
261
|
+
if (node.label) {
|
262
|
+
state.write(null, ' ');
|
263
|
+
this.out(node.label, state,node.label.type);
|
264
|
+
}
|
265
|
+
state.write(null, ';');
|
266
|
+
},
|
267
|
+
WithStatement: function (node, state) {
|
268
|
+
state.write(node, 'with (');
|
269
|
+
this.out(node.object, state,node.object.type);
|
270
|
+
state.write(null, ') ');
|
271
|
+
this.out(node.body, state,node.body.type);
|
272
|
+
},
|
273
|
+
SwitchStatement: function (node, state) {
|
274
|
+
var occurence, consequent, statement;
|
275
|
+
var indent = repeat(state.indent, state.indentLevel++);
|
276
|
+
var lineEnd = state.lineEnd;
|
277
|
+
state.indentLevel++;
|
278
|
+
var caseIndent = indent + state.indent;
|
279
|
+
var statementIndent = caseIndent + state.indent;
|
280
|
+
state.write(node, 'switch (');
|
281
|
+
this.out(node.discriminant, state,node.discriminant.type);
|
282
|
+
state.write(null, ') {', lineEnd);
|
283
|
+
var occurences = node.cases;
|
284
|
+
for (var i = 0; i < occurences.length; i++) {
|
285
|
+
occurence = occurences[i];
|
286
|
+
if (occurence.test) {
|
287
|
+
state.write(occurence, caseIndent, 'case ');
|
288
|
+
this.out(occurence.test, state,occurence.test.type);
|
289
|
+
state.write(null, ':', lineEnd);
|
290
|
+
} else {
|
291
|
+
state.write(occurence, caseIndent, 'default:', lineEnd);
|
292
|
+
}
|
293
|
+
consequent = occurence.consequent;
|
294
|
+
for (var j = 0; j < consequent.length; j++) {
|
295
|
+
statement = consequent[j];
|
296
|
+
state.write(null, statementIndent);
|
297
|
+
this.out(statement, state,statement.type);
|
298
|
+
state.write(null, lineEnd);
|
299
|
+
}
|
300
|
+
}
|
301
|
+
state.indentLevel -= 2;
|
302
|
+
state.write(null, indent, '}');
|
303
|
+
},
|
304
|
+
ReturnStatement: function (node, state) {
|
305
|
+
if (node.async)
|
306
|
+
state.write(node, ' async ');
|
307
|
+
state.write(node, 'return');
|
308
|
+
if (node.argument) {
|
309
|
+
state.write(null, ' ');
|
310
|
+
this.out(node.argument, state,node.argument.type);
|
311
|
+
}
|
312
|
+
state.write(null, ';');
|
313
|
+
},
|
314
|
+
ThrowStatement: function (node, state) {
|
315
|
+
if (node.async)
|
316
|
+
state.write(node, ' async ');
|
317
|
+
state.write(node, 'throw ');
|
318
|
+
this.out(node.argument, state,node.argument.type);
|
319
|
+
state.write(null, ';');
|
320
|
+
},
|
321
|
+
TryStatement: function (node, state) {
|
322
|
+
var handler;
|
323
|
+
state.write(node, 'try ');
|
324
|
+
this.out(node.block, state,node.block.type);
|
325
|
+
if (node.handler) {
|
326
|
+
this.out(node.handler, state, node.handler.type)
|
327
|
+
}
|
328
|
+
if (node.finalizer) {
|
329
|
+
state.write(node.finalizer, ' finally ');
|
330
|
+
this.out(node.finalizer, state,node.finalizer.type);
|
331
|
+
}
|
332
|
+
},
|
333
|
+
CatchClause: function (node, state) {
|
334
|
+
state.write(node, ' catch (');
|
335
|
+
this.out(node.param, state, node.param.type);
|
336
|
+
state.write(null, ') ');
|
337
|
+
this.out(node.body, state, node.body.type);
|
338
|
+
},
|
339
|
+
WhileStatement: function (node, state) {
|
340
|
+
state.write(node, 'while (');
|
341
|
+
this.out(node.test, state,node.test.type);
|
342
|
+
state.write(null, ') ');
|
343
|
+
if (node.body.type !== 'BlockStatement')
|
344
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
345
|
+
this.out(node.body, state,node.body.type);
|
346
|
+
},
|
347
|
+
DoWhileStatement: function (node, state) {
|
348
|
+
state.write(node, 'do ');
|
349
|
+
if (node.body.type !== 'BlockStatement')
|
350
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
351
|
+
this.out(node.body, state,node.body.type);
|
352
|
+
state.write(null, ' while (');
|
353
|
+
this.out(node.test, state,node.test.type);
|
354
|
+
state.write(null, ');');
|
355
|
+
},
|
356
|
+
ForStatement: function (node, state) {
|
357
|
+
state.write(node, 'for (');
|
358
|
+
if (node.init != null) {
|
359
|
+
var init = node.init, type = init.type;
|
360
|
+
state.inForInit++ ;
|
361
|
+
this.out(init, state,type);
|
362
|
+
state.inForInit-- ;
|
363
|
+
if (type !== 'VariableDeclaration')
|
364
|
+
state.write(null, '; ');
|
365
|
+
} else {
|
366
|
+
state.write(null, '; ');
|
367
|
+
}
|
368
|
+
if (node.test)
|
369
|
+
this.out(node.test, state,node.test.type);
|
370
|
+
state.write(null, '; ');
|
371
|
+
if (node.update)
|
372
|
+
this.out(node.update, state,node.update.type);
|
373
|
+
state.write(null, ') ');
|
374
|
+
if (node.body.type !== 'BlockStatement')
|
375
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
376
|
+
this.out(node.body, state,node.body.type);
|
377
|
+
},
|
378
|
+
ForInStatement: ForInStatement = function (node, state) {
|
379
|
+
state.write(node, 'for (');
|
380
|
+
var left = node.left, type = left.type;
|
381
|
+
state.inForInit++ ;
|
382
|
+
this.out(left, state,type);
|
383
|
+
if (type[0] === 'V' && type.length === 19) {
|
384
|
+
state.back();
|
385
|
+
}
|
386
|
+
state.inForInit-- ;
|
387
|
+
state.write(null, node.type[3] === 'I' ? ' in ' : ' of ');
|
388
|
+
this.out(node.right, state,node.right.type);
|
389
|
+
state.write(null, ') ');
|
390
|
+
if (node.body.type !== 'BlockStatement')
|
391
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
392
|
+
this.out(node.body, state,node.body.type);
|
393
|
+
},
|
394
|
+
ForOfStatement: ForInStatement,
|
395
|
+
DebuggerStatement: function (node, state) {
|
396
|
+
state.write(node, 'debugger;');
|
397
|
+
},
|
398
|
+
Function: function (node, state) {
|
399
|
+
if (node.async)
|
400
|
+
state.write(node, 'async ');
|
401
|
+
state.write(node, node.generator ? 'function* ' : 'function ');
|
402
|
+
if (node.id)
|
403
|
+
state.write(node.id, node.id.name);
|
404
|
+
this.formatParameters(node.params, state);
|
405
|
+
this.out(node.body, state,node.body.type);
|
406
|
+
},
|
407
|
+
FunctionDeclaration: function (node, state) {
|
408
|
+
this.Function(node, state);
|
409
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel));
|
410
|
+
},
|
411
|
+
FunctionExpression: function (node, state) {
|
412
|
+
this.Function(node, state);
|
413
|
+
},
|
414
|
+
VariableDeclaration: function (node, state) {
|
415
|
+
var declarations = node.declarations;
|
416
|
+
state.write(node, node.kind, ' ');
|
417
|
+
var length = declarations.length;
|
418
|
+
if (length > 0) {
|
419
|
+
this.out(declarations[0], state,'VariableDeclarator');
|
420
|
+
for (var i = 1; i < length; i++) {
|
421
|
+
state.write(null, ', ');
|
422
|
+
this.out(declarations[i], state,'VariableDeclarator');
|
423
|
+
}
|
424
|
+
}
|
425
|
+
state.write(null, ';');
|
426
|
+
},
|
427
|
+
VariableDeclarator: function (node, state) {
|
428
|
+
this.out(node.id, state,node.id.type);
|
429
|
+
if (node.init != null) {
|
430
|
+
state.write(null, ' = ');
|
431
|
+
this.expr(state,CommaList,node.init) ;
|
432
|
+
}
|
433
|
+
},
|
434
|
+
ClassDeclaration: function (node, state) {
|
435
|
+
state.write(node, 'class ');
|
436
|
+
if (node.id) {
|
437
|
+
state.write(node.id, node.id.name + ' ');
|
438
|
+
}
|
439
|
+
if (node.superClass) {
|
440
|
+
state.write(null, 'extends ');
|
441
|
+
this.out(node.superClass, state,node.superClass.type);
|
442
|
+
state.write(null, ' ');
|
443
|
+
}
|
444
|
+
this.out(node.body, state,'BlockStatement');
|
445
|
+
},
|
446
|
+
ImportSpecifier: function (node, state) {
|
447
|
+
if (node.local.name == node.imported.name) {
|
448
|
+
this.out(node.local, state,node.local.type);
|
449
|
+
} else {
|
450
|
+
this.out(node.imported, state,node.imported.type);
|
451
|
+
state.write(null, ' as ');
|
452
|
+
this.out(node.local, state,node.local.type);
|
453
|
+
}
|
454
|
+
},
|
455
|
+
ImportDefaultSpecifier: function (node, state) {
|
456
|
+
this.out(node.local, state,node.local.type);
|
457
|
+
},
|
458
|
+
ImportNamespaceSpecifier: function (node, state) {
|
459
|
+
state.write(null, '* as ');
|
460
|
+
this.out(node.local, state,node.local.type);
|
461
|
+
},
|
462
|
+
ImportDeclaration: function (node, state) {
|
463
|
+
var i, specifier, name;
|
464
|
+
state.write(node, 'import ');
|
465
|
+
var specifiers = node.specifiers;
|
466
|
+
var length = specifiers.length;
|
467
|
+
var block = true;
|
468
|
+
if (length > 0) {
|
469
|
+
for (var i = 0; i < length; i++) {
|
470
|
+
if (specifiers[i].type === 'ImportSpecifier' && block) {
|
471
|
+
block = false;
|
472
|
+
state.write(null, '{');
|
473
|
+
}
|
474
|
+
this.out(specifiers[i], state,specifiers[i].type);
|
475
|
+
if (i < length - 1)
|
476
|
+
state.write(null, ', ');
|
477
|
+
}
|
478
|
+
if (specifiers[length - 1].type === 'ImportSpecifier')
|
479
|
+
state.write(null, '}');
|
480
|
+
state.write(null, ' from ');
|
481
|
+
}
|
482
|
+
state.write(node.source, node.source.raw);
|
483
|
+
state.write(null, ';');
|
484
|
+
},
|
485
|
+
ExportDefaultDeclaration: function (node, state) {
|
486
|
+
state.write(node, 'export default ');
|
487
|
+
this.out(node.declaration, state,node.declaration.type);
|
488
|
+
},
|
489
|
+
ExportSpecifier: function (node, state) {
|
490
|
+
if (node.local.name == node.exported.name) {
|
491
|
+
this.out(node.local, state,node.local.type);
|
492
|
+
} else {
|
493
|
+
this.out(node.local, state,node.local.type);
|
494
|
+
state.write(null, ' as ');
|
495
|
+
this.out(node.exported, state,node.exported.type);
|
496
|
+
}
|
497
|
+
},
|
498
|
+
ExportNamedDeclaration: function (node, state) {
|
499
|
+
var specifier, name;
|
500
|
+
state.write(node, 'export ');
|
501
|
+
if (node.declaration) {
|
502
|
+
this.out(node.declaration, state,node.declaration.type);
|
503
|
+
} else {
|
504
|
+
var specifiers = node.specifiers;
|
505
|
+
state.write(node, '{');
|
506
|
+
if (specifiers && specifiers.length > 0) {
|
507
|
+
for (var i = 0; i < specifiers.length; i++) {
|
508
|
+
this.out(specifiers[i], state,specifiers[i].type);
|
509
|
+
if (i < specifiers.length - 1)
|
510
|
+
state.write(null, ', ');
|
511
|
+
}
|
512
|
+
}
|
513
|
+
state.write(null, '}');
|
514
|
+
if (node.source) {
|
515
|
+
state.write(node.source, ' from ', node.source.raw);
|
516
|
+
}
|
517
|
+
state.write(null, ';');
|
518
|
+
}
|
519
|
+
},
|
520
|
+
ExportAllDeclaration: function (node, state) {
|
521
|
+
state.write(node, 'export * from ');
|
522
|
+
state.write(node.source, node.source.raw, ';');
|
523
|
+
},
|
524
|
+
MethodDefinition: function (node, state) {
|
525
|
+
if (node.value.async)
|
526
|
+
state.write(node, 'async ');
|
527
|
+
if (node.static)
|
528
|
+
state.write(node, 'static ');
|
529
|
+
switch (node.kind) {
|
530
|
+
case 'get':
|
531
|
+
case 'set':
|
532
|
+
state.write(node, node.kind, ' ');
|
533
|
+
break;
|
534
|
+
default:
|
535
|
+
break;
|
536
|
+
}
|
537
|
+
if (node.value.generator)
|
538
|
+
state.write(null, '*');
|
539
|
+
if (node.computed) {
|
540
|
+
state.write(null, '[');
|
541
|
+
this.out(node.key, state,node.key.type);
|
542
|
+
state.write(null, ']');
|
543
|
+
} else {
|
544
|
+
this.out(node.key, state,node.key.type);
|
545
|
+
}
|
546
|
+
this.formatParameters(node.value.params, state);
|
547
|
+
this.out(node.value.body, state,node.value.body.type);
|
548
|
+
},
|
549
|
+
ClassMethod: function (node,state){
|
550
|
+
if (node.async)
|
551
|
+
state.write(node, 'async ');
|
552
|
+
if (node.static)
|
553
|
+
state.write(node, 'static ');
|
554
|
+
switch (node.kind) {
|
555
|
+
case 'get':
|
556
|
+
case 'set':
|
557
|
+
state.write(node, node.kind, ' ');
|
558
|
+
break;
|
559
|
+
default:
|
560
|
+
break;
|
561
|
+
}
|
562
|
+
if (node.generator)
|
563
|
+
state.write(null, '*');
|
564
|
+
if (node.computed) {
|
565
|
+
state.write(null, '[');
|
566
|
+
this.out(node.key, state,node.key.type);
|
567
|
+
state.write(null, ']');
|
568
|
+
} else {
|
569
|
+
this.out(node.key, state,node.key.type);
|
570
|
+
}
|
571
|
+
this.formatParameters(node.params, state);
|
572
|
+
this.out(node.body, state, node.body.type);
|
573
|
+
},
|
574
|
+
ClassExpression: function (node, state) {
|
575
|
+
this.out(node, state,'ClassDeclaration');
|
576
|
+
},
|
577
|
+
ArrowFunctionExpression: function (node, state) {
|
578
|
+
if (node.async)
|
579
|
+
state.write(node, 'async ');
|
580
|
+
if (node.params.length===1 && node.params[0].type==='Identifier') {
|
581
|
+
this.out(node.params[0], state, node.params[0].type) ;
|
582
|
+
state.write(node, ' => ');
|
583
|
+
} else {
|
584
|
+
this.formatParameters(node.params, state);
|
585
|
+
state.write(node, '=> ');
|
586
|
+
}
|
587
|
+
if (node.body.type === 'ObjectExpression' || node.body.type === 'SequenceExpression') {
|
588
|
+
state.write(null, '(');
|
589
|
+
this.out(node.body, state,node.body.type);
|
590
|
+
state.write(null, ')');
|
591
|
+
} else {
|
592
|
+
this.out(node.body, state,node.body.type);
|
593
|
+
}
|
594
|
+
},
|
595
|
+
ThisExpression: function (node, state) {
|
596
|
+
state.write(node, 'this');
|
597
|
+
},
|
598
|
+
Super: function (node, state) {
|
599
|
+
state.write(node, 'super');
|
600
|
+
},
|
601
|
+
RestElement: RestElement = function (node, state) {
|
602
|
+
state.write(node, '...');
|
603
|
+
this.out(node.argument, state,node.argument.type);
|
604
|
+
},
|
605
|
+
SpreadElement: RestElement,
|
606
|
+
YieldExpression: function (node, state) {
|
607
|
+
state.write(node, node.delegate ? 'yield*' : 'yield');
|
608
|
+
if (node.argument) {
|
609
|
+
state.write(null, ' ');
|
610
|
+
this.expr(state, node, node.argument);
|
611
|
+
}
|
612
|
+
},
|
613
|
+
AwaitExpression: function (node, state) {
|
614
|
+
state.write(node, 'await ');
|
615
|
+
this.expr(state, node, node.argument);
|
616
|
+
},
|
617
|
+
TemplateLiteral: function (node, state) {
|
618
|
+
var expression;
|
619
|
+
var quasis = node.quasis, expressions = node.expressions;
|
620
|
+
state.write(node, '`');
|
621
|
+
for (var i = 0, length = expressions.length; i < length; i++) {
|
622
|
+
expression = expressions[i];
|
623
|
+
state.write(quasis[i].value, quasis[i].value.raw);
|
624
|
+
state.write(null, '${');
|
625
|
+
this.out(expression, state,expression.type);
|
626
|
+
state.write(null, '}');
|
627
|
+
}
|
628
|
+
state.write(quasis[quasis.length - 1].value, quasis[quasis.length - 1].value.raw);
|
629
|
+
state.write(node, '`');
|
630
|
+
},
|
631
|
+
TaggedTemplateExpression: function (node, state) {
|
632
|
+
this.out(node.tag, state,node.tag.type);
|
633
|
+
this.out(node.quasi, state,node.quasi.type);
|
634
|
+
},
|
635
|
+
ArrayExpression: ArrayExpression = function (node, state) {
|
636
|
+
state.write(node, '[');
|
637
|
+
if (node.elements.length > 0) {
|
638
|
+
var elements = node.elements, length = elements.length;
|
639
|
+
for (var i = 0; ; ) {
|
640
|
+
var element = elements[i];
|
641
|
+
element && this.expr(state,CommaList,element) ;
|
642
|
+
|
643
|
+
i += 1 ;
|
644
|
+
if (i < length || element===null)
|
645
|
+
state.write(null, ',');
|
646
|
+
if (i >= length)
|
647
|
+
break;
|
648
|
+
if (state.lineLength() > state.wrapColumn)
|
649
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
650
|
+
}
|
651
|
+
}
|
652
|
+
state.write(null, ']');
|
653
|
+
},
|
654
|
+
ArrayPattern: ArrayExpression,
|
655
|
+
ObjectExpression: function (node, state) {
|
656
|
+
var property;
|
657
|
+
var indent = repeat(state.indent, state.indentLevel++);
|
658
|
+
var lineEnd = state.lineEnd;
|
659
|
+
var propertyIndent = indent + state.indent;
|
660
|
+
state.write(node, '{');
|
661
|
+
if (node.properties.length > 0) {
|
662
|
+
state.write(null, lineEnd);
|
663
|
+
var properties = node.properties, length = properties.length;
|
664
|
+
for (var i = 0; ; ) {
|
665
|
+
property = properties[i];
|
666
|
+
state.write(null, propertyIndent);
|
667
|
+
this.out(property, state, property.type);
|
668
|
+
if (++i < length)
|
669
|
+
state.write(node, ',', lineEnd);
|
670
|
+
else
|
671
|
+
break;
|
672
|
+
if (state.lineLength() > state.wrapColumn)
|
673
|
+
state.write(null, state.lineEnd, repeat(state.indent, state.indentLevel + 1));
|
674
|
+
}
|
675
|
+
state.write(null, lineEnd, indent, '}');
|
676
|
+
} else {
|
677
|
+
state.write(null, '}');
|
678
|
+
}
|
679
|
+
state.indentLevel--;
|
680
|
+
},
|
681
|
+
Property: function (node, state) {
|
682
|
+
if (node.method || (node.kind === 'get' || node.kind === 'set')) {
|
683
|
+
this.MethodDefinition(node, state);
|
684
|
+
} else {
|
685
|
+
if (!node.shorthand) {
|
686
|
+
if (node.computed) {
|
687
|
+
state.write(null, '[');
|
688
|
+
this.out(node.key, state,node.key.type);
|
689
|
+
state.write(null, ']');
|
690
|
+
} else {
|
691
|
+
this.out(node.key, state,node.key.type);
|
692
|
+
}
|
693
|
+
state.write(null, ': ');
|
694
|
+
}
|
695
|
+
this.expr(state,CommaList,node.value);
|
696
|
+
}
|
697
|
+
},
|
698
|
+
ObjectPattern: function (node, state) {
|
699
|
+
state.write(node, '{');
|
700
|
+
if (node.properties.length > 0) {
|
701
|
+
var properties = node.properties, length = properties.length;
|
702
|
+
for (var i = 0; ; ) {
|
703
|
+
this.out(properties[i], state,'Property');
|
704
|
+
if (++i < length)
|
705
|
+
state.write(null, ', ');
|
706
|
+
else
|
707
|
+
break;
|
708
|
+
}
|
709
|
+
}
|
710
|
+
state.write(null, '}');
|
711
|
+
},
|
712
|
+
SequenceExpression: function (node, state) {
|
713
|
+
var expression;
|
714
|
+
var expressions = node.expressions;
|
715
|
+
if (expressions.length > 0) {
|
716
|
+
var length = expressions.length;
|
717
|
+
for (var i = 0; i<length; i++) {
|
718
|
+
expression = expressions[i];
|
719
|
+
if (i)
|
720
|
+
state.write(null, ', ') ;
|
721
|
+
this.expr(state,CommaList,expression) ;
|
722
|
+
}
|
723
|
+
}
|
724
|
+
},
|
725
|
+
UnaryExpression: function (node, state) {
|
726
|
+
if (node.prefix) {
|
727
|
+
state.write(node, node.operator);
|
728
|
+
if (node.operator.length > 1)
|
729
|
+
state.write(node, ' ');
|
730
|
+
this.expr(state, node, node.argument, true);
|
731
|
+
} else {
|
732
|
+
this.expr(state, node, node.argument);
|
733
|
+
state.write(node, node.operator);
|
734
|
+
}
|
735
|
+
},
|
736
|
+
UpdateExpression: function (node, state) {
|
737
|
+
if (node.prefix) {
|
738
|
+
state.write(node, node.operator);
|
739
|
+
this.out(node.argument, state,node.argument.type);
|
740
|
+
} else {
|
741
|
+
this.out(node.argument, state,node.argument.type);
|
742
|
+
state.write(node, node.operator);
|
743
|
+
}
|
744
|
+
},
|
745
|
+
BinaryExpression: BinaryExpression = function (node, state) {
|
746
|
+
var operator = node.operator;
|
747
|
+
if (operator==='in' && state.inForInit)
|
748
|
+
state.write(null, '(');
|
749
|
+
this.expr(state, node, node.left);
|
750
|
+
state.write(node, ' ', operator, ' ');
|
751
|
+
this.expr(state, node, node.right, node.right.type==='ArrowFunctionExpression'?2:0);
|
752
|
+
if (operator==='in' && state.inForInit)
|
753
|
+
state.write(null, ')');
|
754
|
+
},
|
755
|
+
LogicalExpression: BinaryExpression,
|
756
|
+
AssignmentExpression: function (node, state) {
|
757
|
+
if (node.left.type==='ObjectPattern')
|
758
|
+
state.write(null,'(');
|
759
|
+
this.BinaryExpression(node,state);
|
760
|
+
if (node.left.type==='ObjectPattern')
|
761
|
+
state.write(null,')');
|
762
|
+
},
|
763
|
+
AssignmentPattern: function (node, state) {
|
764
|
+
this.expr(state, node, node.left);
|
765
|
+
state.write(node, ' = ');
|
766
|
+
this.expr(state, node, node.right);
|
767
|
+
},
|
768
|
+
ConditionalExpression: function (node, state) {
|
769
|
+
this.expr(state, node, node.test, true);
|
770
|
+
state.write(node, ' ? ');
|
771
|
+
this.expr(state, node, node.consequent);
|
772
|
+
state.write(null, ' : ');
|
773
|
+
this.expr(state, node, node.alternate);
|
774
|
+
},
|
775
|
+
NewExpression: function (node, state) {
|
776
|
+
state.write(node, 'new ');
|
777
|
+
this.expr(state, node, node.callee, (node.callee.type === 'CallExpression' || node.callee.type==='ObjectExpression')?2:0);
|
778
|
+
this.argumentList(node,state) ;
|
779
|
+
},
|
780
|
+
CallExpression: function (node, state) {
|
781
|
+
this.expr(state, node, node.callee, node.callee.type==='ObjectExpression'?2:0);
|
782
|
+
this.argumentList(node,state) ;
|
783
|
+
},
|
784
|
+
MemberExpression: function (node, state) {
|
785
|
+
var requireParens = (node.object.type === 'ObjectExpression' || (node.object.type.match(/Literal$/) && node.object.raw && node.object.raw.match(/^[0-9]/))) ;
|
786
|
+
var noParens = !requireParens &&
|
787
|
+
((node.object.type === 'ArrayExpression' || node.object.type === 'CallExpression' || node.object.type === 'NewExpression')
|
788
|
+
|| precedence(node) <= precedence(node.object));
|
789
|
+
if (noParens) {
|
790
|
+
this.out(node.object, state,node.object.type);
|
791
|
+
} else {
|
792
|
+
state.write(null, '(');
|
793
|
+
this.out(node.object, state,node.object.type);
|
794
|
+
state.write(null, ')');
|
795
|
+
}
|
796
|
+
if (node.computed) {
|
797
|
+
state.write(node, '[');
|
798
|
+
this.out(node.property, state,node.property.type);
|
799
|
+
state.write(null, ']');
|
800
|
+
} else {
|
801
|
+
state.write(node, '.');
|
802
|
+
this.out(node.property, state,node.property.type);
|
803
|
+
}
|
804
|
+
},
|
805
|
+
Identifier: function (node, state) {
|
806
|
+
state.write(node, node.name);
|
807
|
+
},
|
808
|
+
Literal: function (node, state) {
|
809
|
+
state.write(node, node.raw);
|
810
|
+
},
|
811
|
+
NullLiteral:function (node, state) {
|
812
|
+
state.write(node, 'null');
|
813
|
+
},
|
814
|
+
BooleanLiteral:function (node, state) {
|
815
|
+
state.write(node, JSON.stringify(node.value));
|
816
|
+
},
|
817
|
+
StringLiteral:function (node, state) {
|
818
|
+
state.write(node, JSON.stringify(node.value));
|
819
|
+
},
|
820
|
+
RegExpLiteral:function (node, state) {
|
821
|
+
state.write(node, node.extra.raw || ('/'+node.pattern+'/'+node.flags));
|
822
|
+
},
|
823
|
+
NumericLiteral:function (node, state) {
|
824
|
+
state.write(node, JSON.stringify(node.value));
|
825
|
+
},
|
826
|
+
};
|
827
|
+
module.exports = function (node, options, originalSource) {
|
828
|
+
options = options || {};
|
829
|
+
var buffer = "", lines = [];
|
830
|
+
var map = options.map && new SourceMapGenerator(options.map);
|
831
|
+
if (map && options.map.sourceContent) {
|
832
|
+
map.setSourceContent(options.map.file, options.map.sourceContent);
|
833
|
+
}
|
834
|
+
var backBy = "";
|
835
|
+
var leadingComments = [];
|
836
|
+
var trailingComments = [];
|
837
|
+
function write(node) {
|
838
|
+
backBy = arguments[arguments.length - 1] ;
|
839
|
+
for (var i = 1; i < arguments.length; i++) {
|
840
|
+
if (map && node && node.loc && node.loc.start) {
|
841
|
+
var startOfLine = false;
|
842
|
+
map.addMapping({
|
843
|
+
source: options.map.file,
|
844
|
+
original: {
|
845
|
+
line: node.loc.start.line,
|
846
|
+
column: startOfLine ? 0 : node.loc.start.column
|
847
|
+
},
|
848
|
+
generated: {
|
849
|
+
line: options.map.startLine + lines.length + 1,
|
850
|
+
column: startOfLine ? 0 : buffer.length
|
851
|
+
}
|
852
|
+
});
|
853
|
+
}
|
854
|
+
if (arguments[i] === st.lineEnd) {
|
855
|
+
if (trailingComments.length) {
|
856
|
+
trailingComments.forEach(function (c) {
|
857
|
+
if (c.type === 'Line')
|
858
|
+
buffer += " // " + c.value;
|
859
|
+
else {
|
860
|
+
(" /*" + c.value + "*/").split("\n").forEach(function (v) {
|
861
|
+
buffer += v;
|
862
|
+
lines.push(buffer);
|
863
|
+
buffer = "";
|
864
|
+
});
|
865
|
+
buffer = lines.pop();
|
866
|
+
}
|
867
|
+
});
|
868
|
+
trailingComments = [];
|
869
|
+
}
|
870
|
+
lines.push(buffer);
|
871
|
+
buffer = "";
|
872
|
+
if (leadingComments.length) {
|
873
|
+
var preceeding = lines.pop();
|
874
|
+
leadingComments.forEach(function (c) {
|
875
|
+
var indent = repeat(st.indent, c.indent);
|
876
|
+
if (c.type === "Line")
|
877
|
+
lines.push(indent + "//" + c.value);
|
878
|
+
else
|
879
|
+
(indent + "/*" + c.value + "*/").split("\n").forEach(function (l) {
|
880
|
+
lines.push(l);
|
881
|
+
});
|
882
|
+
});
|
883
|
+
lines.push(preceeding);
|
884
|
+
leadingComments = [];
|
885
|
+
}
|
886
|
+
} else {
|
887
|
+
buffer += arguments[i];
|
888
|
+
if (node && node.$comments) {
|
889
|
+
node.$comments.forEach(function (c) {
|
890
|
+
var trailing = node.loc.start.column < c.loc.start.column;
|
891
|
+
c.indent = st.indentLevel;
|
892
|
+
if (trailing) {
|
893
|
+
trailingComments.push(c);
|
894
|
+
} else {
|
895
|
+
leadingComments.push(c);
|
896
|
+
}
|
897
|
+
});
|
898
|
+
node.$comments = null;
|
899
|
+
}
|
900
|
+
}
|
901
|
+
}
|
902
|
+
}
|
903
|
+
function lineLength() {
|
904
|
+
return buffer.length;
|
905
|
+
}
|
906
|
+
function sourceAt(start, end) {
|
907
|
+
return originalSource?originalSource.substring(start,end):"/* Omitted Non-standard node */" ;
|
908
|
+
}
|
909
|
+
function back() {
|
910
|
+
buffer = buffer.substring(0, buffer.length - backBy.length);
|
911
|
+
}
|
912
|
+
var st = {
|
913
|
+
inForInit: 0,
|
914
|
+
lineLength: lineLength,
|
915
|
+
sourceAt:sourceAt,
|
916
|
+
write: write,
|
917
|
+
back: back,
|
918
|
+
indent: " ",
|
919
|
+
lineEnd: "\n",
|
920
|
+
indentLevel: 0,
|
921
|
+
wrapColumn: 80
|
922
|
+
};
|
923
|
+
traveler.out(node, st);
|
924
|
+
trailingComments = node.$comments || [];
|
925
|
+
st.write(node, st.lineEnd);
|
926
|
+
var result = lines.join(st.lineEnd);
|
927
|
+
if (options && options.map) {
|
928
|
+
return {
|
929
|
+
code: result,
|
930
|
+
map: map
|
931
|
+
};
|
932
|
+
}
|
933
|
+
return result;
|
934
|
+
};
|