├── .editorconfig ├── .eslintrc.json ├── .github └── actions │ └── fast-follow │ ├── README.md │ └── action.yml ├── .gitignore ├── .husky ├── .gitignore └── pre-commit ├── .prettierignore ├── .prettierrc ├── .stylua.toml ├── .vscode └── extensions.json ├── LICENCE.graphqljs ├── LICENSE.txt ├── README.md ├── apps ├── convert-js-to-lua │ ├── .eslintrc.json │ ├── conformance-tests │ │ ├── conformance-tests.ts │ │ ├── conformance.config.ts │ │ ├── conformance_m1.spec.ts │ │ ├── conformance_m2.spec.ts │ │ ├── conformance_m3.spec.ts │ │ ├── conformance_m4.spec.ts │ │ ├── conformance_m5.spec.ts │ │ ├── conformance_m6.spec.ts │ │ ├── conformance_m7.spec.ts │ │ ├── conformance_m8.spec.ts │ │ ├── conformance_rest.spec.ts │ │ └── test-utils.ts │ ├── jest-conformance.config.ts │ ├── jest.config.ts │ ├── package.json │ ├── project.json │ ├── src │ │ ├── app │ │ │ ├── .gitkeep │ │ │ ├── convert-files.ts │ │ │ ├── convert.ts │ │ │ ├── get-args.ts │ │ │ ├── get-files.ts │ │ │ └── transform.ts │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── fixtures │ │ │ ├── Declarations │ │ │ │ ├── expected.lua │ │ │ │ └── sample.ts │ │ │ ├── Primitive │ │ │ │ ├── expected.lua │ │ │ │ └── sample.ts │ │ │ └── Structural │ │ │ │ ├── expected.lua │ │ │ │ └── sample.ts │ │ ├── index.js │ │ └── main.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── fast-follow │ ├── .eslintrc.json │ ├── jest.config.ts │ ├── package.json │ ├── project.json │ ├── src │ │ ├── app │ │ │ ├── .gitkeep │ │ │ └── get-args.ts │ │ ├── assets │ │ │ └── .gitkeep │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── index.js │ │ └── main.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json └── playground │ ├── .eslintrc.json │ ├── jest.config.ts │ ├── project.json │ ├── src │ ├── app │ │ └── .gitkeep │ ├── assets │ │ └── .gitkeep │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── main.spec.ts │ ├── main.ts │ └── run.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ └── tsconfig.spec.json ├── babel-flow-transform-react.config.json ├── babel-flow.config.json ├── babel-transform-react.config.json ├── babel-ts.config.json ├── conformance-tests ├── base-types │ ├── array │ │ ├── array-literal-with-comments_m5.js │ │ └── array-literal-with-comments_m5.lua │ ├── booleans │ │ ├── boolean-typed_m1.lua │ │ ├── boolean-typed_m1.ts │ │ ├── boolean_m1.js │ │ └── boolean_m1.lua │ ├── never │ │ ├── never-typed-throw-error_m5.lua │ │ ├── never-typed-throw-error_m5.ts │ │ ├── never-typed-while-true_m5.lua │ │ └── never-typed-while-true_m5.ts │ ├── null │ │ ├── null-typed_m5.lua │ │ └── null-typed_m5.ts │ ├── numbers │ │ ├── NaN.js │ │ ├── NaN.lua │ │ ├── binary.js │ │ ├── binary.lua │ │ ├── exponent.js │ │ ├── exponent.lua │ │ ├── hexadecimal.js │ │ ├── hexadecimal.lua │ │ ├── infinity.js │ │ ├── infinity.lua │ │ ├── integer-typed.lua │ │ ├── integer-typed.ts │ │ ├── integer-with-separator.js │ │ ├── integer-with-separator.lua │ │ ├── leading-zero-decimal.js │ │ ├── leading-zero-decimal.lua │ │ ├── octal.js │ │ └── octal.lua │ ├── object │ │ ├── object-literal-with-comments_m5.js │ │ └── object-literal-with-comments_m5.lua │ ├── strings │ │ ├── escape-normal-character.js │ │ ├── escape-normal-character.lua │ │ ├── escape-sequences.js │ │ ├── escape-sequences.lua │ │ ├── hex-escape-sequences.js │ │ ├── hex-escape-sequences.lua │ │ ├── line-continuation.js │ │ ├── line-continuation.lua │ │ ├── multiline-template-first-line-empty.js │ │ ├── multiline-template-first-line-empty.lua │ │ ├── multiline-template-with-backticks.js │ │ ├── multiline-template-with-backticks.lua │ │ ├── multiline-template-with-closing-bracket-at-the-end.js │ │ ├── multiline-template-with-closing-bracket-at-the-end.lua │ │ ├── multiline-template-with-double-brackets.js │ │ ├── multiline-template-with-double-brackets.lua │ │ ├── multiline-template-with-long-double-brackets.js │ │ ├── multiline-template-with-long-double-brackets.lua │ │ ├── multiline-template.js │ │ ├── multiline-template.lua │ │ ├── octal-escape-sequence-follow-by-8.js │ │ ├── octal-escape-sequence-follow-by-8.lua │ │ ├── octal-escape-sequences.js │ │ ├── octal-escape-sequences.lua │ │ ├── simple-typed.lua │ │ ├── simple-typed.ts │ │ ├── simple.js │ │ ├── simple.lua │ │ ├── template-escape-new-line.js │ │ ├── template-escape-new-line.lua │ │ ├── unicode-escape-chars_m5.js │ │ └── unicode-escape-chars_m5.lua │ ├── template-literals │ │ ├── multi-line-template-with-expressions-and-format-patterns_m5.js │ │ ├── multi-line-template-with-expressions-and-format-patterns_m5.lua │ │ ├── multi-line-template-with-expressions-escaped-chars-and-format-patterns_m5.js │ │ ├── multi-line-template-with-expressions-escaped-chars-and-format-patterns_m5.lua │ │ ├── multiline-escape-sequences-new-lines-after_m5.js │ │ ├── multiline-escape-sequences-new-lines-after_m5.lua │ │ ├── multiline-escape-sequences-with-expressions-new-lines-after_m5.js │ │ ├── multiline-escape-sequences-with-expressions-new-lines-after_m5.lua │ │ ├── multiline-escape-sequences-with-expressions_m5.js │ │ ├── multiline-escape-sequences-with-expressions_m5.lua │ │ ├── multiline-escape-sequences_m5.js │ │ ├── multiline-escape-sequences_m5.lua │ │ ├── single-line-template-literal-with-escaped-chars_m5.js │ │ ├── single-line-template-literal-with-escaped-chars_m5.lua │ │ ├── single-line-template-with-expressions-and-format-patterns_m5.js │ │ └── single-line-template-with-expressions-and-format-patterns_m5.lua │ └── unknown │ │ ├── unknown-typed-multiple_m5.lua │ │ ├── unknown-typed-multiple_m5.ts │ │ ├── unknown-typed_m5.lua │ │ └── unknown-typed_m5.ts ├── comments │ ├── class-declaration-with-comments_m5.js │ ├── class-declaration-with-comments_m5.lua │ ├── class-methods-with-comments_m5.js │ ├── class-methods-with-comments_m5.lua │ ├── class-properties-with-comments_m5.js │ ├── class-properties-with-comments_m5.lua │ ├── copyright │ │ ├── copyright-text │ │ │ ├── copyright-with-export_m5.js │ │ │ ├── copyright-with-export_m5.lua │ │ │ ├── copyright-with-import_m5.js │ │ │ ├── copyright-with-import_m5.lua │ │ │ ├── copyright-with-polyfills_m5.js │ │ │ ├── copyright-with-polyfills_m5.lua │ │ │ ├── copyright-with-qualified-name-import_m5.lua │ │ │ ├── copyright-with-qualified-name-import_m5.ts │ │ │ ├── copyright-with-void-type-polyfill_m5.lua │ │ │ └── copyright-with-void-type-polyfill_m5.ts │ │ └── jsdoc │ │ │ ├── copyright-tag │ │ │ ├── copyright-with-export_m5.js │ │ │ ├── copyright-with-export_m5.lua │ │ │ ├── copyright-with-import_m5.js │ │ │ ├── copyright-with-import_m5.lua │ │ │ ├── copyright-with-polyfills_m5.js │ │ │ ├── copyright-with-polyfills_m5.lua │ │ │ ├── copyright-with-qualified-name-import_m5.lua │ │ │ ├── copyright-with-qualified-name-import_m5.ts │ │ │ ├── copyright-with-void-type-polyfill_m5.lua │ │ │ └── copyright-with-void-type-polyfill_m5.ts │ │ │ └── license-tag │ │ │ ├── copyright-with-export_m5.js │ │ │ ├── copyright-with-export_m5.lua │ │ │ ├── copyright-with-import_m5.js │ │ │ ├── copyright-with-import_m5.lua │ │ │ ├── copyright-with-polyfills_m5.js │ │ │ ├── copyright-with-polyfills_m5.lua │ │ │ ├── copyright-with-qualified-name-import_m5.lua │ │ │ ├── copyright-with-qualified-name-import_m5.ts │ │ │ ├── copyright-with-void-type-polyfill_m5.lua │ │ │ └── copyright-with-void-type-polyfill_m5.ts │ ├── export-declaration-with-comments_m5.lua │ ├── export-declaration-with-comments_m5.ts │ ├── function-declaration-inner-comment-line_m5.js │ ├── function-declaration-inner-comment-line_m5.lua │ ├── function-params-with-comments_m5.lua │ ├── function-params-with-comments_m5.ts │ ├── generic-type-leading_m5.lua │ ├── generic-type-leading_m5.ts │ ├── generic-type-trailing_m5.lua │ ├── generic-type-trailing_m5.ts │ ├── if-statement-inner-comment-line_m5.js │ ├── if-statement-inner-comment-line_m5.lua │ ├── if-statement-with-condition-comment_m5.js │ ├── if-statement-with-condition-comment_m5.lua │ ├── leading-and-trailing-comment-complex_m5.lua │ ├── leading-and-trailing-comment-complex_m5.ts │ ├── leading-and-trailing-comment_m5.js │ ├── leading-and-trailing-comment_m5.lua │ ├── member-expression-with-comments_m5.js │ ├── member-expression-with-comments_m5.lua │ ├── mixed-leading-trailing-comments_m5.js │ ├── mixed-leading-trailing-comments_m5.lua │ ├── program-inner-comment-block_m5.js │ ├── program-inner-comment-block_m5.lua │ ├── program-inner-comment-line_m5.js │ ├── program-inner-comment-line_m5.lua │ ├── type-alias-inline_m5.lua │ ├── type-alias-inline_m5.ts │ ├── type-alias-mixed-blocks_m5.lua │ ├── type-alias-mixed-blocks_m5.ts │ ├── unhandled-statement-with-comments_m5.js │ ├── unhandled-statement-with-comments_m5.lua │ ├── variable-declaration-with-object-expression-and-multiple-comments_m5.lua │ └── variable-declaration-with-object-expression-and-multiple-comments_m5.ts ├── complex │ ├── ReactHooks-test.internal_m5.js │ ├── ReactHooks-test.internal_m5.lua │ ├── ReactUpdates-test_m5.jsx │ ├── ReactUpdates-test_m5.lua │ ├── apollo-client-test-switch-break_m5.lua │ ├── apollo-client-test-switch-break_m5.ts │ ├── expand-range_m5.js │ ├── expand-range_m5.lua │ ├── graph-ql-lexer-test.lua │ ├── graph-ql-lexer-test.ts │ ├── graph-ql-printer-add-description_m5.lua │ ├── graph-ql-printer-add-description_m5.ts │ ├── graphql-parser-parse-variable-definition_m5.lua │ ├── graphql-parser-parse-variable-definition_m5.ts │ ├── graphql-type-info-switch-break.lua │ ├── graphql-type-info-switch-break.ts │ ├── increment-decrement-within-function-call_m2.js │ ├── increment-decrement-within-function-call_m2.lua │ ├── jest-config-resolve-config-path-test_m5.lua │ ├── jest-config-resolve-config-path-test_m5.ts │ ├── jest-config-resolve-config-path_m5.lua │ ├── jest-config-resolve-config-path_m5.ts │ ├── jest-fake-timers-type_m5.lua │ ├── jest-fake-timers-type_m5.ts │ ├── jest-reporters-stream-fns_m5.lua │ ├── jest-reporters-stream-fns_m5.ts │ ├── mixed-try-switch_m4.js │ ├── mixed-try-switch_m4.lua │ ├── pretty-format-with-cast-operator.lua │ ├── pretty-format-with-cast-operator.ts │ ├── query-data-ref_spec_m4.js │ ├── query-data-ref_spec_m4.lua │ ├── query-hoc-example_m5.lua │ ├── query-hoc-example_m5.ts │ ├── react-create-react-noop-try-catch_m4.lua │ ├── react-create-react-noop-try-catch_m4.ts │ ├── react-hooks-with-noop-renderer-multiple-strings-concat.js │ ├── react-hooks-with-noop-renderer-multiple-strings-concat.lua │ ├── react-scheduler-try-catch_m4.js │ ├── react-scheduler-try-catch_m4.lua │ ├── simple-react-component_m2.js │ ├── simple-react-component_m2.lua │ ├── variable-declaration-with-complex-object-expression_m5.js │ ├── variable-declaration-with-complex-object-expression_m5.lua │ ├── yoga-config_m5.lua │ └── yoga-config_m5.ts ├── directives │ ├── directive-with-comment-block-auto-import-copyright_m5.js │ ├── directive-with-comment-block-auto-import-copyright_m5.lua │ ├── directive-with-comment-block-auto-import_m5.js │ ├── directive-with-comment-block-auto-import_m5.lua │ ├── directive-with-comment-block_m5.js │ ├── directive-with-comment-block_m5.lua │ ├── directive-with-comment-line_m5.js │ └── directive-with-comment-line_m5.lua ├── expressions │ ├── await │ │ ├── await-identifier_m5.js │ │ ├── await-identifier_m5.lua │ │ ├── await-promise_m5.js │ │ └── await-promise_m5.lua │ ├── call │ │ ├── bind.js │ │ ├── bind.lua │ │ ├── date │ │ │ ├── date-now-with-comments_m5.js │ │ │ ├── date-now-with-comments_m5.lua │ │ │ ├── date-now_m5.js │ │ │ └── date-now_m5.lua │ │ ├── iife-async_m5.js │ │ ├── iife-async_m5.lua │ │ ├── iife-with-body-and-default-params-async_m5.js │ │ ├── iife-with-body-and-default-params-async_m5.lua │ │ ├── iife-with-body-async_m5.js │ │ ├── iife-with-body-async_m5.lua │ │ ├── iife_m2.js │ │ ├── iife_m2.lua │ │ ├── known-array-methods │ │ │ ├── definitely-array │ │ │ │ ├── chained-apply_m5.js │ │ │ │ ├── chained-apply_m5.lua │ │ │ │ ├── chained-call_m5.js │ │ │ │ ├── chained-call_m5.lua │ │ │ │ ├── filter-apply_m5.js │ │ │ │ ├── filter-apply_m5.lua │ │ │ │ ├── filter-call_m5.js │ │ │ │ ├── filter-call_m5.lua │ │ │ │ ├── filter_m5.js │ │ │ │ ├── filter_m5.lua │ │ │ │ ├── map-apply_m5.js │ │ │ │ ├── map-apply_m5.lua │ │ │ │ ├── map-call_m5.js │ │ │ │ ├── map-call_m5.lua │ │ │ │ ├── map_m5.js │ │ │ │ ├── map_m5.lua │ │ │ │ ├── pop-apply_m5.js │ │ │ │ ├── pop-apply_m5.lua │ │ │ │ ├── pop-call_m5.js │ │ │ │ ├── pop-call_m5.lua │ │ │ │ ├── pop_m5.js │ │ │ │ ├── pop_m5.lua │ │ │ │ ├── push-identifier-apply_m5.js │ │ │ │ ├── push-identifier-apply_m5.lua │ │ │ │ ├── push-multiple-apply_m5.js │ │ │ │ ├── push-multiple-apply_m5.lua │ │ │ │ ├── push-multiple-call_m5.js │ │ │ │ ├── push-multiple-call_m5.lua │ │ │ │ ├── push-multiple_m5.js │ │ │ │ ├── push-multiple_m5.lua │ │ │ │ ├── push-single-apply_m5.js │ │ │ │ ├── push-single-apply_m5.lua │ │ │ │ ├── push-single-call_m5.js │ │ │ │ ├── push-single-call_m5.lua │ │ │ │ ├── push-single_m5.js │ │ │ │ ├── push-single_m5.lua │ │ │ │ ├── reduce-apply_m5.js │ │ │ │ ├── reduce-apply_m5.lua │ │ │ │ ├── reduce-call_m5.js │ │ │ │ ├── reduce-call_m5.lua │ │ │ │ ├── reduce-with-init-value-call_m5.js │ │ │ │ ├── reduce-with-init-value-call_m5.lua │ │ │ │ ├── reduce-with-init-value_m5.js │ │ │ │ ├── reduce-with-init-value_m5.lua │ │ │ │ ├── reduce_m5.js │ │ │ │ ├── reduce_m5.lua │ │ │ │ ├── shift-apply_m5.js │ │ │ │ ├── shift-apply_m5.lua │ │ │ │ ├── shift-call_m5.js │ │ │ │ ├── shift-call_m5.lua │ │ │ │ ├── shift_m5.js │ │ │ │ ├── shift_m5.lua │ │ │ │ ├── unshift-identifier-apply_m5.js │ │ │ │ ├── unshift-identifier-apply_m5.lua │ │ │ │ ├── unshift-multiple-apply_m5.js │ │ │ │ ├── unshift-multiple-apply_m5.lua │ │ │ │ ├── unshift-multiple-call_m5.js │ │ │ │ ├── unshift-multiple-call_m5.lua │ │ │ │ ├── unshift-multiple_m5.js │ │ │ │ ├── unshift-multiple_m5.lua │ │ │ │ ├── unshift-single-apply_m5.js │ │ │ │ ├── unshift-single-apply_m5.lua │ │ │ │ ├── unshift-single-call_m5.js │ │ │ │ ├── unshift-single-call_m5.lua │ │ │ │ ├── unshift-single_m5.js │ │ │ │ └── unshift-single_m5.lua │ │ │ └── maybe-array │ │ │ │ ├── chained-apply_m5.js │ │ │ │ ├── chained-apply_m5.lua │ │ │ │ ├── chained-call_m5.js │ │ │ │ ├── chained-call_m5.lua │ │ │ │ ├── chained_m5.js │ │ │ │ ├── chained_m5.lua │ │ │ │ ├── filter-apply_m5.js │ │ │ │ ├── filter-apply_m5.lua │ │ │ │ ├── filter-call_m5.js │ │ │ │ ├── filter-call_m5.lua │ │ │ │ ├── filter_m5.js │ │ │ │ ├── filter_m5.lua │ │ │ │ ├── map-apply_m5.js │ │ │ │ ├── map-apply_m5.lua │ │ │ │ ├── map-call_m5.js │ │ │ │ ├── map-call_m5.lua │ │ │ │ ├── map_m5.js │ │ │ │ ├── map_m5.lua │ │ │ │ ├── pop-apply_m5.js │ │ │ │ ├── pop-apply_m5.lua │ │ │ │ ├── pop-call_m5.js │ │ │ │ ├── pop-call_m5.lua │ │ │ │ ├── pop_m5.js │ │ │ │ ├── pop_m5.lua │ │ │ │ ├── push-identifier-apply_m5.js │ │ │ │ ├── push-identifier-apply_m5.lua │ │ │ │ ├── push-multiple-apply_m5.js │ │ │ │ ├── push-multiple-apply_m5.lua │ │ │ │ ├── push-multiple-call_m5.js │ │ │ │ ├── push-multiple-call_m5.lua │ │ │ │ ├── push-multiple_m5.js │ │ │ │ ├── push-multiple_m5.lua │ │ │ │ ├── push-single-apply_m5.js │ │ │ │ ├── push-single-apply_m5.lua │ │ │ │ ├── push-single-call_m5.js │ │ │ │ ├── push-single-call_m5.lua │ │ │ │ ├── push-single_m5.js │ │ │ │ ├── push-single_m5.lua │ │ │ │ ├── reduce-apply_m5.js │ │ │ │ ├── reduce-apply_m5.lua │ │ │ │ ├── reduce-call_m5.js │ │ │ │ ├── reduce-call_m5.lua │ │ │ │ ├── reduce-with-init-value-call_m5.js │ │ │ │ ├── reduce-with-init-value-call_m5.lua │ │ │ │ ├── reduce-with-init-value_m5.js │ │ │ │ ├── reduce-with-init-value_m5.lua │ │ │ │ ├── reduce_m5.js │ │ │ │ ├── reduce_m5.lua │ │ │ │ ├── shift-apply_m5.js │ │ │ │ ├── shift-apply_m5.lua │ │ │ │ ├── shift-call_m5.js │ │ │ │ ├── shift-call_m5.lua │ │ │ │ ├── shift_m5.js │ │ │ │ ├── shift_m5.lua │ │ │ │ ├── unshift-identifier-apply_m5.js │ │ │ │ ├── unshift-identifier-apply_m5.lua │ │ │ │ ├── unshift-multiple-apply_m5.js │ │ │ │ ├── unshift-multiple-apply_m5.lua │ │ │ │ ├── unshift-multiple-call_m5.js │ │ │ │ ├── unshift-multiple-call_m5.lua │ │ │ │ ├── unshift-multiple_m5.js │ │ │ │ ├── unshift-multiple_m5.lua │ │ │ │ ├── unshift-single-apply_m5.js │ │ │ │ ├── unshift-single-apply_m5.lua │ │ │ │ ├── unshift-single-call_m5.js │ │ │ │ ├── unshift-single-call_m5.lua │ │ │ │ ├── unshift-single_m5.js │ │ │ │ └── unshift-single_m5.lua │ │ ├── known-math-methods │ │ │ ├── invalid-math-methods_m5.js │ │ │ ├── invalid-math-methods_m5.lua │ │ │ ├── mapped-math-methods_m5.js │ │ │ ├── mapped-math-methods_m5.lua │ │ │ ├── math-methods-index-expression_m5.js │ │ │ ├── math-methods-index-expression_m5.lua │ │ │ ├── valid-none-polyfilled-math-methods_m5.js │ │ │ └── valid-none-polyfilled-math-methods_m5.lua │ │ ├── method-apply_m5.js │ │ ├── method-apply_m5.lua │ │ ├── method-call_m5.js │ │ ├── method-call_m5.lua │ │ ├── method-expression-string_m2.js │ │ ├── method-expression-string_m2.lua │ │ ├── method-expression_m2.js │ │ ├── method-expression_m2.lua │ │ ├── method-multi-params-apply_m5.js │ │ ├── method-multi-params-apply_m5.lua │ │ ├── method-nested_m2.js │ │ ├── method-nested_m2.lua │ │ ├── method-react-create-div-element_m2.js │ │ ├── method-react-create-div-element_m2.lua │ │ ├── method-react-is_m5.js │ │ ├── method-react-is_m5.lua │ │ ├── method-react-test-renderer_m5.js │ │ ├── method-react-test-renderer_m5.lua │ │ ├── method-to-string-nested_m2.js │ │ ├── method-to-string-nested_m2.lua │ │ ├── method-to-string_m2.js │ │ ├── method-to-string_m2.lua │ │ ├── method_m2.js │ │ ├── method_m2.lua │ │ ├── multi-params-apply_m5.js │ │ ├── multi-params-apply_m5.lua │ │ ├── nested-call_m2.js │ │ ├── nested-call_m2.lua │ │ ├── new │ │ │ ├── new-date-with-comments_m5.js │ │ │ ├── new-date-with-comments_m5.lua │ │ │ ├── new-date_m5.js │ │ │ └── new-date_m5.lua │ │ ├── no-param_m2.js │ │ ├── no-param_m2.lua │ │ ├── simple-params-apply_m5.js │ │ ├── simple-params-apply_m5.lua │ │ ├── simple-params-call_m5.js │ │ ├── simple-params-call_m5.lua │ │ ├── simple-params_m2.js │ │ ├── simple-params_m2.lua │ │ ├── special-cases │ │ │ ├── chalk-call-add-string_m5.js │ │ │ ├── chalk-call-add-string_m5.lua │ │ │ ├── chalk-call-chained-add-string_m5.js │ │ │ ├── chalk-call-chained-add-string_m5.lua │ │ │ ├── chalk-call-chained_m5.js │ │ │ ├── chalk-call-chained_m5.lua │ │ │ ├── chalk-call_m5.js │ │ │ ├── chalk-call_m5.lua │ │ │ ├── expect-methods_m5.js │ │ │ ├── expect-methods_m5.lua │ │ │ ├── jest-expect-methods_m5.js │ │ │ ├── jest-expect-methods_m5.lua │ │ │ ├── json-call_m5.js │ │ │ ├── json-call_m5.lua │ │ │ ├── parse-int-with-base_m5.js │ │ │ ├── parse-int-with-base_m5.lua │ │ │ ├── parse-int_m5.js │ │ │ ├── parse-int_m5.lua │ │ │ ├── path-call_m5.js │ │ │ ├── path-call_m5.lua │ │ │ ├── string-repeat_m5.js │ │ │ ├── string-repeat_m5.lua │ │ │ ├── symbol-create_m5.js │ │ │ ├── symbol-create_m5.lua │ │ │ ├── symbol-methods_m5.js │ │ │ └── symbol-methods_m5.lua │ │ └── spread-params │ │ │ ├── spread-first-of-multiple-params_m5.js │ │ │ ├── spread-first-of-multiple-params_m5.lua │ │ │ ├── spread-last-of-multiple-params_m5.js │ │ │ ├── spread-last-of-multiple-params_m5.lua │ │ │ ├── spread-middle-of-multiple-params_m5.js │ │ │ ├── spread-middle-of-multiple-params_m5.lua │ │ │ ├── spread-multiple-params_m5.js │ │ │ ├── spread-multiple-params_m5.lua │ │ │ ├── spread-one-param_m5.js │ │ │ └── spread-one-param_m5.lua │ ├── flow-type-cast │ │ ├── simple-type-cast_m6.js │ │ ├── simple-type-cast_m6.lua │ │ ├── type-cast-in-function-call_m6.js │ │ ├── type-cast-in-function-call_m6.lua │ │ ├── type-cast-in-function-return_m6.js │ │ ├── type-cast-in-function-return_m6.lua │ │ ├── type-cast-with-comments_m6.js │ │ └── type-cast-with-comments_m6.lua │ ├── identifier │ │ ├── global-identifiers_m5.js │ │ ├── global-identifiers_m5.lua │ │ ├── keyword-identifiers_m5.js │ │ └── keyword-identifiers_m5.lua │ ├── jsx │ │ ├── simple-expression-ts_m5.lua │ │ ├── simple-expression-ts_m5.tsx │ │ ├── simple-expression_m5.js │ │ └── simple-expression_m5.lua │ ├── member │ │ ├── basic-with-unsupported-id_m5.js │ │ ├── basic-with-unsupported-id_m5.lua │ │ ├── basic_m2.js │ │ ├── basic_m2.lua │ │ ├── computed-basic_m2.js │ │ ├── computed-basic_m2.lua │ │ ├── computed-boolean_m2.js │ │ ├── computed-boolean_m2.lua │ │ ├── computed-expression_m2.js │ │ ├── computed-expression_m2.lua │ │ ├── computed-identifier_m2.js │ │ ├── computed-identifier_m2.lua │ │ ├── computed-numeric_m2.js │ │ ├── computed-numeric_m2.lua │ │ ├── computed-octal_m2.js │ │ ├── computed-octal_m2.lua │ │ ├── computed-with-as-cast_m5.lua │ │ ├── computed-with-as-cast_m5.ts │ │ ├── known-math-methods │ │ │ ├── invalid-math-properties_m5.js │ │ │ ├── invalid-math-properties_m5.lua │ │ │ ├── mapped-math-properties_m5.js │ │ │ ├── mapped-math-properties_m5.lua │ │ │ ├── math-properties-index-expression_m5.js │ │ │ └── math-properties-index-expression_m5.lua │ │ ├── known-number-methods │ │ │ ├── invalid-properties_m5.js │ │ │ ├── invalid-properties_m5.lua │ │ │ ├── mapped-properties_m5.js │ │ │ ├── mapped-properties_m5.lua │ │ │ ├── valid-properties-index-expression_m5.js │ │ │ ├── valid-properties-index-expression_m5.lua │ │ │ ├── valid-properties_m5.js │ │ │ └── valid-properties_m5.lua │ │ ├── unsupported-id-with-cast_m5.lua │ │ ├── unsupported-id-with-cast_m5.ts │ │ ├── with-as-cast_m5.lua │ │ ├── with-as-cast_m5.ts │ │ ├── with-flow-built-ins-as-key-computed_m6.js │ │ ├── with-flow-built-ins-as-key-computed_m6.lua │ │ ├── with-flow-built-ins-as-key_m6.js │ │ ├── with-flow-built-ins-as-key_m6.lua │ │ ├── with-lua-globals-as-key_m5.js │ │ ├── with-lua-globals-as-key_m5.lua │ │ ├── with-lua-reserved-word-as-key_m5.js │ │ └── with-lua-reserved-word-as-key_m5.lua │ ├── optional-call │ │ ├── basic-multiple-optional-statements_m5.js │ │ ├── basic-multiple-optional-statements_m5.lua │ │ ├── basic-optional-statement_m5.js │ │ ├── basic-optional-statement_m5.lua │ │ ├── basic-optional_m5.js │ │ ├── basic-optional_m5.lua │ │ ├── basic-single-optional-statement_m5.js │ │ ├── basic-single-optional-statement_m5.lua │ │ ├── basic-with-unsupported-id_m5.js │ │ ├── basic-with-unsupported-id_m5.lua │ │ ├── computed-basic-optional_m5.js │ │ ├── computed-basic-optional_m5.lua │ │ ├── computed-with-as-cast_m5.lua │ │ ├── computed-with-as-cast_m5.ts │ │ ├── multiple-optional-with-function-call_m5.js │ │ ├── multiple-optional-with-function-call_m5.lua │ │ ├── multiple-optional_m5.js │ │ ├── multiple-optional_m5.lua │ │ ├── unsupported-id-with-cast_m5.lua │ │ ├── unsupported-id-with-cast_m5.ts │ │ ├── with-as-cast_m5.lua │ │ └── with-as-cast_m5.ts │ ├── optional-member │ │ ├── basic-optional_m5.js │ │ ├── basic-optional_m5.lua │ │ ├── basic-with-unsupported-id_m5.js │ │ ├── basic-with-unsupported-id_m5.lua │ │ ├── computed-basic-optional_m5.js │ │ ├── computed-basic-optional_m5.lua │ │ ├── computed-with-as-cast_m5.lua │ │ ├── computed-with-as-cast_m5.ts │ │ ├── unsupported-id-with-cast_m5.lua │ │ ├── unsupported-id-with-cast_m5.ts │ │ ├── with-as-cast_m5.lua │ │ ├── with-as-cast_m5.ts │ │ ├── with-lua-globals-as-key_m5.js │ │ ├── with-lua-globals-as-key_m5.lua │ │ ├── with-lua-reserved-word-as-key_m5.js │ │ └── with-lua-reserved-word-as-key_m5.lua │ ├── regexp │ │ ├── regexp-literals_m5.js │ │ └── regexp-literals_m5.lua │ ├── sequence │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ └── 4_m4.lua │ └── tagged-template │ │ ├── simple_m5.js │ │ └── simple_m5.lua ├── flow-types │ ├── auto-imports │ │ ├── array_m6.js │ │ ├── array_m6.lua │ │ ├── error_m6.js │ │ ├── error_m6.lua │ │ ├── map_m6.js │ │ ├── map_m6.lua │ │ ├── mixed-types_m6.js │ │ ├── mixed-types_m6.lua │ │ ├── object_m6.js │ │ ├── object_m6.lua │ │ ├── promise_m6.js │ │ ├── promise_m6.lua │ │ ├── set_m6.js │ │ ├── set_m6.lua │ │ ├── weakmap_m6.js │ │ └── weakmap_m6.lua │ ├── function │ │ ├── recursive-with-generic-params_m6.js │ │ ├── recursive-with-generic-params_m6.lua │ │ ├── recursive_m6.js │ │ ├── recursive_m6.lua │ │ ├── with-params-and-known-rest-element-with-generic-params_m6.js │ │ ├── with-params-and-known-rest-element-with-generic-params_m6.lua │ │ ├── with-params-and-known-rest-element_m6.js │ │ ├── with-params-and-known-rest-element_m6.lua │ │ ├── with-params-and-unknown-rest-element-with-generic-params_m6.js │ │ ├── with-params-and-unknown-rest-element-with-generic-params_m6.lua │ │ ├── with-params-and-unknown-rest-element_m6.js │ │ ├── with-params-and-unknown-rest-element_m6.lua │ │ ├── with-params-with-generic-params-and-type-constraints-and-variance-sigils_m6.js │ │ ├── with-params-with-generic-params-and-type-constraints-and-variance-sigils_m6.lua │ │ ├── with-params-with-generic-params-and-type-constraints_m6.js │ │ ├── with-params-with-generic-params-and-type-constraints_m6.lua │ │ ├── with-params-with-generic-params-and-variance-sigils_m6.js │ │ ├── with-params-with-generic-params-and-variance-sigils_m6.lua │ │ ├── with-params-with-generic-params_m6.js │ │ ├── with-params-with-generic-params_m6.lua │ │ ├── with-params_m6.js │ │ ├── with-params_m6.lua │ │ ├── without-params-with-generic-params_m6.js │ │ ├── without-params-with-generic-params_m6.lua │ │ ├── without-params_m6.js │ │ └── without-params_m6.lua │ ├── generic-type-annotation │ │ ├── generic-type-annotation-multiple-params2_m6.js │ │ ├── generic-type-annotation-multiple-params2_m6.lua │ │ ├── generic-type-annotation-multiple-params_m6.js │ │ ├── generic-type-annotation-multiple-params_m6.lua │ │ ├── generic-type-annotation-qualified-identifer-nested_m6.js │ │ ├── generic-type-annotation-qualified-identifer-nested_m6.lua │ │ ├── generic-type-annotation-qualified-identifer-simple_m6.js │ │ ├── generic-type-annotation-qualified-identifer-simple_m6.lua │ │ ├── generic-type-annotation-qualified-identifer-with-comments_m6.js │ │ ├── generic-type-annotation-qualified-identifer-with-comments_m6.lua │ │ ├── generic-type-annotation-simple_m6.js │ │ ├── generic-type-annotation-simple_m6.lua │ │ ├── generic-type-annotation-single-param_m6.js │ │ ├── generic-type-annotation-single-param_m6.lua │ │ ├── generic-type-annotation-with-comments_m6.js │ │ └── generic-type-annotation-with-comments_m6.lua │ ├── interface-declaration │ │ ├── empty_m6.js │ │ ├── empty_m6.lua │ │ ├── extends_m6.js │ │ ├── extends_m6.lua │ │ ├── generic-extends_m6.js │ │ ├── generic-extends_m6.lua │ │ ├── generic_m6.js │ │ ├── generic_m6.lua │ │ ├── indexer_m6.js │ │ ├── indexer_m6.lua │ │ ├── nested_m6.js │ │ ├── nested_m6.lua │ │ ├── object-call-property-multiple_m6.js │ │ ├── object-call-property-multiple_m6.lua │ │ ├── object-call-property_m6.js │ │ ├── object-call-property_m6.lua │ │ ├── object-internal-slot_m6.js │ │ ├── object-internal-slot_m6.lua │ │ ├── optional-props_m6.js │ │ ├── optional-props_m6.lua │ │ ├── optional-string-props_m6.js │ │ ├── optional-string-props_m6.lua │ │ ├── simple-props_m6.js │ │ ├── simple-props_m6.lua │ │ ├── string-props_m6.js │ │ └── string-props_m6.lua │ ├── mixed-type │ │ ├── mixed-type-annotation-function-argument_m6.js │ │ ├── mixed-type-annotation-function-argument_m6.lua │ │ ├── mixed-type-annotation-object-property_m6.js │ │ ├── mixed-type-annotation-object-property_m6.lua │ │ ├── mixed-type-annotation-type-alias-declaration_m6.js │ │ ├── mixed-type-annotation-type-alias-declaration_m6.lua │ │ ├── mixed-type-annotation-variable-declaration_m6.js │ │ └── mixed-type-annotation-variable-declaration_m6.lua │ ├── null-literal-type-annotation-function-argument_m6.js │ ├── null-literal-type-annotation-function-argument_m6.lua │ ├── null-literal-type-annotation-object-property_m6.js │ ├── null-literal-type-annotation-object-property_m6.lua │ ├── null-literal-type-annotation-type-alias-declaration_m6.js │ ├── null-literal-type-annotation-type-alias-declaration_m6.lua │ ├── null-literal-type-annotation-variable-declaration_m6.js │ ├── null-literal-type-annotation-variable-declaration_m6.lua │ ├── nullable-type-annotation │ │ ├── function-with-nullable-type-annotation-param_m6.js │ │ ├── function-with-nullable-type-annotation-param_m6.lua │ │ ├── type-alias-with-nullable-type-annotation_m6.js │ │ └── type-alias-with-nullable-type-annotation_m6.lua │ ├── number-literal-type-annotation_m6.js │ ├── number-literal-type-annotation_m6.lua │ ├── object-type-annotation │ │ ├── empty_m6.js │ │ ├── empty_m6.lua │ │ ├── indexer_m6.js │ │ ├── indexer_m6.lua │ │ ├── luau-globals-index-keys_m6.js │ │ ├── luau-globals-index-keys_m6.lua │ │ ├── luau-globals-keys_m6.js │ │ ├── luau-globals-keys_m6.lua │ │ ├── luau-globals-single-index-key_m6.js │ │ ├── luau-globals-single-index-key_m6.lua │ │ ├── luau-globals-string-keys_m6.js │ │ ├── luau-globals-string-keys_m6.lua │ │ ├── mixed_m6.js │ │ ├── mixed_m6.lua │ │ ├── nested_m6.js │ │ ├── nested_m6.lua │ │ ├── object-call-property-multiple_m6.js │ │ ├── object-call-property-multiple_m6.lua │ │ ├── object-call-property_m6.js │ │ ├── object-call-property_m6.lua │ │ ├── object-internal-slot_m6.js │ │ ├── object-internal-slot_m6.lua │ │ ├── optional-props_m6.js │ │ ├── optional-props_m6.lua │ │ ├── optional-string-props_m6.js │ │ ├── optional-string-props_m6.lua │ │ ├── reserved-keyword-index-keys_m6.js │ │ ├── reserved-keyword-index-keys_m6.lua │ │ ├── reserved-keyword-keys_m6.js │ │ ├── reserved-keyword-keys_m6.lua │ │ ├── reserved-keyword-single-index-key_m6.js │ │ ├── reserved-keyword-single-index-key_m6.lua │ │ ├── reserved-keyword-string-keys_m6.js │ │ ├── reserved-keyword-string-keys_m6.lua │ │ ├── simple-props-exact_m6.js │ │ ├── simple-props-exact_m6.lua │ │ ├── simple-props-inexact_m6.js │ │ ├── simple-props-inexact_m6.lua │ │ ├── simple-props_m6.js │ │ ├── simple-props_m6.lua │ │ ├── spread-simple_m6.js │ │ ├── spread-simple_m6.lua │ │ ├── spread-with-props_m6.js │ │ ├── spread-with-props_m6.lua │ │ ├── string-props_m6.js │ │ └── string-props_m6.lua │ ├── qualified-name-mixed-multiple-with-import-type_m6.lua │ ├── qualified-name-mixed-multiple-with-import-type_m6.ts │ ├── qualified-name-nested-with-import-type_m6.lua │ ├── qualified-name-nested-with-import-type_m6.ts │ ├── qualified-name-reexport-mixed-multiple-with-import-type_m6.lua │ ├── qualified-name-reexport-mixed-multiple-with-import-type_m6.ts │ ├── qualified-name-simple-multiple-with-import-type_m6.lua │ ├── qualified-name-simple-multiple-with-import-type_m6.ts │ ├── qualified-name-simple-with-import-type_m6.lua │ ├── qualified-name-simple-with-import-type_m6.ts │ ├── string-literal-type-annotation │ │ ├── function-argument_m6.js │ │ ├── function-argument_m6.lua │ │ ├── generic_m6.js │ │ ├── generic_m6.lua │ │ ├── object-property_m6.js │ │ ├── object-property_m6.lua │ │ ├── type-alias-declaration_m6.js │ │ ├── type-alias-declaration_m6.lua │ │ ├── variable-declaration_m6.js │ │ └── variable-declaration_m6.lua │ ├── tuple │ │ ├── complex_m6.js │ │ ├── complex_m6.lua │ │ ├── duplicate-params_m6.js │ │ ├── duplicate-params_m6.lua │ │ ├── empty-param_m6.js │ │ ├── empty-param_m6.lua │ │ ├── multiple-params_m6.js │ │ ├── multiple-params_m6.lua │ │ ├── single-param_m6.js │ │ └── single-param_m6.lua │ ├── type-alias-simple_m6.js │ ├── type-alias-simple_m6.lua │ ├── type-alias-with-multiple-generics-and-defaults_m6.js │ ├── type-alias-with-multiple-generics-and-defaults_m6.lua │ ├── type-alias-with-multiple-generics_m6.js │ ├── type-alias-with-multiple-generics_m6.lua │ ├── type-alias-with-single-generic-and-default_m6.js │ ├── type-alias-with-single-generic-and-default_m6.lua │ ├── type-alias-with-single-generic_m6.js │ ├── type-alias-with-single-generic_m6.lua │ ├── type-reference-builtins_m6.js │ ├── type-reference-builtins_m6.lua │ ├── typeof │ │ ├── typeof-type-annotation-function-argument_m6.js │ │ ├── typeof-type-annotation-function-argument_m6.lua │ │ ├── typeof-type-annotation-object-property_m6.js │ │ ├── typeof-type-annotation-object-property_m6.lua │ │ ├── typeof-type-annotation-type-alias-declaration_m6.js │ │ ├── typeof-type-annotation-type-alias-declaration_m6.lua │ │ ├── typeof-type-annotation-variable-declaration_m6.js │ │ └── typeof-type-annotation-variable-declaration_m6.lua │ ├── union │ │ ├── union-type-annotation-complex_m6.js │ │ ├── union-type-annotation-complex_m6.lua │ │ ├── union-type-annotation-multiple-number-literals-with-comments_m6.js │ │ ├── union-type-annotation-multiple-number-literals-with-comments_m6.lua │ │ ├── union-type-annotation-multiple-number-literals_m6.js │ │ ├── union-type-annotation-multiple-number-literals_m6.lua │ │ ├── union-type-annotation-simple_m6.js │ │ └── union-type-annotation-simple_m6.lua │ └── void-type-annotation │ │ ├── export-default-return-type_m6.js │ │ ├── export-default-return-type_m6.lua │ │ ├── export-named-args_m6.js │ │ ├── export-named-args_m6.lua │ │ ├── function-return-type-generic_m6.js │ │ ├── function-return-type-generic_m6.lua │ │ ├── function-return-type_m6.js │ │ └── function-return-type_m6.lua ├── jest-globals │ ├── explicit-globals-imported │ │ ├── jest-test-with-expect-and-jest-fn_m7.js │ │ ├── jest-test-with-expect-and-jest-fn_m7.lua │ │ ├── jest-test-with-expect_m7.js │ │ ├── jest-test-with-expect_m7.lua │ │ ├── jest-test-with-hooks-multiple_m7.js │ │ ├── jest-test-with-hooks-multiple_m7.lua │ │ ├── jest-test-with-hooks_m7.js │ │ ├── jest-test-with-hooks_m7.lua │ │ ├── jest-test_m7.js │ │ └── jest-test_m7.lua │ └── implicit-globals │ │ ├── jest-test-implicit-globals-with-copyright_m7.js │ │ ├── jest-test-implicit-globals-with-copyright_m7.lua │ │ ├── jest-test-implicit-globals-with-hooks-multiple_m7.js │ │ ├── jest-test-implicit-globals-with-hooks-multiple_m7.lua │ │ ├── jest-test-implicit-globals-with-hooks-partial-explicit-import_m7.js │ │ ├── jest-test-implicit-globals-with-hooks-partial-explicit-import_m7.lua │ │ ├── jest-test-implicit-globals-with-hooks_m7.js │ │ ├── jest-test-implicit-globals-with-hooks_m7.lua │ │ ├── jest-test-implicit-globals-with-variants_m7.js │ │ ├── jest-test-implicit-globals-with-variants_m7.lua │ │ ├── jest-test-implicit-globals_m7.js │ │ ├── jest-test-implicit-globals_m7.lua │ │ ├── jest-test-with-expect-and-jest-fn_m7.js │ │ ├── jest-test-with-expect-and-jest-fn_m7.lua │ │ ├── jest-test-with-expect_m7.js │ │ └── jest-test-with-expect_m7.lua ├── known-imports │ ├── graphql-known-imports_m8.js │ ├── graphql-known-imports_m8.lua │ ├── jest-known-imports_m8.js │ ├── jest-known-imports_m8.lua │ ├── react-known-imports_m8.js │ ├── react-known-imports_m8.lua │ ├── testing-library-known-imports_m8.js │ └── testing-library-known-imports_m8.lua ├── not-yet-handled │ ├── ts-call-signature-declaration_m5.lua │ └── ts-call-signature-declaration_m5.ts ├── operators │ ├── arithmetic │ │ ├── add-multiple-template-literals_m5.js │ │ ├── add-multiple-template-literals_m5.lua │ │ ├── add-repeated-strings_m5.js │ │ ├── add-repeated-strings_m5.lua │ │ ├── add-strings-with-ternary-operators_m5.js │ │ ├── add-strings-with-ternary-operators_m5.lua │ │ ├── add-with-multiple-string-literals.js │ │ ├── add-with-multiple-string-literals.lua │ │ ├── add-with-string-literals.js │ │ ├── add-with-string-literals.lua │ │ ├── add-with-ternary-operators_m5.js │ │ ├── add-with-ternary-operators_m5.lua │ │ ├── add.js │ │ ├── add.lua │ │ ├── division.js │ │ ├── division.lua │ │ ├── exponential.js │ │ ├── exponential.lua │ │ ├── multiplication.js │ │ ├── multiplication.lua │ │ ├── remainder.js │ │ ├── remainder.lua │ │ ├── subtract.js │ │ └── subtract.lua │ ├── assignment-addition │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4x.js │ │ ├── 2_m4x.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── 5_m4.js │ │ ├── 5_m4.lua │ │ ├── 6_m4.js │ │ └── 6_m4.lua │ ├── assignment-bitwise-and │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ └── 1_m4.lua │ ├── assignment-bitwise-or │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ └── 1_m4.lua │ ├── assignment-bitwise-xor │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ └── 1_m4.lua │ ├── assignment-division │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── 5_m4.js │ │ ├── 5_m4.lua │ │ ├── 6_m4.js │ │ └── 6_m4.lua │ ├── assignment-multiplication │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── 5_m4.js │ │ ├── 5_m4.lua │ │ ├── 6_m4.js │ │ └── 6_m4.lua │ ├── assignment-remainder │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── 5_m4.js │ │ ├── 5_m4.lua │ │ ├── 6_m4.js │ │ └── 6_m4.lua │ ├── assignment-shift-left │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ └── 1_m4.lua │ ├── assignment-shift-right-unsigned │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ └── 2_m4.lua │ ├── assignment-shift-right │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ └── 1_m4.lua │ ├── assignment-subtraction │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── 5_m4.js │ │ ├── 5_m4.lua │ │ ├── 6_m4.js │ │ └── 6_m4.lua │ ├── assignment │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── assignment-with-fallback_m5.js │ │ ├── assignment-with-fallback_m5.lua │ │ ├── destructure-array-identifier_m4.js │ │ ├── destructure-array-identifier_m4.lua │ │ ├── destructure-array_m4.js │ │ ├── destructure-array_m4.lua │ │ ├── destructure-multiple-obj_m4.js │ │ ├── destructure-multiple-obj_m4.lua │ │ ├── destructure-obj-expression-with-alias_m4.js │ │ ├── destructure-obj-expression-with-alias_m4.lua │ │ ├── destructure-obj-expression_m4.js │ │ ├── destructure-obj-expression_m4.lua │ │ ├── destructure-obj-identifier-with-alias_m4.js │ │ ├── destructure-obj-identifier-with-alias_m4.lua │ │ ├── destructure-obj-identifier_m4.js │ │ ├── destructure-obj-identifier_m4.lua │ │ ├── destructure-obj-with-alias_m4.js │ │ ├── destructure-obj-with-alias_m4.lua │ │ ├── destructure-obj_m4.js │ │ └── destructure-obj_m4.lua │ ├── bitwise │ │ ├── and │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ └── 5_m3.lua │ │ ├── or │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ └── 5_m3.lua │ │ ├── shift-left │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ └── 4_m3.lua │ │ ├── shift-right-unsigned │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ └── 5_m3.lua │ │ ├── shift-right │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ └── 4_m3.lua │ │ └── xor │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ └── 5_m3.lua │ ├── instanceof │ │ ├── instanceof-operator-in-if-statement_m5.js │ │ ├── instanceof-operator-in-if-statement_m5.lua │ │ ├── instanceof-operator_m5.js │ │ └── instanceof-operator_m5.lua │ ├── logical │ │ ├── and │ │ │ ├── as-expression-statement-with-call-on-right-nested_m5.js │ │ │ ├── as-expression-statement-with-call-on-right-nested_m5.lua │ │ │ ├── as-expression-statement-with-call-on-right_m5.js │ │ │ ├── as-expression-statement-with-call-on-right_m5.lua │ │ │ ├── as-expression-statement-with-identifier-on-right-nested_m5.js │ │ │ ├── as-expression-statement-with-identifier-on-right-nested_m5.lua │ │ │ ├── as-expression-statement-with-identifier-on-right_m5.js │ │ │ ├── as-expression-statement-with-identifier-on-right_m5.lua │ │ │ ├── right-side-falsy-0_m3.js │ │ │ ├── right-side-falsy-0_m3.lua │ │ │ ├── right-side-falsy-1_m3.js │ │ │ ├── right-side-falsy-1_m3.lua │ │ │ ├── right-side-falsy-2_m3.js │ │ │ ├── right-side-falsy-2_m3.lua │ │ │ ├── right-side-falsy-3_m3.js │ │ │ ├── right-side-falsy-3_m3.lua │ │ │ ├── right-side-falsy-4_m3.js │ │ │ ├── right-side-falsy-4_m3.lua │ │ │ ├── right-side-falsy-5_m3.js │ │ │ ├── right-side-falsy-5_m3.lua │ │ │ ├── right-side-side-effect_m5.js │ │ │ ├── right-side-side-effect_m5.lua │ │ │ ├── right-side-truthy-0_m3.js │ │ │ ├── right-side-truthy-0_m3.lua │ │ │ ├── right-side-truthy-1_m3.js │ │ │ ├── right-side-truthy-1_m3.lua │ │ │ ├── right-side-truthy-2_m3.js │ │ │ ├── right-side-truthy-2_m3.lua │ │ │ ├── right-side-truthy-3_m3.js │ │ │ ├── right-side-truthy-3_m3.lua │ │ │ ├── right-side-truthy-4_m3.js │ │ │ ├── right-side-truthy-4_m3.lua │ │ │ ├── right-side-unknown-0_m3.js │ │ │ ├── right-side-unknown-0_m3.lua │ │ │ ├── right-side-unknown-10_m3.js │ │ │ ├── right-side-unknown-10_m3.lua │ │ │ ├── right-side-unknown-11_m3.js │ │ │ ├── right-side-unknown-11_m3.lua │ │ │ ├── right-side-unknown-12_m3.js │ │ │ ├── right-side-unknown-12_m3.lua │ │ │ ├── right-side-unknown-13_m3.js │ │ │ ├── right-side-unknown-13_m3.lua │ │ │ ├── right-side-unknown-14_m3.js │ │ │ ├── right-side-unknown-14_m3.lua │ │ │ ├── right-side-unknown-15_m3.js │ │ │ ├── right-side-unknown-15_m3.lua │ │ │ ├── right-side-unknown-16_m3.js │ │ │ ├── right-side-unknown-16_m3.lua │ │ │ ├── right-side-unknown-17_m3.js │ │ │ ├── right-side-unknown-17_m3.lua │ │ │ ├── right-side-unknown-18_m3.js │ │ │ ├── right-side-unknown-18_m3.lua │ │ │ ├── right-side-unknown-19_m3.js │ │ │ ├── right-side-unknown-19_m3.lua │ │ │ ├── right-side-unknown-1_m3.js │ │ │ ├── right-side-unknown-1_m3.lua │ │ │ ├── right-side-unknown-20_m3.js │ │ │ ├── right-side-unknown-20_m3.lua │ │ │ ├── right-side-unknown-21_m3.js │ │ │ ├── right-side-unknown-21_m3.lua │ │ │ ├── right-side-unknown-2_m3.js │ │ │ ├── right-side-unknown-2_m3.lua │ │ │ ├── right-side-unknown-3_m3.js │ │ │ ├── right-side-unknown-3_m3.lua │ │ │ ├── right-side-unknown-4_m3.js │ │ │ ├── right-side-unknown-4_m3.lua │ │ │ ├── right-side-unknown-5_m3.js │ │ │ ├── right-side-unknown-5_m3.lua │ │ │ ├── right-side-unknown-6_m3.js │ │ │ ├── right-side-unknown-6_m3.lua │ │ │ ├── right-side-unknown-7_m3.js │ │ │ ├── right-side-unknown-7_m3.lua │ │ │ ├── right-side-unknown-8_m3.js │ │ │ ├── right-side-unknown-8_m3.lua │ │ │ ├── right-side-unknown-9_m3.js │ │ │ ├── right-side-unknown-9_m3.lua │ │ │ ├── ygstyle-example1_5.lua │ │ │ └── ygstyle-example1_5.ts │ │ ├── nullish-coalescing │ │ │ ├── right-side-side-effect_m5.js │ │ │ ├── right-side-side-effect_m5.lua │ │ │ ├── simple-nullish-coalescing_m5.js │ │ │ └── simple-nullish-coalescing_m5.lua │ │ └── or │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 11_m3.js │ │ │ ├── 11_m3.lua │ │ │ ├── 12_m3.js │ │ │ ├── 12_m3.lua │ │ │ ├── 13_m3.js │ │ │ ├── 13_m3.lua │ │ │ ├── 14_m3.js │ │ │ ├── 14_m3.lua │ │ │ ├── 15_m3.js │ │ │ ├── 15_m3.lua │ │ │ ├── 16_m3.js │ │ │ ├── 16_m3.lua │ │ │ ├── 17_m3.js │ │ │ ├── 17_m3.lua │ │ │ ├── 18_m3.js │ │ │ ├── 18_m3.lua │ │ │ ├── 19_m3.js │ │ │ ├── 19_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 20_m3.js │ │ │ ├── 20_m3.lua │ │ │ ├── 21_m3.js │ │ │ ├── 21_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ ├── 5_m3.lua │ │ │ ├── 6_m3.js │ │ │ ├── 6_m3.lua │ │ │ ├── 7_m3.js │ │ │ ├── 7_m3.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ ├── 9_m3.lua │ │ │ ├── as-expression-statement-with-call-on-right-nested_m5.js │ │ │ ├── as-expression-statement-with-call-on-right-nested_m5.lua │ │ │ ├── as-expression-statement-with-call-on-right_m5.js │ │ │ ├── as-expression-statement-with-call-on-right_m5.lua │ │ │ ├── as-expression-statement-with-identifier-on-right-nested_m5.js │ │ │ ├── as-expression-statement-with-identifier-on-right-nested_m5.lua │ │ │ ├── as-expression-statement-with-identifier-on-right_m5.js │ │ │ ├── as-expression-statement-with-identifier-on-right_m5.lua │ │ │ ├── right-side-side-effect_m5.js │ │ │ ├── right-side-side-effect_m5.lua │ │ │ ├── ygstyle-example1_5.lua │ │ │ └── ygstyle-example1_5.ts │ ├── precedence-double-binary-expression_m5.js │ ├── precedence-double-binary-expression_m5.lua │ ├── precedence_m4.js │ ├── precedence_m4.lua │ ├── relational │ │ ├── equality │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ ├── 5_m3.lua │ │ │ ├── 6_m3.js │ │ │ ├── 6_m3.lua │ │ │ ├── 7_m3.js │ │ │ ├── 7_m3.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ ├── 9_m3.lua │ │ │ ├── object_m3.js │ │ │ ├── object_m3.lua │ │ │ ├── typeof-table-with-comments_m5.js │ │ │ ├── typeof-table-with-comments_m5.lua │ │ │ ├── typeof-table_m5.js │ │ │ └── typeof-table_m5.lua │ │ ├── greater-equal-than │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 11_m3x.js │ │ │ ├── 11_m3x.lua │ │ │ ├── 12_m3x.js │ │ │ ├── 12_m3x.lua │ │ │ ├── 13_m3x.js │ │ │ ├── 13_m3x.lua │ │ │ ├── 14_m3x.js │ │ │ ├── 14_m3x.lua │ │ │ ├── 15_m3x.js │ │ │ ├── 15_m3x.lua │ │ │ ├── 16_m3x.js │ │ │ ├── 16_m3x.lua │ │ │ ├── 17_m3x.js │ │ │ ├── 17_m3x.lua │ │ │ ├── 18_m3x.js │ │ │ ├── 18_m3x.lua │ │ │ ├── 19_m3x.js │ │ │ ├── 19_m3x.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 20_m3.js │ │ │ ├── 20_m3.lua │ │ │ ├── 21_m3.js │ │ │ ├── 21_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3x.js │ │ │ ├── 3_m3x.lua │ │ │ ├── 4_m3x.js │ │ │ ├── 4_m3x.lua │ │ │ ├── 5_m3x.js │ │ │ ├── 5_m3x.lua │ │ │ ├── 6_m3x.js │ │ │ ├── 6_m3x.lua │ │ │ ├── 7_m3x.js │ │ │ ├── 7_m3x.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ └── 9_m3.lua │ │ ├── greater-than │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 11_m3.js │ │ │ ├── 11_m3.lua │ │ │ ├── 12_m3.js │ │ │ ├── 12_m3.lua │ │ │ ├── 13_m3x.js │ │ │ ├── 13_m3x.lua │ │ │ ├── 14_m3x.js │ │ │ ├── 14_m3x.lua │ │ │ ├── 15_m3x.js │ │ │ ├── 15_m3x.lua │ │ │ ├── 16_m3x.js │ │ │ ├── 16_m3x.lua │ │ │ ├── 17_m3x.js │ │ │ ├── 17_m3x.lua │ │ │ ├── 18_m3x.js │ │ │ ├── 18_m3x.lua │ │ │ ├── 19_m3x.js │ │ │ ├── 19_m3x.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 20_m3x.js │ │ │ ├── 20_m3x.lua │ │ │ ├── 21_m3.js │ │ │ ├── 21_m3.lua │ │ │ ├── 22_m3.js │ │ │ ├── 22_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3x.js │ │ │ ├── 3_m3x.lua │ │ │ ├── 4_m3x.js │ │ │ ├── 4_m3x.lua │ │ │ ├── 5_m3x.js │ │ │ ├── 5_m3x.lua │ │ │ ├── 6_m3x.js │ │ │ ├── 6_m3x.lua │ │ │ ├── 7_m3x.js │ │ │ ├── 7_m3x.lua │ │ │ ├── 8_m3x.js │ │ │ ├── 8_m3x.lua │ │ │ ├── 9_m3x.js │ │ │ └── 9_m3x.lua │ │ ├── in │ │ │ ├── object-prop_m3.js │ │ │ ├── object-prop_m3.lua │ │ │ ├── object_boolean-literal_m3.js │ │ │ ├── object_boolean-literal_m3.lua │ │ │ ├── object_numeric-literal_m3.js │ │ │ ├── object_numeric-literal_m3.lua │ │ │ ├── object_string-literal_m3.js │ │ │ ├── object_string-literal_m3.lua │ │ │ ├── string-key_m4.js │ │ │ ├── string-key_m4.lua │ │ │ ├── string_m4.js │ │ │ └── string_m4.lua │ │ ├── inequality │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ ├── 5_m3.lua │ │ │ ├── 6_m3.js │ │ │ ├── 6_m3.lua │ │ │ ├── 7_m3.js │ │ │ ├── 7_m3.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ ├── 9_m3.lua │ │ │ ├── object_m3.js │ │ │ ├── object_m3.lua │ │ │ ├── typeof-table-with-comments_m5.js │ │ │ ├── typeof-table-with-comments_m5.lua │ │ │ ├── typeof-table_m5.js │ │ │ └── typeof-table_m5.lua │ │ ├── less-equal-than │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 11_m3x.js │ │ │ ├── 11_m3x.lua │ │ │ ├── 12_m3x.js │ │ │ ├── 12_m3x.lua │ │ │ ├── 13_m3x.js │ │ │ ├── 13_m3x.lua │ │ │ ├── 14_m3x.js │ │ │ ├── 14_m3x.lua │ │ │ ├── 15_m3x.js │ │ │ ├── 15_m3x.lua │ │ │ ├── 16_m3x.js │ │ │ ├── 16_m3x.lua │ │ │ ├── 17_m3x.js │ │ │ ├── 17_m3x.lua │ │ │ ├── 18_m3x.js │ │ │ ├── 18_m3x.lua │ │ │ ├── 19_m3x.js │ │ │ ├── 19_m3x.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 20_m3.js │ │ │ ├── 20_m3.lua │ │ │ ├── 21_m3.js │ │ │ ├── 21_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3x.js │ │ │ ├── 3_m3x.lua │ │ │ ├── 4_m3x.js │ │ │ ├── 4_m3x.lua │ │ │ ├── 5_m3x.js │ │ │ ├── 5_m3x.lua │ │ │ ├── 6_m3x.js │ │ │ ├── 6_m3x.lua │ │ │ ├── 7_m3x.js │ │ │ ├── 7_m3x.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ └── 9_m3.lua │ │ ├── less-than │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 11_m3.js │ │ │ ├── 11_m3.lua │ │ │ ├── 12_m3.js │ │ │ ├── 12_m3.lua │ │ │ ├── 13_m3x.js │ │ │ ├── 13_m3x.lua │ │ │ ├── 14_m3x.js │ │ │ ├── 14_m3x.lua │ │ │ ├── 15_m3x.js │ │ │ ├── 15_m3x.lua │ │ │ ├── 16_m3x.js │ │ │ ├── 16_m3x.lua │ │ │ ├── 17_m3x.js │ │ │ ├── 17_m3x.lua │ │ │ ├── 18_m3x.js │ │ │ ├── 18_m3x.lua │ │ │ ├── 19_m3x.js │ │ │ ├── 19_m3x.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 20_m3x.js │ │ │ ├── 20_m3x.lua │ │ │ ├── 21_m3.js │ │ │ ├── 21_m3.lua │ │ │ ├── 22_m3.js │ │ │ ├── 22_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3x.js │ │ │ ├── 3_m3x.lua │ │ │ ├── 4_m3x.js │ │ │ ├── 4_m3x.lua │ │ │ ├── 5_m3x.js │ │ │ ├── 5_m3x.lua │ │ │ ├── 6_m3x.js │ │ │ ├── 6_m3x.lua │ │ │ ├── 7_m3x.js │ │ │ ├── 7_m3x.lua │ │ │ ├── 8_m3x.js │ │ │ ├── 8_m3x.lua │ │ │ ├── 9_m3x.js │ │ │ └── 9_m3x.lua │ │ ├── strict-equality │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ ├── 5_m3.lua │ │ │ ├── 6_m3.js │ │ │ ├── 6_m3.lua │ │ │ ├── 7_m3.js │ │ │ ├── 7_m3.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ ├── 9_m3.lua │ │ │ ├── typeof-table-with-comments_m5.js │ │ │ ├── typeof-table-with-comments_m5.lua │ │ │ ├── typeof-table_m5.js │ │ │ └── typeof-table_m5.lua │ │ └── strict-inequality │ │ │ ├── 0_m3.js │ │ │ ├── 0_m3.lua │ │ │ ├── 10_m3.js │ │ │ ├── 10_m3.lua │ │ │ ├── 1_m3.js │ │ │ ├── 1_m3.lua │ │ │ ├── 2_m3.js │ │ │ ├── 2_m3.lua │ │ │ ├── 3_m3.js │ │ │ ├── 3_m3.lua │ │ │ ├── 4_m3.js │ │ │ ├── 4_m3.lua │ │ │ ├── 5_m3.js │ │ │ ├── 5_m3.lua │ │ │ ├── 6_m3.js │ │ │ ├── 6_m3.lua │ │ │ ├── 7_m3.js │ │ │ ├── 7_m3.lua │ │ │ ├── 8_m3.js │ │ │ ├── 8_m3.lua │ │ │ ├── 9_m3.js │ │ │ ├── 9_m3.lua │ │ │ ├── typeof-table-with-comments_m5.js │ │ │ ├── typeof-table-with-comments_m5.lua │ │ │ ├── typeof-table_m5.js │ │ │ └── typeof-table_m5.lua │ ├── ternary │ │ ├── 0_m4.js │ │ ├── 0_m4.lua │ │ ├── 1_m4.js │ │ ├── 1_m4.lua │ │ ├── 2_m4.js │ │ ├── 2_m4.lua │ │ ├── 3_m4.js │ │ ├── 3_m4.lua │ │ ├── 4_m4.js │ │ ├── 4_m4.lua │ │ ├── 5_m4.js │ │ ├── 5_m4.lua │ │ ├── 6_m4.js │ │ └── 6_m4.lua │ ├── unary │ │ ├── binary-negation │ │ │ ├── negative-numeric_m2.js │ │ │ ├── negative-numeric_m2.lua │ │ │ ├── positive-numeric_m2.js │ │ │ ├── positive-numeric_m2.lua │ │ │ ├── variable_m2.js │ │ │ └── variable_m2.lua │ │ ├── decrement │ │ │ ├── prefix-identifier_m2.js │ │ │ ├── prefix-identifier_m2.lua │ │ │ ├── suffix-identifier-result_m2.js │ │ │ ├── suffix-identifier-result_m2.lua │ │ │ ├── suffix-identifier_m2.js │ │ │ └── suffix-identifier_m2.lua │ │ ├── delete │ │ │ ├── basic_m2.js │ │ │ ├── basic_m2.lua │ │ │ ├── computed-basic_m2.js │ │ │ ├── computed-basic_m2.lua │ │ │ ├── computed-boolean_m2.js │ │ │ ├── computed-boolean_m2.lua │ │ │ ├── computed-expression_m2.js │ │ │ ├── computed-expression_m2.lua │ │ │ ├── computed-identifier_m2.js │ │ │ ├── computed-identifier_m2.lua │ │ │ ├── computed-numeric_m2.js │ │ │ ├── computed-numeric_m2.lua │ │ │ ├── computed-octal_m2.js │ │ │ └── computed-octal_m2.lua │ │ ├── increment │ │ │ ├── prefix-identifier_m2.js │ │ │ ├── prefix-identifier_m2.lua │ │ │ ├── suffix-identifier-result_m2.js │ │ │ ├── suffix-identifier-result_m2.lua │ │ │ ├── suffix-identifier_m2.js │ │ │ └── suffix-identifier_m2.lua │ │ ├── minus-expression_m2.js │ │ ├── minus-expression_m2.lua │ │ ├── minus-identifier_m2.js │ │ ├── minus-identifier_m2.lua │ │ ├── negation-double_m2.js │ │ ├── negation-double_m2.lua │ │ ├── negation-expression_m2.js │ │ ├── negation-expression_m2.lua │ │ ├── negation-falsy-boolean-literal_m2.js │ │ ├── negation-falsy-boolean-literal_m2.lua │ │ ├── negation-falsy-number-literal_m2.js │ │ ├── negation-falsy-number-literal_m2.lua │ │ ├── negation-falsy-string-literal_m2.js │ │ ├── negation-falsy-string-literal_m2.lua │ │ ├── negation-null_m2.js │ │ ├── negation-null_m2.lua │ │ ├── negation-truthy-boolean-literal_m2.js │ │ ├── negation-truthy-boolean-literal_m2.lua │ │ ├── negation-truthy-number-literal_m2.js │ │ ├── negation-truthy-number-literal_m2.lua │ │ ├── negation-truthy-string-literal_m2.js │ │ ├── negation-truthy-string-literal_m2.lua │ │ ├── negation-undefined_m2.js │ │ ├── negation-undefined_m2.lua │ │ ├── plus-expression_m2.js │ │ ├── plus-expression_m2.lua │ │ ├── plus_m2.js │ │ ├── plus_m2.lua │ │ ├── typeof-expression_m2.js │ │ ├── typeof-expression_m2.lua │ │ ├── typeof_m2.js │ │ ├── typeof_m2.lua │ │ ├── void-literals_m5.js │ │ ├── void-literals_m5.lua │ │ ├── void_m2.js │ │ └── void_m2.lua │ ├── unhandled-assignment_m5.js │ └── unhandled-assignment_m5.lua ├── statements │ ├── assignments │ │ └── array-destructuring │ │ │ ├── destructure-array-missing-values_m4.js │ │ │ └── destructure-array-missing-values_m4.lua │ ├── blocks │ │ ├── empty.js │ │ ├── empty.lua │ │ ├── nested.js │ │ ├── nested.lua │ │ ├── single-variable.js │ │ └── single-variable.lua │ ├── conditional │ │ ├── if-else │ │ │ ├── 0_m4.js │ │ │ ├── 0_m4.lua │ │ │ ├── 1_m4.js │ │ │ ├── 1_m4.lua │ │ │ ├── 2_m4.js │ │ │ ├── 2_m4.lua │ │ │ ├── multiple_statements_m4.js │ │ │ └── multiple_statements_m4.lua │ │ └── switch │ │ │ ├── all-cases-and-default-breaks_m4.js │ │ │ ├── all-cases-and-default-breaks_m4.lua │ │ │ ├── all-cases-and-default-conditionally-breaks_m4.js │ │ │ ├── all-cases-and-default-conditionally-breaks_m4.lua │ │ │ ├── all-cases-break-default-conditionally-breaks_m4.js │ │ │ ├── all-cases-break-default-conditionally-breaks_m4.lua │ │ │ ├── all-cases-break-with-default-no-break_m4.js │ │ │ ├── all-cases-break-with-default-no-break_m4.lua │ │ │ ├── all-cases-breaks-no-default_m4.js │ │ │ ├── all-cases-breaks-no-default_m4.lua │ │ │ ├── all-cases-no-breaks_m4.js │ │ │ ├── all-cases-no-breaks_m4.lua │ │ │ ├── all-cases-one-break-with-default_m4.js │ │ │ ├── all-cases-one-break-with-default_m4.lua │ │ │ ├── all-cases-return-break-or-continue_m5.js │ │ │ ├── all-cases-return-break-or-continue_m5.lua │ │ │ ├── multiple-fall-through-cases-one-break_m4.js │ │ │ ├── multiple-fall-through-cases-one-break_m4.lua │ │ │ ├── multiple-fall-through-cases_m5.js │ │ │ ├── multiple-fall-through-cases_m5.lua │ │ │ ├── one-case-without-break_m4.js │ │ │ ├── one-case-without-break_m4.lua │ │ │ ├── one-fall-through-case-with-breaks_m4.js │ │ │ └── one-fall-through-case-with-breaks_m4.lua │ ├── continue │ │ ├── continue-with-comments.lua │ │ ├── continue-with-comments.ts │ │ ├── continue.lua │ │ └── continue.ts │ ├── declarations │ │ ├── class │ │ │ ├── class-abstract-methods.lua │ │ │ ├── class-abstract-methods.ts │ │ │ ├── class-declaration-access-private-member_m5.lua │ │ │ ├── class-declaration-access-private-member_m5.ts │ │ │ ├── class-declaration-generic-flow_m6.js │ │ │ ├── class-declaration-generic-flow_m6.lua │ │ │ ├── class-declaration-generic-ts_m5.lua │ │ │ ├── class-declaration-generic-ts_m5.ts │ │ │ ├── class-declaration.js │ │ │ ├── class-declaration.lua │ │ │ ├── class-empty-method-with-comment_m5.lua │ │ │ ├── class-empty-method-with-comment_m5.ts │ │ │ ├── class-method-with-rest-args_entity-store_m5.lua │ │ │ ├── class-method-with-rest-args_entity-store_m5.ts │ │ │ ├── class-method-with-rest-args_flow_m6.js │ │ │ ├── class-method-with-rest-args_flow_m6.lua │ │ │ ├── class-method-with-rest-args_jest-console_m5.lua │ │ │ ├── class-method-with-rest-args_jest-console_m5.ts │ │ │ ├── class-methods.js │ │ │ ├── class-methods.lua │ │ │ ├── class-properties-mixed-with-comments.lua │ │ │ ├── class-properties-mixed-with-comments.ts │ │ │ ├── class-properties-mixed.lua │ │ │ ├── class-properties-mixed.ts │ │ │ ├── class-properties-private.lua │ │ │ ├── class-properties-private.ts │ │ │ ├── class-properties-protected.lua │ │ │ ├── class-properties-protected.ts │ │ │ ├── class-properties.js │ │ │ ├── class-properties.lua │ │ │ ├── class-with-constructor-params.lua │ │ │ ├── class-with-constructor-params.ts │ │ │ ├── class-with-constructor.js │ │ │ └── class-with-constructor.lua │ │ ├── react-component-extended-class │ │ │ ├── pure_m6.js │ │ │ ├── pure_m6.lua │ │ │ ├── with-constructor-and-super_m6.js │ │ │ ├── with-constructor-and-super_m6.lua │ │ │ ├── with-custom-method_m6.js │ │ │ ├── with-custom-method_m6.lua │ │ │ ├── with-lifecycle-hooks_m6.js │ │ │ ├── with-lifecycle-hooks_m6.lua │ │ │ ├── with-static-method_m6.js │ │ │ ├── with-static-method_m6.lua │ │ │ ├── with-static-prop_m6.js │ │ │ └── with-static-prop_m6.lua │ │ ├── ts-module │ │ │ ├── empty_m5.lua │ │ │ ├── empty_m5.ts │ │ │ ├── exported │ │ │ │ ├── exported-empty_m5.lua │ │ │ │ ├── exported-empty_m5.ts │ │ │ │ ├── exported-nested-with-class-declaration-exported_m5.lua │ │ │ │ ├── exported-nested-with-class-declaration-exported_m5.ts │ │ │ │ ├── exported-nested-with-type-declaration-exported_m5.lua │ │ │ │ ├── exported-nested-with-type-declaration-exported_m5.ts │ │ │ │ ├── exported-with-class-declaration-exported_m5.lua │ │ │ │ ├── exported-with-class-declaration-exported_m5.ts │ │ │ │ ├── exported-with-class-declaration_m5.lua │ │ │ │ ├── exported-with-class-declaration_m5.ts │ │ │ │ ├── exported-with-function-declaration-exported_m5.lua │ │ │ │ ├── exported-with-function-declaration-exported_m5.ts │ │ │ │ ├── exported-with-function-declaration_m5.lua │ │ │ │ ├── exported-with-function-declaration_m5.ts │ │ │ │ ├── exported-with-type-exported_m5.lua │ │ │ │ ├── exported-with-type-exported_m5.ts │ │ │ │ ├── exported-with-type_m5.lua │ │ │ │ ├── exported-with-type_m5.ts │ │ │ │ ├── exported-with-variable-declaration-exported_m5.lua │ │ │ │ ├── exported-with-variable-declaration-exported_m5.ts │ │ │ │ ├── exported-with-variable-declaration_m5.lua │ │ │ │ └── exported-with-variable-declaration_m5.ts │ │ │ ├── with-class-declaration-exported_m5.lua │ │ │ ├── with-class-declaration-exported_m5.ts │ │ │ ├── with-class-declaration_m5.lua │ │ │ ├── with-class-declaration_m5.ts │ │ │ ├── with-function-declaration-exported_m5.lua │ │ │ ├── with-function-declaration-exported_m5.ts │ │ │ ├── with-function-declaration_m5.lua │ │ │ ├── with-function-declaration_m5.ts │ │ │ ├── with-type-exported_m5.lua │ │ │ ├── with-type-exported_m5.ts │ │ │ ├── with-type_m5.lua │ │ │ ├── with-type_m5.ts │ │ │ ├── with-variable-declaration-exported_m5.lua │ │ │ ├── with-variable-declaration-exported_m5.ts │ │ │ ├── with-variable-declaration_m5.lua │ │ │ └── with-variable-declaration_m5.ts │ │ └── variable │ │ │ ├── array-destructuring │ │ │ ├── destructure-array-identifier-rest_m4.js │ │ │ ├── destructure-array-identifier-rest_m4.lua │ │ │ ├── destructure-array-identifier_m4.js │ │ │ ├── destructure-array-identifier_m4.lua │ │ │ ├── destructure-array-missing-values-large_m4.js │ │ │ ├── destructure-array-missing-values-large_m4.lua │ │ │ ├── destructure-array-missing-values_m4.js │ │ │ ├── destructure-array-missing-values_m4.lua │ │ │ ├── destructure-array-nested-array_m4.js │ │ │ ├── destructure-array-nested-array_m4.lua │ │ │ ├── destructure-array_m4.js │ │ │ └── destructure-array_m4.lua │ │ │ ├── const-with-lua-keyword.js │ │ │ ├── const-with-lua-keyword.lua │ │ │ ├── const.js │ │ │ ├── const.lua │ │ │ ├── declaration-with-fallback_m5.js │ │ │ ├── declaration-with-fallback_m5.lua │ │ │ ├── declaration-with-ts-qualified-name_m5.lua │ │ │ ├── declaration-with-ts-qualified-name_m5.ts │ │ │ ├── function-declaration-empty-with-comment_m5.lua │ │ │ ├── function-declaration-empty-with-comment_m5.ts │ │ │ ├── function-declaration-with-default-values-param-reserved-words_m5.js │ │ │ ├── function-declaration-with-default-values-param-reserved-words_m5.lua │ │ │ ├── function-declaration-with-known-rest-type_m5.lua │ │ │ ├── function-declaration-with-known-rest-type_m5.ts │ │ │ ├── function-declaration-with-known-rest-type_m6.js │ │ │ ├── function-declaration-with-known-rest-type_m6.lua │ │ │ ├── function-declaration-with-typed-variable-flow_m6.js │ │ │ ├── function-declaration-with-typed-variable-flow_m6.lua │ │ │ ├── function-declaration-with-typed-variable_m5.lua │ │ │ ├── function-declaration-with-typed-variable_m5.ts │ │ │ ├── function-expression-different-name_m5.js │ │ │ ├── function-expression-different-name_m5.lua │ │ │ ├── function-expression-mixed_m5.js │ │ │ ├── function-expression-mixed_m5.lua │ │ │ ├── function-expression-same-name_m5.js │ │ │ ├── function-expression-same-name_m5.lua │ │ │ ├── function-return-type-with-comments_m5.lua │ │ │ ├── function-return-type-with-comments_m5.ts │ │ │ ├── identifiers-object-and-array-patterns_m4.js │ │ │ ├── identifiers-object-and-array-patterns_m4.lua │ │ │ ├── object-destructuring │ │ │ ├── destructure-call-expression-single-identifier_m5.js │ │ │ ├── destructure-call-expression-single-identifier_m5.lua │ │ │ ├── destructure-call-expression_m5.js │ │ │ ├── destructure-call-expression_m5.lua │ │ │ ├── destructure-member-expression-single-identifier_m5.js │ │ │ ├── destructure-member-expression-single-identifier_m5.lua │ │ │ ├── destructure-member-expression_m5.js │ │ │ ├── destructure-member-expression_m5.lua │ │ │ ├── destructure-multiple-obj_m4.js │ │ │ ├── destructure-multiple-obj_m4.lua │ │ │ ├── destructure-obj-expression-single-identifier_m5.js │ │ │ ├── destructure-obj-expression-single-identifier_m5.lua │ │ │ ├── destructure-obj-expression-with-alias-single-identifier_m5.js │ │ │ ├── destructure-obj-expression-with-alias-single-identifier_m5.lua │ │ │ ├── destructure-obj-expression-with-alias_m4.js │ │ │ ├── destructure-obj-expression-with-alias_m4.lua │ │ │ ├── destructure-obj-expression_m4.js │ │ │ ├── destructure-obj-expression_m4.lua │ │ │ ├── destructure-obj-identifier-with-alias_m4.js │ │ │ ├── destructure-obj-identifier-with-alias_m4.lua │ │ │ ├── destructure-obj-identifier_m4.js │ │ │ ├── destructure-obj-identifier_m4.lua │ │ │ ├── destructure-obj-nested-obj_m4.js │ │ │ ├── destructure-obj-nested-obj_m4.lua │ │ │ ├── destructure-obj-with-alias_m4.js │ │ │ ├── destructure-obj-with-alias_m4.lua │ │ │ ├── destructure-obj-with-rest-element_m4.js │ │ │ ├── destructure-obj-with-rest-element_m4.lua │ │ │ ├── destructure-obj_m4.js │ │ │ ├── destructure-obj_m4.lua │ │ │ ├── destructure-with-assignment-pattern_m5.js │ │ │ ├── destructure-with-assignment-pattern_m5.lua │ │ │ └── reserved-keywords │ │ │ │ ├── destructure-call-expression-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-call-expression-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-member-expression-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-member-expression-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-expression-with-alias-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-expression-with-alias-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-expression-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-expression-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-identifier-with-alias-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-identifier-with-alias-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-identifier-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-identifier-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-nested-obj-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-nested-obj-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-with-alias-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-with-alias-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-with-reserved-keywords_m5.js │ │ │ │ ├── destructure-obj-with-reserved-keywords_m5.lua │ │ │ │ ├── destructure-obj-with-rest-element-with-reserved-keywords_m5.js │ │ │ │ └── destructure-obj-with-rest-element-with-reserved-keywords_m5.lua │ │ │ ├── single-let-no-value.js │ │ │ ├── single-let-no-value.lua │ │ │ ├── single-let.js │ │ │ ├── single-let.lua │ │ │ ├── three-variables-with-a-function.js │ │ │ ├── three-variables-with-a-function.lua │ │ │ ├── two-variables-let-only-first-value.js │ │ │ ├── two-variables-let-only-first-value.lua │ │ │ ├── two-variables-let-only-second-value.js │ │ │ ├── two-variables-let-only-second-value.lua │ │ │ ├── two-variables-let-two-values.js │ │ │ └── two-variables-let-two-values.lua │ ├── do-while │ │ ├── do-while-nested_m5.js │ │ ├── do-while-nested_m5.lua │ │ ├── do-while-simple_m5.js │ │ ├── do-while-simple_m5.lua │ │ ├── do-while-with-boolean-inferrable-condition_m5.js │ │ ├── do-while-with-boolean-inferrable-condition_m5.lua │ │ ├── do-while-with-unknown-condition_m5.js │ │ └── do-while-with-unknown-condition_m5.lua │ ├── error-handling │ │ ├── throw │ │ │ ├── 0_m4x.js │ │ │ ├── 0_m4x.lua │ │ │ ├── 1_m4x.js │ │ │ ├── 1_m4x.lua │ │ │ ├── 2_m4x.js │ │ │ └── 2_m4x.lua │ │ └── try-catch │ │ │ ├── 0_m4.js │ │ │ ├── 0_m4.lua │ │ │ ├── 1_m4.js │ │ │ ├── 1_m4.lua │ │ │ ├── 2_m4.js │ │ │ ├── 2_m4.lua │ │ │ ├── 3_m4.js │ │ │ ├── 3_m4.lua │ │ │ ├── 4_m4.js │ │ │ ├── 4_m4.lua │ │ │ ├── 5_m4.js │ │ │ ├── 5_m4.lua │ │ │ ├── 6_m4.js │ │ │ ├── 6_m4.lua │ │ │ ├── with-error-array-desctructuring_m5.js │ │ │ ├── with-error-array-desctructuring_m5.lua │ │ │ ├── with-error-object-desctructuring_m5.js │ │ │ └── with-error-object-desctructuring_m5.lua │ ├── export │ │ ├── default-arrow-expression_m5.js │ │ ├── default-arrow-expression_m5.lua │ │ ├── default-call-expression_m5.js │ │ ├── default-call-expression_m5.lua │ │ ├── default-class_m5.lua │ │ ├── default-class_m5.ts │ │ ├── default-complex-expression_m5.js │ │ ├── default-complex-expression_m5.lua │ │ ├── default-direct-named-function_m4.js │ │ ├── default-direct-named-function_m4.lua │ │ ├── default-direct-unnamed-function_m4.js │ │ ├── default-direct-unnamed-function_m4.lua │ │ ├── default-direct_m4.js │ │ ├── default-direct_m4.lua │ │ ├── default-predeclared_m4.js │ │ ├── default-predeclared_m4.lua │ │ ├── multiple-named_m4.js │ │ ├── multiple-named_m4.lua │ │ ├── named-and-default_m4.js │ │ ├── named-and-default_m4.lua │ │ ├── named-class_m5.lua │ │ ├── named-class_m5.ts │ │ ├── named-list-with-aliases_m4.js │ │ ├── named-list-with-aliases_m4.lua │ │ ├── named-list_m4.js │ │ ├── named-list_m4.lua │ │ ├── named-with-type-annotation-arrow-function_m5.lua │ │ ├── named-with-type-annotation-arrow-function_m5.ts │ │ ├── named-with-type-annotation-function_m5.lua │ │ ├── named-with-type-annotation-function_m5.ts │ │ ├── named-with-type-annotation-variable_m5.lua │ │ ├── named-with-type-annotation-variable_m5.ts │ │ ├── reexport-absolute │ │ │ ├── all_m4.js │ │ │ ├── all_m4.lua │ │ │ ├── named-list-with-aliases_m4.js │ │ │ ├── named-list-with-aliases_m4.lua │ │ │ ├── named-list_m4.js │ │ │ └── named-list_m4.lua │ │ ├── reexport-relative │ │ │ ├── all_m4.js │ │ │ ├── all_m4.lua │ │ │ ├── named-list-with-aliases_m4.js │ │ │ ├── named-list-with-aliases_m4.lua │ │ │ ├── named-list_m4.js │ │ │ └── named-list_m4.lua │ │ ├── single-named_m4.js │ │ └── single-named_m4.lua │ ├── for-in │ │ ├── declaration-for-in-statement-with-array-pattern_m5.js │ │ ├── declaration-for-in-statement-with-array-pattern_m5.lua │ │ ├── declaration-for-in-statement-with-nested-array-pattern_m5.js │ │ ├── declaration-for-in-statement-with-nested-array-pattern_m5.lua │ │ ├── declaration-for-in-statement-with-nested-object-pattern_m5.js │ │ ├── declaration-for-in-statement-with-nested-object-pattern_m5.lua │ │ ├── declaration-for-in-statement-with-object-pattern_m5.js │ │ ├── declaration-for-in-statement-with-object-pattern_m5.lua │ │ ├── empty-for-in-statement_m5.js │ │ ├── empty-for-in-statement_m5.lua │ │ ├── nested-for-in-statement_m5.js │ │ ├── nested-for-in-statement_m5.lua │ │ ├── no-declaration-for-in-statement-with-array-pattern_m5.js │ │ ├── no-declaration-for-in-statement-with-array-pattern_m5.lua │ │ ├── no-declaration-for-in-statement-with-identifier_m5.js │ │ ├── no-declaration-for-in-statement-with-identifier_m5.lua │ │ ├── no-declaration-for-in-statement-with-nested-array-pattern_m5.js │ │ ├── no-declaration-for-in-statement-with-nested-array-pattern_m5.lua │ │ ├── no-declaration-for-in-statement-with-nested-object-pattern_m5.js │ │ ├── no-declaration-for-in-statement-with-nested-object-pattern_m5.lua │ │ ├── no-declaration-for-in-statement-with-object-pattern_m5.js │ │ ├── no-declaration-for-in-statement-with-object-pattern_m5.lua │ │ ├── simple-for-in-statement-definitely-array_m5.js │ │ ├── simple-for-in-statement-definitely-array_m5.lua │ │ ├── simple-for-in-statement_m5.js │ │ └── simple-for-in-statement_m5.lua │ ├── for-loops │ │ ├── complex │ │ │ ├── read-arr-index-only_m5.js │ │ │ ├── read-arr-index-only_m5.lua │ │ │ ├── with-directly-using-let-scoped-variable_m5.js │ │ │ ├── with-directly-using-let-scoped-variable_m5.lua │ │ │ ├── with-inner-function-not-using-let-scoped-variable_m5.js │ │ │ ├── with-inner-function-not-using-let-scoped-variable_m5.lua │ │ │ ├── with-inner-function-using-let-scoped-variable-multiple-identifiers_m5.js │ │ │ ├── with-inner-function-using-let-scoped-variable-multiple-identifiers_m5.lua │ │ │ ├── with-inner-function-using-let-scoped-variable_m5.js │ │ │ ├── with-inner-function-using-let-scoped-variable_m5.lua │ │ │ ├── write-arr-element-directly_m5.js │ │ │ ├── write-arr-element-directly_m5.lua │ │ │ ├── write-arr-element-property-and-use-index_m5.js │ │ │ ├── write-arr-element-property-and-use-index_m5.lua │ │ │ ├── write-arr-element-property_m5.js │ │ │ └── write-arr-element-property_m5.lua │ │ └── simple │ │ │ ├── continue │ │ │ ├── nested-for-loops-modifying-temp_m5.js │ │ │ ├── nested-for-loops-modifying-temp_m5.lua │ │ │ ├── nested-for-loops-modifying_m5.js │ │ │ ├── nested-for-loops-modifying_m5.lua │ │ │ ├── nested-for-loops_m5.js │ │ │ ├── nested-for-loops_m5.lua │ │ │ ├── single-for-loop-modifying-temp_m5.js │ │ │ ├── single-for-loop-modifying-temp_m5.lua │ │ │ ├── single-for-loop-modifying_m5.js │ │ │ ├── single-for-loop-modifying_m5.lua │ │ │ ├── single-for-loop_m5.js │ │ │ └── single-for-loop_m5.lua │ │ │ ├── nested-for-loops-modifying-temp_m5.js │ │ │ ├── nested-for-loops-modifying-temp_m5.lua │ │ │ ├── nested-for-loops-modifying_m5.js │ │ │ ├── nested-for-loops-modifying_m5.lua │ │ │ ├── nested-for-loops_m5.js │ │ │ ├── nested-for-loops_m5.lua │ │ │ ├── single-for-loop-modifying-temp_m5.js │ │ │ ├── single-for-loop-modifying-temp_m5.lua │ │ │ ├── single-for-loop-modifying_m5.js │ │ │ ├── single-for-loop-modifying_m5.lua │ │ │ ├── single-for-loop_m5.js │ │ │ └── single-for-loop_m5.lua │ ├── for-of │ │ ├── declaration-for-of-statement-with-array-pattern-missing-values_m5.js │ │ ├── declaration-for-of-statement-with-array-pattern-missing-values_m5.lua │ │ ├── declaration-for-of-statement-with-array-pattern_m5.js │ │ ├── declaration-for-of-statement-with-array-pattern_m5.lua │ │ ├── declaration-for-of-statement-with-nested-array-pattern_m5.js │ │ ├── declaration-for-of-statement-with-nested-array-pattern_m5.lua │ │ ├── declaration-for-of-statement-with-nested-object-pattern_m5.js │ │ ├── declaration-for-of-statement-with-nested-object-pattern_m5.lua │ │ ├── declaration-for-of-statement-with-object-pattern_m5.js │ │ ├── declaration-for-of-statement-with-object-pattern_m5.lua │ │ ├── empty-for-of-statement_m5.js │ │ ├── empty-for-of-statement_m5.lua │ │ ├── nested-for-of-statement_m5.js │ │ ├── nested-for-of-statement_m5.lua │ │ ├── no-declaration-for-of-statement-with-array-pattern_m5.js │ │ ├── no-declaration-for-of-statement-with-array-pattern_m5.lua │ │ ├── no-declaration-for-of-statement-with-identifier_m5.js │ │ ├── no-declaration-for-of-statement-with-identifier_m5.lua │ │ ├── no-declaration-for-of-statement-with-nested-array-pattern_m5.js │ │ ├── no-declaration-for-of-statement-with-nested-array-pattern_m5.lua │ │ ├── no-declaration-for-of-statement-with-nested-object-pattern_m5.js │ │ ├── no-declaration-for-of-statement-with-nested-object-pattern_m5.lua │ │ ├── no-declaration-for-of-statement-with-object-pattern_m5.js │ │ ├── no-declaration-for-of-statement-with-object-pattern_m5.lua │ │ ├── simple-for-of-statement-definitely-array_m5.js │ │ ├── simple-for-of-statement-definitely-array_m5.lua │ │ ├── simple-for-of-statement_m5.js │ │ └── simple-for-of-statement_m5.lua │ ├── import │ │ ├── absolute │ │ │ ├── default-member-and-alias_m4x.js │ │ │ ├── default-member-and-alias_m4x.lua │ │ │ ├── default-type_m5.lua │ │ │ ├── default-type_m5.ts │ │ │ ├── default_m4x.js │ │ │ ├── default_m4x.lua │ │ │ ├── module_m4x.js │ │ │ ├── module_m4x.lua │ │ │ ├── multiple-imports_m4x.js │ │ │ ├── multiple-imports_m4x.lua │ │ │ ├── multiple-members_m4x.js │ │ │ ├── multiple-members_m4x.lua │ │ │ ├── multiple-named-with-dash-in-imported-path_m5.js │ │ │ ├── multiple-named-with-dash-in-imported-path_m5.lua │ │ │ ├── multiple-named-with-dot-in-imported-path_m5.js │ │ │ ├── multiple-named-with-dot-in-imported-path_m5.lua │ │ │ ├── multiple-named-with-mixed-dot-and-dash-in-imported-path_m5.js │ │ │ ├── multiple-named-with-mixed-dot-and-dash-in-imported-path_m5.lua │ │ │ ├── single-member_m4x.js │ │ │ ├── single-member_m4x.lua │ │ │ ├── type-import_m4x.lua │ │ │ └── type-import_m4x.ts │ │ ├── index_m4x.js │ │ ├── index_m4x.lua │ │ ├── polyfill-auto │ │ │ ├── call-expression │ │ │ │ ├── array_m5.js │ │ │ │ ├── array_m5.lua │ │ │ │ ├── clearInterval_m5.js │ │ │ │ ├── clearInterval_m5.lua │ │ │ │ ├── clearTimeout_m5.js │ │ │ │ ├── clearTimeout_m5.lua │ │ │ │ ├── console_m5.js │ │ │ │ ├── console_m5.lua │ │ │ │ ├── object_m5.js │ │ │ │ ├── object_m5.lua │ │ │ │ ├── setInterval_m5.js │ │ │ │ ├── setInterval_m5.lua │ │ │ │ ├── setTimeout_m5.js │ │ │ │ └── setTimeout_m5.lua │ │ │ ├── new-expression │ │ │ │ ├── new-error_m5.js │ │ │ │ ├── new-error_m5.lua │ │ │ │ ├── new-map_m5.js │ │ │ │ ├── new-map_m5.lua │ │ │ │ ├── new-set_m5.js │ │ │ │ ├── new-set_m5.lua │ │ │ │ ├── new-weakmap_m5.js │ │ │ │ └── new-weakmap_m5.lua │ │ │ └── types │ │ │ │ ├── type-array-2_m5.lua │ │ │ │ ├── type-array-2_m5.ts │ │ │ │ ├── type-array_m5.lua │ │ │ │ ├── type-array_m5.ts │ │ │ │ ├── type-error_m5.lua │ │ │ │ ├── type-error_m5.ts │ │ │ │ ├── type-map_m5.lua │ │ │ │ ├── type-map_m5.ts │ │ │ │ ├── type-object_m5.lua │ │ │ │ ├── type-object_m5.ts │ │ │ │ ├── type-promise_m5.lua │ │ │ │ ├── type-promise_m5.ts │ │ │ │ ├── type-promiselike_m5.lua │ │ │ │ ├── type-promiselike_m5.ts │ │ │ │ ├── type-set_m5.lua │ │ │ │ ├── type-set_m5.ts │ │ │ │ ├── type-weakmap_m5.lua │ │ │ │ └── type-weakmap_m5.ts │ │ ├── relative │ │ │ ├── default-deep-nested-folder_m4x.js │ │ │ ├── default-deep-nested-folder_m4x.lua │ │ │ ├── default-parent-folder_m4x.js │ │ │ ├── default-parent-folder_m4x.lua │ │ │ ├── default-same-folder_m4x.js │ │ │ ├── default-same-folder_m4x.lua │ │ │ ├── default-type-deep-nested-folder_m5.lua │ │ │ ├── default-type-deep-nested-folder_m5.ts │ │ │ ├── default-type-parent-folder_m5.lua │ │ │ ├── default-type-parent-folder_m5.ts │ │ │ ├── default-type-same-folder_m5.lua │ │ │ ├── default-type-same-folder_m5.ts │ │ │ ├── import-everything_m4x.js │ │ │ ├── import-everything_m4x.lua │ │ │ ├── module_m4x.js │ │ │ ├── module_m4x.lua │ │ │ ├── multiple-named-with-dash-in-imported-path_m5.js │ │ │ ├── multiple-named-with-dash-in-imported-path_m5.lua │ │ │ ├── multiple-named-with-dot-in-imported-path_m5.js │ │ │ ├── multiple-named-with-dot-in-imported-path_m5.lua │ │ │ ├── multiple-named-with-mixed-dot-and-dash-in-imported-path_m5.js │ │ │ ├── multiple-named-with-mixed-dot-and-dash-in-imported-path_m5.lua │ │ │ ├── multiple-named_m4x.js │ │ │ ├── multiple-named_m4x.lua │ │ │ ├── named-alias_m4x.js │ │ │ ├── named-alias_m4x.lua │ │ │ ├── type-import_m4x.lua │ │ │ └── type-import_m4x.ts │ │ └── ts-import-equals │ │ │ ├── global-import-with-comments_m5.lua │ │ │ ├── global-import-with-comments_m5.ts │ │ │ ├── simple-global-import_m5.lua │ │ │ ├── simple-global-import_m5.ts │ │ │ ├── simple-relative-import_m5.lua │ │ │ └── simple-relative-import_m5.ts │ ├── return │ │ ├── return-conditional-expression_m5.js │ │ ├── return-conditional-expression_m5.lua │ │ ├── return-identifier_m5.js │ │ └── return-identifier_m5.lua │ └── while │ │ ├── while-nested_m5.js │ │ ├── while-nested_m5.lua │ │ ├── while-simple_m5.js │ │ ├── while-simple_m5.lua │ │ ├── while-with-boolean-inferrable-condition_m5.js │ │ ├── while-with-boolean-inferrable-condition_m5.lua │ │ ├── while-with-unknown-condition_m5.js │ │ └── while-with-unknown-condition_m5.lua ├── structural-types │ ├── array │ │ ├── empty.js │ │ ├── empty.lua │ │ ├── mixed-with-three-elements.js │ │ ├── mixed-with-three-elements.lua │ │ ├── spread-multiple-arrays.js │ │ ├── spread-multiple-arrays.lua │ │ ├── spread-multiple-literals.js │ │ ├── spread-multiple-literals.lua │ │ ├── spread-multiple-strings.js │ │ ├── spread-multiple-strings.lua │ │ ├── spread-simple.js │ │ ├── spread-simple.lua │ │ ├── with-one-boolean.js │ │ └── with-one-boolean.lua │ ├── combined │ │ ├── spread-object-and-array-combined-within-array.js │ │ ├── spread-object-and-array-combined-within-array.lua │ │ ├── spread-object-and-array-combined-within-object.js │ │ └── spread-object-and-array-combined-within-object.lua │ ├── functions │ │ ├── arrow │ │ │ ├── async │ │ │ │ ├── with-default-value-and-body-async_m5.js │ │ │ │ ├── with-default-value-and-body-async_m5.lua │ │ │ │ ├── with-default-value-and-shorthand-body-async_m5.js │ │ │ │ ├── with-default-value-and-shorthand-body-async_m5.lua │ │ │ │ ├── with-default-value-async_m5.js │ │ │ │ └── with-default-value-async_m5.lua │ │ │ ├── double.js │ │ │ ├── double.lua │ │ │ ├── simple.js │ │ │ ├── simple.lua │ │ │ ├── with-default-value-array_m5.lua │ │ │ ├── with-default-value-array_m5.ts │ │ │ ├── with-default-value-boolean_m5.lua │ │ │ ├── with-default-value-boolean_m5.ts │ │ │ ├── with-default-value-numeric_m5.lua │ │ │ ├── with-default-value-numeric_m5.ts │ │ │ ├── with-default-value-object_m5.lua │ │ │ ├── with-default-value-object_m5.ts │ │ │ ├── with-default-value-string_m5.lua │ │ │ ├── with-default-value-string_m5.ts │ │ │ ├── with-default-value-typed_m5.lua │ │ │ ├── with-default-value-typed_m5.ts │ │ │ ├── with-default-values-param-reserved-words_m5.js │ │ │ ├── with-default-values-param-reserved-words_m5.lua │ │ │ ├── with-default-values-param.js │ │ │ ├── with-default-values-param.lua │ │ │ ├── with-destructured-arr-param-shorthand-typed_m5.lua │ │ │ ├── with-destructured-arr-param-shorthand-typed_m5.ts │ │ │ ├── with-destructured-arr-param-shorthand_m4.js │ │ │ ├── with-destructured-arr-param-shorthand_m4.lua │ │ │ ├── with-destructured-arr-param-typed_m5.lua │ │ │ ├── with-destructured-arr-param-typed_m5.ts │ │ │ ├── with-destructured-arr-param_m4.js │ │ │ ├── with-destructured-arr-param_m4.lua │ │ │ ├── with-destructured-obj-param-shorthand-typed_m5.lua │ │ │ ├── with-destructured-obj-param-shorthand-typed_m5.ts │ │ │ ├── with-destructured-obj-param-shorthand_m4.js │ │ │ ├── with-destructured-obj-param-shorthand_m4.lua │ │ │ ├── with-destructured-obj-param-typed_m5.lua │ │ │ ├── with-destructured-obj-param-typed_m5.ts │ │ │ ├── with-destructured-obj-param-with-reserved-keywords_m5.js │ │ │ ├── with-destructured-obj-param-with-reserved-keywords_m5.lua │ │ │ ├── with-destructured-obj-param_m4.js │ │ │ ├── with-destructured-obj-param_m4.lua │ │ │ ├── with-generics-multiple_m5.lua │ │ │ ├── with-generics-multiple_m5.ts │ │ │ ├── with-generics_m5.lua │ │ │ ├── with-generics_m5.ts │ │ │ ├── with-multiple-destructured-arr-param_m4.js │ │ │ ├── with-multiple-destructured-arr-param_m4.lua │ │ │ ├── with-multiple-destructured-obj-param-and-default-values-typed_m5.lua │ │ │ ├── with-multiple-destructured-obj-param-and-default-values-typed_m5.ts │ │ │ ├── with-multiple-destructured-obj-param-and-default-values_m4.js │ │ │ ├── with-multiple-destructured-obj-param-and-default-values_m4.lua │ │ │ ├── with-multiple-destructured-obj-param_m4.js │ │ │ ├── with-multiple-destructured-obj-param_m4.lua │ │ │ ├── with-optional-params_m5.lua │ │ │ ├── with-optional-params_m5.ts │ │ │ ├── with-param.js │ │ │ ├── with-param.lua │ │ │ ├── with-type_m5.lua │ │ │ └── with-type_m5.ts │ │ ├── expressions │ │ │ ├── async │ │ │ │ ├── with-default-value-and-body-async_m5.js │ │ │ │ ├── with-default-value-and-body-async_m5.lua │ │ │ │ ├── with-default-value-and-body-infer_m5.js │ │ │ │ ├── with-default-value-and-body-infer_m5.lua │ │ │ │ ├── with-default-value-async_m5.js │ │ │ │ └── with-default-value-async_m5.lua │ │ │ ├── named.js │ │ │ ├── named.lua │ │ │ ├── no-name.js │ │ │ ├── no-name.lua │ │ │ ├── with-default-value-array_m5.lua │ │ │ ├── with-default-value-array_m5.ts │ │ │ ├── with-default-value-boolean_m5.lua │ │ │ ├── with-default-value-boolean_m5.ts │ │ │ ├── with-default-value-numeric_m5.lua │ │ │ ├── with-default-value-numeric_m5.ts │ │ │ ├── with-default-value-object_m5.lua │ │ │ ├── with-default-value-object_m5.ts │ │ │ ├── with-default-value-string_m5.lua │ │ │ ├── with-default-value-string_m5.ts │ │ │ ├── with-default-value-typed_m5.lua │ │ │ ├── with-default-value-typed_m5.ts │ │ │ ├── with-default-values-param-reserved-words_m5.js │ │ │ ├── with-default-values-param-reserved-words_m5.lua │ │ │ ├── with-destructured-arr-param-typed_m5.lua │ │ │ ├── with-destructured-arr-param-typed_m5.ts │ │ │ ├── with-destructured-arr-param_m4.js │ │ │ ├── with-destructured-arr-param_m4.lua │ │ │ ├── with-destructured-obj-param-typed_m5.lua │ │ │ ├── with-destructured-obj-param-typed_m5.ts │ │ │ ├── with-destructured-obj-param-with-reserved-keywords_m5.js │ │ │ ├── with-destructured-obj-param-with-reserved-keywords_m5.lua │ │ │ ├── with-destructured-obj-param_m4.js │ │ │ ├── with-destructured-obj-param_m4.lua │ │ │ ├── with-generics-multiple_m5.lua │ │ │ ├── with-generics-multiple_m5.ts │ │ │ ├── with-generics_m5.lua │ │ │ ├── with-generics_m5.ts │ │ │ ├── with-multiple-destructured-arr-param_m4.js │ │ │ ├── with-multiple-destructured-arr-param_m4.lua │ │ │ ├── with-multiple-destructured-obj-param-and-default-values-typed_m5.lua │ │ │ ├── with-multiple-destructured-obj-param-and-default-values-typed_m5.ts │ │ │ ├── with-multiple-destructured-obj-param-and-default-values_m4.js │ │ │ ├── with-multiple-destructured-obj-param-and-default-values_m4.lua │ │ │ ├── with-multiple-destructured-obj-param_m4.js │ │ │ ├── with-multiple-destructured-obj-param_m4.lua │ │ │ ├── with-optional-params_m5.lua │ │ │ ├── with-optional-params_m5.ts │ │ │ ├── with-type_m5.lua │ │ │ └── with-type_m5.ts │ │ ├── named │ │ │ ├── async │ │ │ │ ├── with-default-value-and-body-async_m5.js │ │ │ │ ├── with-default-value-and-body-async_m5.lua │ │ │ │ ├── with-default-value-and-single-return-statement-async_m5.js │ │ │ │ ├── with-default-value-and-single-return-statement-async_m5.lua │ │ │ │ ├── with-default-value-async_m5.js │ │ │ │ └── with-default-value-async_m5.lua │ │ │ ├── empty-single-parameter.js │ │ │ ├── empty-single-parameter.lua │ │ │ ├── empty-single-typed-parameter.lua │ │ │ ├── empty-single-typed-parameter.ts │ │ │ ├── empty-typed-string-return-value.lua │ │ │ ├── empty-typed-string-return-value.ts │ │ │ ├── empty-typed-void-return-value.lua │ │ │ ├── empty-typed-void-return-value.ts │ │ │ ├── empty.js │ │ │ ├── empty.lua │ │ │ ├── with-default-value-array_m5.lua │ │ │ ├── with-default-value-array_m5.ts │ │ │ ├── with-default-value-boolean_m5.lua │ │ │ ├── with-default-value-boolean_m5.ts │ │ │ ├── with-default-value-numeric_m5.lua │ │ │ ├── with-default-value-numeric_m5.ts │ │ │ ├── with-default-value-object_m5.lua │ │ │ ├── with-default-value-object_m5.ts │ │ │ ├── with-default-value-string_m5.lua │ │ │ ├── with-default-value-string_m5.ts │ │ │ ├── with-default-value-typed_m5.lua │ │ │ ├── with-default-value-typed_m5.ts │ │ │ ├── with-destructured-arr-param-typed_m5.lua │ │ │ ├── with-destructured-arr-param-typed_m5.ts │ │ │ ├── with-destructured-arr-param_m4.js │ │ │ ├── with-destructured-arr-param_m4.lua │ │ │ ├── with-destructured-obj-param-typed_m5.lua │ │ │ ├── with-destructured-obj-param-typed_m5.ts │ │ │ ├── with-destructured-obj-param-with-reserved-keywords_m5.js │ │ │ ├── with-destructured-obj-param-with-reserved-keywords_m5.lua │ │ │ ├── with-destructured-obj-param_m4.js │ │ │ ├── with-destructured-obj-param_m4.lua │ │ │ ├── with-generics-multiple_m5.lua │ │ │ ├── with-generics-multiple_m5.ts │ │ │ ├── with-generics_m5.lua │ │ │ ├── with-generics_m5.ts │ │ │ ├── with-multiple-destructured-arr-param_m4.js │ │ │ ├── with-multiple-destructured-arr-param_m4.lua │ │ │ ├── with-multiple-destructured-obj-param-and-default-values-typed_m5.lua │ │ │ ├── with-multiple-destructured-obj-param-and-default-values-typed_m5.ts │ │ │ ├── with-multiple-destructured-obj-param-and-default-values_m4.js │ │ │ ├── with-multiple-destructured-obj-param-and-default-values_m4.lua │ │ │ ├── with-multiple-destructured-obj-param_m4.js │ │ │ ├── with-multiple-destructured-obj-param_m4.lua │ │ │ ├── with-optional-params_m5.lua │ │ │ └── with-optional-params_m5.ts │ │ └── recursive │ │ │ ├── arrow_m2.js │ │ │ ├── arrow_m2.lua │ │ │ ├── expression_m2.js │ │ │ ├── expression_m2.lua │ │ │ ├── named.js │ │ │ └── named.lua │ └── object │ │ ├── empty.js │ │ ├── empty.lua │ │ ├── method-expression-property-function-expression-with-args_m2.js │ │ ├── method-expression-property-function-expression-with-args_m2.lua │ │ ├── method-expression-property-function-expression_m2.js │ │ ├── method-expression-property-function-expression_m2.lua │ │ ├── method-expression-property-with-args_m2.js │ │ ├── method-expression-property-with-args_m2.lua │ │ ├── method-expression-property_m2.js │ │ ├── method-expression-property_m2.lua │ │ ├── method-function-expression-typed_m2.lua │ │ ├── method-function-expression-typed_m2.ts │ │ ├── method-function-expression-with-args-typed_m2.lua │ │ ├── method-function-expression-with-args-typed_m2.ts │ │ ├── method-function-expression-with-args_m2.js │ │ ├── method-function-expression-with-args_m2.lua │ │ ├── method-function-expression_m2.js │ │ ├── method-function-expression_m2.lua │ │ ├── method-simple-typed_m2.lua │ │ ├── method-simple-typed_m2.ts │ │ ├── method-simple-with-args-typed_m2.lua │ │ ├── method-simple-with-args-typed_m2.ts │ │ ├── method-simple-with-args_m2.js │ │ ├── method-simple-with-args_m2.lua │ │ ├── method-simple_m2.js │ │ ├── method-simple_m2.lua │ │ ├── method-with-lua-global-as-key_m5.js │ │ ├── method-with-lua-global-as-key_m5.lua │ │ ├── method-with-lua-reserved-keyword-as-key_m5.js │ │ ├── method-with-lua-reserved-keyword-as-key_m5.lua │ │ ├── object-method.js │ │ ├── object-method.lua │ │ ├── object-with-lua-global-as-key_m5.js │ │ ├── object-with-lua-global-as-key_m5.lua │ │ ├── object-with-lua-reserved-keyword-as-key_m5.js │ │ ├── object-with-lua-reserved-keyword-as-key_m5.lua │ │ ├── single-exponent-number-key-to-boolean.js │ │ ├── single-exponent-number-key-to-boolean.lua │ │ ├── single-false-key-to-boolean.js │ │ ├── single-false-key-to-boolean.lua │ │ ├── single-identifier-to-boolean.js │ │ ├── single-identifier-to-boolean.lua │ │ ├── single-number-key-to-boolean.js │ │ ├── single-number-key-to-boolean.lua │ │ ├── single-octal-number-key-to-boolean.js │ │ ├── single-octal-number-key-to-boolean.lua │ │ ├── spread-explicit-property-removal_m5.js │ │ ├── spread-explicit-property-removal_m5.lua │ │ ├── spread-multiple-literals.js │ │ ├── spread-multiple-literals.lua │ │ ├── spread-multiple-properties.js │ │ ├── spread-multiple-properties.lua │ │ ├── spread-simple.js │ │ └── spread-simple.lua └── ts-types │ ├── array │ ├── complex-array_m5.lua │ ├── complex-array_m5.ts │ ├── simple-array_m5.lua │ └── simple-array_m5.ts │ ├── as │ ├── cast-with-ts-qualified-name_m5.lua │ ├── cast-with-ts-qualified-name_m5.ts │ ├── double-cast_m5.lua │ ├── double-cast_m5.ts │ ├── function-param_m5.lua │ ├── function-param_m5.ts │ ├── return-statement_m5.lua │ ├── return-statement_m5.ts │ ├── variable-declaration_m5.lua │ └── variable-declaration_m5.ts │ ├── enum │ ├── autoincrement_m5.lua │ ├── autoincrement_m5.ts │ ├── empty_m5.lua │ ├── empty_m5.ts │ ├── simple_m5.lua │ ├── simple_m5.ts │ ├── unions_m5.lua │ └── unions_m5.ts │ ├── function │ ├── recursive_m5.lua │ ├── recursive_m5.ts │ ├── with-default-type-params_m5.lua │ ├── with-default-type-params_m5.ts │ ├── with-params-and-known-rest-element_m5.lua │ ├── with-params-and-known-rest-element_m5.ts │ ├── with-params-and-unknown-rest-element_m5.lua │ ├── with-params-and-unknown-rest-element_m5.ts │ ├── with-params_m5.lua │ ├── with-params_m5.ts │ ├── with-type-params_m5.lua │ ├── with-type-params_m5.ts │ ├── without-params_m5.lua │ └── without-params_m5.ts │ ├── indexed-access-type │ ├── with-keyof.lua │ ├── with-keyof.ts │ ├── with-number-keyword_m5.lua │ ├── with-number-keyword_m5.ts │ ├── with-string_m5.lua │ ├── with-string_m5.ts │ ├── with-type-reference_m5.lua │ ├── with-type-reference_m5.ts │ ├── with-type-union.lua │ └── with-type-union.ts │ ├── interface │ ├── generic-extending-multiple_m5.lua │ ├── generic-extending-multiple_m5.ts │ ├── generic-extending_m5.lua │ ├── generic-extending_m5.ts │ ├── generic-with-default-and-comment_m5.lua │ ├── generic-with-default-and-comment_m5.ts │ ├── generic-with-default_m5.lua │ ├── generic-with-default_m5.ts │ ├── simple-extending_m5.lua │ ├── simple-extending_m5.ts │ ├── simple-generic_m5.lua │ ├── simple-generic_m5.ts │ ├── simple_m5.lua │ └── simple_m5.ts │ ├── intersection │ ├── ts-intersection-type-multiple-mixed-union_m5.lua │ ├── ts-intersection-type-multiple-mixed-union_m5.ts │ ├── ts-intersection-type-multiple_m5.lua │ ├── ts-intersection-type-multiple_m5.ts │ ├── ts-intersection-type-simple_m5.lua │ └── ts-intersection-type-simple_m5.ts │ ├── literal-types-declaration_m5.lua │ ├── literal-types-declaration_m5.ts │ ├── literal-types-type-declaration_m5.lua │ ├── literal-types-type-declaration_m5.ts │ ├── luau-globals-index-keys_m5.lua │ ├── luau-globals-index-keys_m5.ts │ ├── luau-globals-keys_m5.lua │ ├── luau-globals-keys_m5.ts │ ├── luau-globals-string-keys_m5.lua │ ├── luau-globals-string-keys_m5.ts │ ├── non-null │ ├── double_m5.lua │ ├── double_m5.ts │ ├── in-a-function-call_m5.lua │ ├── in-a-function-call_m5.ts │ ├── in-a-index-expression_m5.lua │ ├── in-a-index-expression_m5.ts │ ├── simple_m5.lua │ ├── simple_m5.ts │ ├── triple_m5.lua │ └── triple_m5.ts │ ├── object-keyword │ ├── object-keyword-type-alias_m5.lua │ ├── object-keyword-type-alias_m5.ts │ ├── object-keyword-type-annotation_m5.lua │ └── object-keyword-type-annotation_m5.ts │ ├── reserved-keyword-index-keys_m5.lua │ ├── reserved-keyword-index-keys_m5.ts │ ├── reserved-keyword-keys_m5.lua │ ├── reserved-keyword-keys_m5.ts │ ├── reserved-keyword-string-keys_m5.lua │ ├── reserved-keyword-string-keys_m5.ts │ ├── ts-index-signature_m5.lua │ ├── ts-index-signature_m5.ts │ ├── ts-index-signature_multiple_m5.lua │ ├── ts-index-signature_multiple_m5.ts │ ├── ts-index-signature_multiple_with_property_signature_m5.lua │ ├── ts-index-signature_multiple_with_property_signature_m5.ts │ ├── ts-index-signature_with_property_signature_m5.lua │ ├── ts-index-signature_with_property_signature_m5.ts │ ├── ts-method-signature-inline-type-annotation_m5.lua │ ├── ts-method-signature-inline-type-annotation_m5.ts │ ├── ts-method-signature-simple_m5.lua │ ├── ts-method-signature-simple_m5.ts │ ├── ts-method-signature-with-params_m5.lua │ ├── ts-method-signature-with-params_m5.ts │ ├── ts-method-signature-with-rest-params_m5.lua │ ├── ts-method-signature-with-rest-params_m5.ts │ ├── ts-parenthesized-type_m5.lua │ ├── ts-parenthesized-type_m5.ts │ ├── ts-property-signature-with-identifier-key_m5.lua │ ├── ts-property-signature-with-identifier-key_m5.ts │ ├── ts-property-signature-with-string-literal-key_m5.lua │ ├── ts-property-signature-with-string-literal-key_m5.ts │ ├── ts-qualified-name-mixed-multiple-with-import-type_m5.lua │ ├── ts-qualified-name-mixed-multiple-with-import-type_m5.ts │ ├── ts-qualified-name-nested-with-import-type_m5.lua │ ├── ts-qualified-name-nested-with-import-type_m5.ts │ ├── ts-qualified-name-nested_m5.lua │ ├── ts-qualified-name-nested_m5.ts │ ├── ts-qualified-name-reexport-mixed-multiple-with-import-type_m5.lua │ ├── ts-qualified-name-reexport-mixed-multiple-with-import-type_m5.ts │ ├── ts-qualified-name-simple-multiple-with-import-type_m5.lua │ ├── ts-qualified-name-simple-multiple-with-import-type_m5.ts │ ├── ts-qualified-name-simple-with-import-type_m5.lua │ ├── ts-qualified-name-simple-with-import-type_m5.ts │ ├── ts-qualified-name-simple_m5.lua │ ├── ts-qualified-name-simple_m5.ts │ ├── ts-type-predicate │ ├── function-return-type_m5.lua │ └── function-return-type_m5.ts │ ├── ts-type-query │ ├── function-param_m5.lua │ ├── function-param_m5.ts │ ├── function-return-type_m5.lua │ ├── function-return-type_m5.ts │ ├── type-alias_m5.lua │ └── type-alias_m5.ts │ ├── ts-type-reference-builtins_m5.lua │ ├── ts-type-reference-builtins_m5.ts │ ├── tuple │ ├── complex_m5.lua │ ├── complex_m5.ts │ ├── duplicate-params_m5.lua │ ├── duplicate-params_m5.ts │ ├── empty-param_m5.lua │ ├── empty-param_m5.ts │ ├── multiple-params_m5.lua │ ├── multiple-params_m5.ts │ ├── single-param_m5.lua │ └── single-param_m5.ts │ ├── type-alias-generic2_m5.lua │ ├── type-alias-generic2_m5.ts │ ├── type-alias-generic_m5.lua │ ├── type-alias-generic_m5.ts │ ├── type-alias-optionals_m5.lua │ ├── type-alias-optionals_m5.ts │ ├── type-literal-nested.lua │ ├── type-literal-nested.ts │ ├── type-literal-optionals_m5.lua │ ├── type-literal-optionals_m5.ts │ ├── type-literal-simple.lua │ ├── type-literal-simple.ts │ └── union │ ├── ts-union-type-complex_m5.lua │ ├── ts-union-type-complex_m5.ts │ ├── ts-union-type-simple_m5.lua │ └── ts-union-type-simple_m5.ts ├── custom-webpack.config.js ├── docs └── JS-To-Lua.png ├── jest.config.ts ├── jest.preset.js ├── js-to-lua.config.json ├── libs ├── convert │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── config │ │ │ ├── assigned-to.config.ts │ │ │ └── no-shadow-identifiers.config.ts │ │ │ ├── convert-program.ts │ │ │ └── handlers │ │ │ ├── declaration │ │ │ ├── class │ │ │ │ ├── cases │ │ │ │ │ ├── class-declaration-methods.handler.ts │ │ │ │ │ ├── class-declaration-static-properties.handler.ts │ │ │ │ │ ├── default │ │ │ │ │ │ ├── class-declaration-constructor.handler.ts │ │ │ │ │ │ ├── class-declaration-default.handler.ts │ │ │ │ │ │ ├── class-declaration-methods.handler.ts │ │ │ │ │ │ ├── class-declaration-type-private.handler.ts │ │ │ │ │ │ ├── class-declaration-type-statics.handler.ts │ │ │ │ │ │ ├── class-declaration-type.handler.ts │ │ │ │ │ │ └── class-declaration-variable-declaration.handler.ts │ │ │ │ │ └── react │ │ │ │ │ │ ├── react-class-declaration-constructor.handler.ts │ │ │ │ │ │ ├── react-class-declaration-methods.handler.ts │ │ │ │ │ │ ├── react-class-declaration-type-private.handler.ts │ │ │ │ │ │ ├── react-class-declaration-type-statics.handler.ts │ │ │ │ │ │ ├── react-class-declaration-type.handler.ts │ │ │ │ │ │ ├── react-class-declaration-variable-declaration.handler.ts │ │ │ │ │ │ ├── react-class-declaration.handler.ts │ │ │ │ │ │ └── react.helpers.ts │ │ │ │ ├── class-constructor-ts-parameter.handler.ts │ │ │ │ ├── class-declaration.handler.spec.ts │ │ │ │ ├── class-declaration.handler.ts │ │ │ │ ├── class-declaration.utils.ts │ │ │ │ ├── class-methods-properties.handler.ts │ │ │ │ ├── class-static-property.handler.ts │ │ │ │ ├── class-ts-parameter-property.handler.ts │ │ │ │ ├── non-static-initialized-class-properties.handler.ts │ │ │ │ └── ts-parameter-property.handler.ts │ │ │ ├── convert-to-function-declaration.handler.ts │ │ │ ├── declaration.handler.ts │ │ │ ├── flow-interface-declaration.handler.spec.ts │ │ │ ├── flow-interface-declaration.handler.ts │ │ │ ├── function-declaration.handler.spec.ts │ │ │ ├── function-declaration.handler.ts │ │ │ ├── ts-enum-declaration.handler.ts │ │ │ ├── ts-interface-declaration.handler.ts │ │ │ ├── ts-module-block.handler.ts │ │ │ ├── ts-module-declaration.handler.ts │ │ │ ├── ts-module-declaration.helpers.ts │ │ │ ├── type-alias-declaration.handler.ts │ │ │ ├── variable-declaration.handler.spec.ts │ │ │ └── variable-declaration.handler.ts │ │ │ ├── expression-statement.handler.ts │ │ │ ├── expression │ │ │ ├── array-expression.handler.spec.ts │ │ │ ├── array-expression.handler.ts │ │ │ ├── arrow-expression.handler.ts │ │ │ ├── await-expression.handler.spec.ts │ │ │ ├── await-expression.handler.ts │ │ │ ├── binary-expression │ │ │ │ ├── add-operator-as-string.handler.ts │ │ │ │ ├── add-operator.handler.ts │ │ │ │ ├── arithmetic-operator.handler.ts │ │ │ │ ├── binary-expression.handler.spec.ts │ │ │ │ ├── binary-expression.handler.ts │ │ │ │ ├── compare-operator.handler.ts │ │ │ │ ├── loose-equals-operator.handler.ts │ │ │ │ ├── loose-not-equals-operator.handler.ts │ │ │ │ ├── operand-as-string.handler.ts │ │ │ │ ├── power-operator.handler.ts │ │ │ │ ├── strict-equals-operator.handler.ts │ │ │ │ ├── strict-not-equals-operator.handler.ts │ │ │ │ ├── type-of-object.handler.spec.ts │ │ │ │ └── type-of-object.handler.ts │ │ │ ├── call │ │ │ │ ├── call-expression-arguments-as-statement.handler.ts │ │ │ │ ├── call-expression-arguments.handler.ts │ │ │ │ ├── call-expression-as-statement.handler.ts │ │ │ │ ├── call-expression-default.handler.ts │ │ │ │ ├── call-expression.handler.spec.ts │ │ │ │ ├── call-expression.handler.ts │ │ │ │ ├── callee-expression.handler.ts │ │ │ │ ├── optional-call-expression.handler.spec.ts │ │ │ │ ├── optional-call-expression.handler.ts │ │ │ │ └── special-cases │ │ │ │ │ ├── call-expression-apply-method.handlers.ts │ │ │ │ │ ├── call-expression-bind.handler.ts │ │ │ │ │ ├── call-expression-call-method.handlers.ts │ │ │ │ │ ├── call-expression-chalk-method.handler.ts │ │ │ │ │ ├── call-expression-computed-property.handler.ts │ │ │ │ │ ├── call-expression-date-method.handler.ts │ │ │ │ │ ├── call-expression-dot-notation.handler.ts │ │ │ │ │ ├── call-expression-known-number-methods.handler.spec.ts │ │ │ │ │ ├── call-expression-known-number-methods.handler.ts │ │ │ │ │ ├── call-expression-parse-int.handler.ts │ │ │ │ │ ├── call-expression-special-cases.handler.ts │ │ │ │ │ ├── call-expression-string-repeat-method.handler.ts │ │ │ │ │ ├── call-expression-symbol-methods.handlers.ts │ │ │ │ │ ├── call-expression-to-string-method.handlers.ts │ │ │ │ │ ├── chalk.utils.ts │ │ │ │ │ ├── know-array-methods │ │ │ │ │ ├── array-polyfilled-method-call.handler.ts │ │ │ │ │ ├── array-pop-method-call.handler.ts │ │ │ │ │ ├── array-push-method-call.handler.ts │ │ │ │ │ ├── array-shift-method-call.handler.ts │ │ │ │ │ ├── array-unshift-method-call.handler.ts │ │ │ │ │ ├── call-expression-known-array-method.handler.spec.ts │ │ │ │ │ ├── call-expression-known-array-method.handler.ts │ │ │ │ │ ├── is-array-method.ts │ │ │ │ │ ├── is-array-node.ts │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── known-math-methods │ │ │ │ │ ├── call-expression-known-math-methods.handler.spec.ts │ │ │ │ │ └── call-expression-known-math-methods.handler.ts │ │ │ │ │ └── utils.ts │ │ │ ├── conditional-expression.handler.spec.ts │ │ │ ├── conditional-expression.handler.ts │ │ │ ├── expression.handler.ts │ │ │ ├── flow-type-cast.handler.spec.ts │ │ │ ├── flow-type-cast.handler.ts │ │ │ ├── function-body.handler.ts │ │ │ ├── function-expression.handler.ts │ │ │ ├── handle-expression-as-numeric.ts │ │ │ ├── identifier-global-lua.handler.ts │ │ │ ├── identifier-handler-types.ts │ │ │ ├── identifier-reserved-keyword.handler.ts │ │ │ ├── identifier.handler.spec.ts │ │ │ ├── identifier.handler.ts │ │ │ ├── logical-expression │ │ │ │ ├── logical-and-expression.handler.ts │ │ │ │ ├── logical-expression.handler.spec.ts │ │ │ │ ├── logical-expression.handler.ts │ │ │ │ ├── logical-nullish-coalescing-expression.handler.ts │ │ │ │ └── logical-or-expression.handler.ts │ │ │ ├── member-expression.handler.spec.ts │ │ │ ├── member-expression.handler.ts │ │ │ ├── member │ │ │ │ └── special-cases │ │ │ │ │ ├── known-math-properties │ │ │ │ │ ├── member-expression-known-math-properties.handler.spec.ts │ │ │ │ │ └── member-expression-known-math-properties.handler.ts │ │ │ │ │ ├── member-expression-known-number-properties.handler.spec.ts │ │ │ │ │ ├── member-expression-known-number-properties.handler.ts │ │ │ │ │ └── member-expression-special-cases.handler.ts │ │ │ ├── new-expression-date.handler.ts │ │ │ ├── new-expression.handler.spec.ts │ │ │ ├── new-expression.handler.ts │ │ │ ├── object-expression │ │ │ │ ├── as-statement │ │ │ │ │ ├── object-expression-as-statement.handler.spec.ts │ │ │ │ │ ├── object-expression-as-statement.handler.ts │ │ │ │ │ ├── object-expression-with-spread-as-statement.handler.ts │ │ │ │ │ ├── object-expression-without-spread-as-statement.handler.ts │ │ │ │ │ ├── object-field-as-statement.handler.ts │ │ │ │ │ ├── object-method-as-statement.handler.ts │ │ │ │ │ ├── object-property-as-statement.handler.ts │ │ │ │ │ ├── object-property-value-as-statement.handler.ts │ │ │ │ │ ├── object-value-function-as-statement.handler.ts │ │ │ │ │ └── single-field-table-constructor-to-return.ts │ │ │ │ ├── babel-assignment-pattern.ts │ │ │ │ ├── object-expression-with-spread.handler.ts │ │ │ │ ├── object-expression-without-spread.handler.ts │ │ │ │ ├── object-expression.handler.spec.ts │ │ │ │ ├── object-expression.handler.ts │ │ │ │ ├── object-expression.types.ts │ │ │ │ ├── object-field.handler.ts │ │ │ │ ├── object-key-expression.handler.ts │ │ │ │ ├── object-method.handler.ts │ │ │ │ ├── object-property-identifier.handler.ts │ │ │ │ ├── object-property-value.handler.ts │ │ │ │ ├── object-property.handler.ts │ │ │ │ └── object-value-function-expression.handler.ts │ │ │ ├── optional-member-expression.handler.spec.ts │ │ │ ├── optional-member-expression.handler.ts │ │ │ ├── property-from-base.handler.ts │ │ │ ├── react-function-body.handler.ts │ │ │ ├── sequence-expression-as-statement.handler.ts │ │ │ ├── sequence-expression.handler.spec.ts │ │ │ ├── sequence-expression.handler.ts │ │ │ ├── special-cases-helpers │ │ │ │ ├── handler-map.ts │ │ │ │ ├── is-math-method.ts │ │ │ │ └── is-number-method.ts │ │ │ ├── spread-element-properties.handler.spec.ts │ │ │ ├── spread-element-properties.handler.ts │ │ │ ├── tagged-template-expression.handler.spec.ts │ │ │ ├── tagged-template-expression.handler.ts │ │ │ ├── this-expression.handler.ts │ │ │ ├── ts-as-expression.handler.spec.ts │ │ │ ├── ts-as-expression.handler.ts │ │ │ ├── ts-non-null-expression.handler.spec.ts │ │ │ ├── ts-non-null-expression.handler.ts │ │ │ ├── unary-expression.handler.spec.ts │ │ │ ├── unary-expression.handler.ts │ │ │ └── update-expression.handler.ts │ │ │ ├── function-params-with-body.handler.ts │ │ │ ├── function-params.types.ts │ │ │ ├── function-return-type.handler.ts │ │ │ ├── handle-as-boolean.ts │ │ │ ├── inner-statement-body-handler.ts │ │ │ ├── l-val.handler.ts │ │ │ ├── param-ref-generator.ts │ │ │ ├── pattern │ │ │ ├── array-pattern-destructuring.handler.ts │ │ │ └── object-pattern-destructuring.handler.ts │ │ │ ├── primitives │ │ │ ├── big-int.handler.spec.ts │ │ │ ├── big-int.handler.ts │ │ │ ├── boolean.handler.spec.ts │ │ │ ├── boolean.handler.ts │ │ │ ├── null.handler.spec.ts │ │ │ ├── null.handler.ts │ │ │ ├── numeric.handler.spec.ts │ │ │ ├── numeric.handler.ts │ │ │ ├── regexp.handler.spec.ts │ │ │ ├── regexp.handler.ts │ │ │ ├── split-string-by.spec.ts │ │ │ ├── split-string-by.ts │ │ │ ├── string.handler.spec.ts │ │ │ ├── string.handler.ts │ │ │ ├── template-literal.handler.spec.ts │ │ │ └── template-literal.handler.ts │ │ │ ├── program │ │ │ ├── declaration │ │ │ │ ├── program-class-declaration-react.handler.spec.ts │ │ │ │ ├── program-class-declaration.handler.spec.ts │ │ │ │ ├── program-function-declaration.spec.ts │ │ │ │ ├── program-ts-enum-declaration.handler.spec.ts │ │ │ │ ├── program-ts-interface-declaration.handler.spec.ts │ │ │ │ ├── program-ts-module-declaration.spec.ts │ │ │ │ ├── program-type-alias-declaration.spec.ts │ │ │ │ └── program-variable-declaration.handler.spec.ts │ │ │ ├── expression │ │ │ │ ├── program-await-expression.handler.spec.ts │ │ │ │ ├── program-call-expression.handler.spec.ts │ │ │ │ ├── program-conditional-expression.handler.spec.ts │ │ │ │ ├── program-flow-type-cast-expression.handler.spec.ts │ │ │ │ ├── program-known-array-method-call.handler.spec.ts │ │ │ │ ├── program-new-expression.handler.spec.ts │ │ │ │ ├── program-optional-call-expression.handler.spec.ts │ │ │ │ ├── program-optional-member-expression.handler.spec.ts │ │ │ │ ├── program-sequence-expression.handler.spec.ts │ │ │ │ ├── program-tagged-template-expression.handler.spec.ts │ │ │ │ ├── program-ts-as-expression.handler.spec.ts │ │ │ │ └── program-ts-non-null-expression.handler.spec.ts │ │ │ ├── program-array-expression.handler.spec.ts │ │ │ ├── program-arrow-function.spec.ts │ │ │ ├── program-binary-expression.spec.ts │ │ │ ├── program-block-statement.handler.spec.ts │ │ │ ├── program-boolean.handler.spec.ts │ │ │ ├── program-call-expression-known-math-methods.handler.spec.ts │ │ │ ├── program-call-expression-known-number-methods.handler.spec.ts │ │ │ ├── program-call-expression-known-number-properties.handler.spec.ts │ │ │ ├── program-directive.handler.spec.ts │ │ │ ├── program-function-expression.spec.ts │ │ │ ├── program-logical-expression.spec.ts │ │ │ ├── program-member-expression.handler.spec.ts │ │ │ ├── program-method-call-expression.spec.ts │ │ │ ├── program-numeric.handler.spec.ts │ │ │ ├── program-object-expression.handler.spec.ts │ │ │ ├── program-string.handler.spec.ts │ │ │ ├── program-template-literal.handler.spec.ts │ │ │ ├── program-type-annotations.handler.spec.ts │ │ │ ├── program-unary-expression.handler.spec.ts │ │ │ ├── program-update-expression.handler.spec.ts │ │ │ ├── program.handler.ts │ │ │ ├── program.spec.utils.ts │ │ │ ├── statement │ │ │ │ ├── export │ │ │ │ │ ├── program-export-default.handler.spec.ts │ │ │ │ │ ├── program-export-mixed.handler.spec.ts │ │ │ │ │ └── program-export-named.handler.spec.ts │ │ │ │ ├── import │ │ │ │ │ └── program-import.handler.spec.ts │ │ │ │ ├── program-assignment-expression.handler.spec.ts │ │ │ │ ├── program-assignment-pattern.handler.spec.ts │ │ │ │ ├── program-assignment-statement.handler.spec.ts │ │ │ │ ├── program-do-while-statement-handler.spec.ts │ │ │ │ ├── program-for-in-statement-handler.spec.ts │ │ │ │ ├── program-for-of-statement-handler.spec.ts │ │ │ │ ├── program-for-statement-handler.spec.ts │ │ │ │ ├── program-if-statement-handler.spec.ts │ │ │ │ ├── program-return-statement.handler.spec.ts │ │ │ │ ├── program-switch-statement.handler.spec.ts │ │ │ │ ├── program-throw-statement.handler.spec.ts │ │ │ │ ├── program-try-statement.handler.spec.ts │ │ │ │ ├── program-ts-import-equals-declaration-handler.spec.ts │ │ │ │ └── program-while-statement-handler.spec.ts │ │ │ └── type │ │ │ │ ├── flow │ │ │ │ ├── program-null-literal-type-annotation.handler.spec.ts │ │ │ │ ├── program-nullable-type-annotation.handler.spec.ts │ │ │ │ ├── program-object-type-annotation.handler.spec.ts │ │ │ │ ├── program-qualified-type-identifier.handler.spec.ts │ │ │ │ ├── program-string-literal-type-annotation.handler.spec.ts │ │ │ │ └── program-tuple-type-annotation.handler.spec.ts │ │ │ │ ├── program-ts-function-type-params.handler.spec.ts │ │ │ │ ├── program-ts-method-signature.handler.spec.ts │ │ │ │ ├── program-ts-tuple-type.handler.spec.ts │ │ │ │ ├── program-ts-type-array.handler.spec.ts │ │ │ │ └── ts │ │ │ │ ├── program-ts-basic-types.handler.spec.ts │ │ │ │ ├── program-ts-indexed-access-type.spec.ts │ │ │ │ └── program-ts-qualified-name.handler.spec.ts │ │ │ ├── rest-element.handler.ts │ │ │ ├── statement │ │ │ ├── assignment │ │ │ │ ├── assignment-expression-as-statement.handler.spec.ts │ │ │ │ ├── assignment-expression-as-statement.handler.ts │ │ │ │ ├── assignment-expression.handler.spec.ts │ │ │ │ ├── assignment-expression.handler.ts │ │ │ │ ├── assignment-pattern.handler.spec.ts │ │ │ │ ├── assignment-pattern.handler.ts │ │ │ │ ├── assignment-statement-array-pattern-destructuring.handler.ts │ │ │ │ ├── assignment-statement-get-operator.ts │ │ │ │ └── assignment-statement-object-pattern-destructuring.handler.ts │ │ │ ├── block-statement.handler.spec.ts │ │ │ ├── block-statement.handler.ts │ │ │ ├── break-statement.handler.spec.ts │ │ │ ├── break-statement.handler.ts │ │ │ ├── continue-statement-handler-config.ts │ │ │ ├── continue-statement.handler.spec.ts │ │ │ ├── continue-statement.handler.ts │ │ │ ├── do-while-statement.handler.spec.ts │ │ │ ├── do-while-statement.handler.ts │ │ │ ├── export │ │ │ │ ├── export-all.handler.ts │ │ │ │ ├── export-default.handler.spec.ts │ │ │ │ ├── export-default.handler.ts │ │ │ │ ├── export-named-specifier.handler.ts │ │ │ │ ├── export-named.handler.spec.ts │ │ │ │ ├── export-named.handler.ts │ │ │ │ ├── export-namespace-specifier.handler.ts │ │ │ │ ├── export-specifier.handler.ts │ │ │ │ ├── extract-declaration-metadata.ts │ │ │ │ ├── index.spec.ts │ │ │ │ └── index.ts │ │ │ ├── expression-statement.handler.ts │ │ │ ├── for-in-statement.handler.spec.ts │ │ │ ├── for-in-statement.handler.ts │ │ │ ├── for-of-statement-extract-statement.ts │ │ │ ├── for-of-statement.handler.spec.ts │ │ │ ├── for-of-statement.handler.ts │ │ │ ├── for-statement-extract-declaration.ts │ │ │ ├── for-statement │ │ │ │ ├── for-statement-let-declaration.handler.ts │ │ │ │ ├── for-statement.handler.spec.ts │ │ │ │ ├── for-statement.handler.ts │ │ │ │ ├── init-expression.handler.ts │ │ │ │ └── update-expression.handler.ts │ │ │ ├── if-statement.handler.spec.ts │ │ │ ├── if-statement.handler.ts │ │ │ ├── import │ │ │ │ ├── import-declaration.handler.spec.ts │ │ │ │ ├── import-declaration.handler.ts │ │ │ │ ├── import-default-specifier.handler.spec.ts │ │ │ │ ├── import-default-specifier.handler.ts │ │ │ │ ├── import-expression.handler.ts │ │ │ │ ├── import-module-declaration.handler.ts │ │ │ │ ├── import-named-specifier.handler.spec.ts │ │ │ │ ├── import-named-specifier.handler.ts │ │ │ │ ├── import-namespace-specifier.handler.spec.ts │ │ │ │ ├── import-namespace-specifier.handler.ts │ │ │ │ ├── import-specifier.handler.ts │ │ │ │ └── index.ts │ │ │ ├── return-statement.handler.spec.ts │ │ │ ├── return-statement.handler.ts │ │ │ ├── statement.handler.ts │ │ │ ├── switch-statement │ │ │ │ ├── switch-statement-all-cases-returning-optional.handler.ts │ │ │ │ ├── switch-statement-default.handler.ts │ │ │ │ ├── switch-statement.handler.spec.ts │ │ │ │ ├── switch-statement.handler.ts │ │ │ │ └── utils.ts │ │ │ ├── throw-statement.handler.spec.ts │ │ │ ├── throw-statement.handler.ts │ │ │ ├── try-statement.handler.spec.ts │ │ │ ├── try-statement.handler.ts │ │ │ ├── ts-import-equals-declaration.handler.spec.ts │ │ │ ├── ts-import-equals-declaration.handler.ts │ │ │ ├── while-statement.handler.spec.ts │ │ │ └── while-statement.handler.ts │ │ │ └── type │ │ │ ├── flow │ │ │ ├── any-type-annotation.handler.spec.ts │ │ │ ├── any-type-annotation.handler.ts │ │ │ ├── boolean-type-annotation.handler.spec.ts │ │ │ ├── boolean-type-annotation.handler.ts │ │ │ ├── flow-generic-type-annotation.handler.spec.ts │ │ │ ├── flow-generic-type-annotation.handler.ts │ │ │ ├── flow-generic-type-built-in-annotation.handler.spec.ts │ │ │ ├── flow-generic-type-built-in-annotation.handler.ts │ │ │ ├── flow-generic-type-special-cases.handler.ts │ │ │ ├── flow-type-parameter-declaration.handler.ts │ │ │ ├── flow-type.handler.ts │ │ │ ├── function-type-annotation.handler.spec.ts │ │ │ ├── function-type-annotation.handler.ts │ │ │ ├── generic-type-annotation.handler.ts │ │ │ ├── mixed-type-annotation.handler.spec.ts │ │ │ ├── mixed-type-annotation.handler.ts │ │ │ ├── null-literal-type-annotation.spec.ts │ │ │ ├── null-literal-type-annotation.ts │ │ │ ├── nullable-type-annotation.handler.spec.ts │ │ │ ├── nullable-type-annotation.handler.ts │ │ │ ├── number-literal-type-annotation.handler.spec.ts │ │ │ ├── number-literal-type-annotation.handler.ts │ │ │ ├── number-type-annotation.handler.spec.ts │ │ │ ├── number-type-annotation.handler.ts │ │ │ ├── object-type-annotation.handler.spec.ts │ │ │ ├── object-type-annotation.handler.ts │ │ │ ├── object-type-indexer.handler.ts │ │ │ ├── object-type-property.handler.ts │ │ │ ├── object-type-spread-property.handler.ts │ │ │ ├── qualified-identifer.handler.ts │ │ │ ├── string-literal-type-annotation.handler.spec.ts │ │ │ ├── string-literal-type-annotation.handler.ts │ │ │ ├── string-type-annotation.handler.spec.ts │ │ │ ├── string-type-annotation.handler.ts │ │ │ ├── tuple-type-annotation.handler.spec.ts │ │ │ ├── tuple-type-annotation.handler.ts │ │ │ ├── type-alias.handler.spec.ts │ │ │ ├── type-alias.handler.ts │ │ │ ├── type-annotation.handler.spec.ts │ │ │ ├── type-annotation.handler.ts │ │ │ ├── type-parameter-declaration.handler.spec.ts │ │ │ ├── type-parameter.handler.spec.ts │ │ │ ├── type-parameter.handler.ts │ │ │ ├── typeof-type-annotation.handler.spec.ts │ │ │ ├── typeof-type-annotation.handler.ts │ │ │ ├── union-type-annotation.handler.spec.ts │ │ │ ├── union-type-annotation.handler.ts │ │ │ ├── void-type-annotation.handler.spec.ts │ │ │ └── void-type-annotation.handler.ts │ │ │ ├── infer-type.ts │ │ │ ├── ts │ │ │ ├── ts-any-keyword.handler.ts │ │ │ ├── ts-array-type.handler.spec.ts │ │ │ ├── ts-array-type.handler.ts │ │ │ ├── ts-boolean-keyword.handler.ts │ │ │ ├── ts-entity-name.handler.ts │ │ │ ├── ts-function-method-type.handler.ts │ │ │ ├── ts-function-type.handler.spec.ts │ │ │ ├── ts-function-type.handler.ts │ │ │ ├── ts-index-signature.handler.spec.ts │ │ │ ├── ts-index-signature.handler.ts │ │ │ ├── ts-indexed-access-type.spec.ts │ │ │ ├── ts-indexed-access-type.ts │ │ │ ├── ts-interface-body.handler.ts │ │ │ ├── ts-literal-type.handler.spec.ts │ │ │ ├── ts-literal-type.handler.ts │ │ │ ├── ts-method-signature.handler.spec.ts │ │ │ ├── ts-method-signature.handler.ts │ │ │ ├── ts-never-keyword.handler.ts │ │ │ ├── ts-null-keyword.handler.ts │ │ │ ├── ts-number-keyword.handler.ts │ │ │ ├── ts-object-keyword.handler.ts │ │ │ ├── ts-parenthesized-type.handler.spec.ts │ │ │ ├── ts-parenthesized-type.handler.ts │ │ │ ├── ts-property-signature.handler.spec.ts │ │ │ ├── ts-property-signature.handler.ts │ │ │ ├── ts-qualified-name.handler.spec.ts │ │ │ ├── ts-qualified-name.handler.ts │ │ │ ├── ts-string-keyword.handler.ts │ │ │ ├── ts-tuple-type.handler.spec.ts │ │ │ ├── ts-tuple-type.handler.ts │ │ │ ├── ts-type-alias-declaration.handler.ts │ │ │ ├── ts-type-annotation.handler.ts │ │ │ ├── ts-type-element.handler.ts │ │ │ ├── ts-type-intersection.handler.ts │ │ │ ├── ts-type-literal.handler.spec.ts │ │ │ ├── ts-type-literal.handler.ts │ │ │ ├── ts-type-parameter-declaration.handler.spec.ts │ │ │ ├── ts-type-parameter-declaration.handler.ts │ │ │ ├── ts-type-parameter.handler.ts │ │ │ ├── ts-type-predicate.handler.ts │ │ │ ├── ts-type-query.handler.ts │ │ │ ├── ts-type-reference-built-in.handler.spec.ts │ │ │ ├── ts-type-reference-built-in.handler.ts │ │ │ ├── ts-type-reference-handler.spec.ts │ │ │ ├── ts-type-reference-handler.ts │ │ │ ├── ts-type-reference-special-cases.handler.ts │ │ │ ├── ts-type-union.handler.ts │ │ │ ├── ts-undefined-keyword.handler.ts │ │ │ ├── ts-unknown-keyword.handler.ts │ │ │ └── ts-void-keyword.handler.ts │ │ │ ├── type-annotation.handler.ts │ │ │ └── type-parameter-declaration.handler.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── diff-tool │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── attempt-fix-patch.spec.ts │ │ │ ├── attempt-fix-patch.ts │ │ │ ├── conflict │ │ │ ├── auto-resolve-strategy.spec.ts │ │ │ ├── auto-resolve-strategy.ts │ │ │ ├── conflict-factory.spec.ts │ │ │ ├── conflict-factory.ts │ │ │ ├── conflict.spec.ts │ │ │ ├── conflict.ts │ │ │ ├── conflict.types.ts │ │ │ ├── index.ts │ │ │ ├── match-comments-strategy.spec.ts │ │ │ ├── match-comments-strategy.ts │ │ │ ├── upgrade-version-header-strategy.spec.ts │ │ │ ├── upgrade-version-header-strategy.ts │ │ │ ├── utilities.spec.ts │ │ │ └── utilities.ts │ │ │ ├── deviations.spec.ts │ │ │ ├── deviations.ts │ │ │ ├── diff-tool.spec.ts │ │ │ ├── diff-tool.ts │ │ │ ├── diff-tool.types.ts │ │ │ ├── get-branch-file.ts │ │ │ ├── js-to-lua.types.ts │ │ │ ├── log-conflicts-summary.spec.ts │ │ │ ├── log-conflicts-summary.ts │ │ │ ├── minimize-conflicts.spec.ts │ │ │ ├── minimize-conflicts.ts │ │ │ ├── rename-files.spec.ts │ │ │ └── rename-files.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── fast-follow-commands │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── index.js │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── commands │ │ │ ├── apply-patch.ts │ │ │ ├── compare.ts │ │ │ ├── get-config.ts │ │ │ ├── gh-utils.spec.ts │ │ │ ├── gh-utils.ts │ │ │ ├── pr-utils.ts │ │ │ ├── scan-commits.ts │ │ │ ├── scan-releases.ts │ │ │ └── upgrade.ts │ │ │ ├── generic-options.ts │ │ │ ├── slack-notifications.spec.ts │ │ │ └── slack-notifications.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── handler-utils │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── append-comments.ts │ │ │ ├── as-statement │ │ │ ├── as-statement-return-value.spec.ts │ │ │ ├── base-node-handler.ts │ │ │ ├── combine-as-statement-handlers.ts │ │ │ ├── create-as-statement-handler-function.spec.ts │ │ │ ├── create-as-statement-handler-function.ts │ │ │ ├── handler-function.ts │ │ │ ├── index.ts │ │ │ ├── return-type-inline.ts │ │ │ ├── return-type-standalone-or-inline.ts │ │ │ ├── return-type-with-identifier.ts │ │ │ └── return-type.ts │ │ │ ├── combine-handlers.spec.ts │ │ │ ├── combine-handlers.ts │ │ │ ├── combine-optional-handlers.ts │ │ │ ├── create-as-statement-handler.ts │ │ │ ├── create-handler-function.spec.ts │ │ │ ├── create-handler-function.ts │ │ │ ├── create-handler.ts │ │ │ ├── create-optional-handler-function.ts │ │ │ ├── forward-handler-ref.ts │ │ │ ├── handle-comments.spec.ts │ │ │ ├── handle-comments.ts │ │ │ ├── inner-types.ts │ │ │ ├── prepend-comments.ts │ │ │ ├── test-utils │ │ │ ├── index.ts │ │ │ ├── mock-node.ts │ │ │ └── with-comments.ts │ │ │ └── types.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── lua-conversion-utils │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── append-program.ts │ │ │ ├── array-inferable.spec.ts │ │ │ ├── array-inferable.ts │ │ │ ├── as-statement-return-type-to-statement.ts │ │ │ ├── babel │ │ │ ├── date.ts │ │ │ ├── index.ts │ │ │ ├── object-string-literal.ts │ │ │ └── typeof-expression.ts │ │ │ ├── bit-32-method.ts │ │ │ ├── boolean-inferable.spec.ts │ │ │ ├── boolean-inferable.ts │ │ │ ├── comment │ │ │ ├── extract-with-comments.ts │ │ │ ├── extract-with-commments.spec.ts │ │ │ ├── has-any-comment.spec.ts │ │ │ ├── has-any-comment.ts │ │ │ ├── index.ts │ │ │ ├── inner-comment.spec.ts │ │ │ ├── inner-comment.ts │ │ │ ├── leading-comment.spec.ts │ │ │ ├── leading-comment.ts │ │ │ ├── reassign-comments.ts │ │ │ ├── section-comment.ts │ │ │ ├── trailing-comment.spec.ts │ │ │ ├── trailing-comment.ts │ │ │ └── trim-values.ts │ │ │ ├── common-identifiers.ts │ │ │ ├── create-expression-statement.ts │ │ │ ├── creators │ │ │ ├── creators.ts │ │ │ ├── date-time-creators.spec.ts │ │ │ ├── date-time.creators.ts │ │ │ ├── index.ts │ │ │ ├── join-expressions-with.spec.ts │ │ │ ├── join-expressions-with.ts │ │ │ ├── join-multiline-string-literal.spec.ts │ │ │ ├── join-multiline-string-literals.ts │ │ │ ├── join-string-literals.spec.ts │ │ │ ├── join-string-literals.ts │ │ │ ├── math.creators.ts │ │ │ ├── number.creators.ts │ │ │ ├── table.creators.spec.ts │ │ │ └── table.creators.ts │ │ │ ├── escape-pattern.spec.ts │ │ │ ├── escape-pattern.ts │ │ │ ├── extras │ │ │ ├── extras.ts │ │ │ ├── index.ts │ │ │ ├── with-alternative-identifier-expression-extras.spec.ts │ │ │ ├── with-alternative-identifier-expression-extras.ts │ │ │ ├── with-class-declaration-extra.spec.ts │ │ │ ├── with-class-declaration-extra.ts │ │ │ ├── with-export-skip-extra.ts │ │ │ ├── with-exports-extra.ts │ │ │ ├── with-flow-built-in-type-extra.ts │ │ │ ├── with-math-const-extra.ts │ │ │ ├── with-needs-packages-extra.ts │ │ │ ├── with-number-const-extra.ts │ │ │ ├── with-original-identifier-name-extras.spec.ts │ │ │ ├── with-original-identifier-name-extras.ts │ │ │ ├── with-original-ids-extra.spec.ts │ │ │ ├── with-original-ids-extra.ts │ │ │ ├── with-polyfill-extra.spec.ts │ │ │ ├── with-polyfill-extra.ts │ │ │ ├── with-polyfill-type-extra.spec.ts │ │ │ ├── with-polyfill-type-extra.ts │ │ │ ├── with-promise-polyfill-extra.ts │ │ │ ├── with-qualified-name-additional-import-extra.spec.ts │ │ │ ├── with-qualified-name-additional-import-extra.ts │ │ │ ├── with-regexp-polyfill-extra.ts │ │ │ ├── with-source-type-extra.ts │ │ │ ├── with-ts-built-in-type-extra.ts │ │ │ └── with-void-type-polyfill-extra.ts │ │ │ ├── generate-unique-identifier.ts │ │ │ ├── get-module-path.spec.ts │ │ │ ├── get-module-path.ts │ │ │ ├── get-node-source.ts │ │ │ ├── get-object-property-expression.ts │ │ │ ├── get-return-expressions.ts │ │ │ ├── get-return-type.ts │ │ │ ├── get-type-property-signature-key.ts │ │ │ ├── handlers │ │ │ ├── combine │ │ │ │ ├── combine-expression-handlers.ts │ │ │ │ ├── combine-statement-handlers.ts │ │ │ │ ├── combine-type-annotation-handlers.ts │ │ │ │ └── index.ts │ │ │ ├── default │ │ │ │ ├── default-element.handler.ts │ │ │ │ ├── default-expression.handler.ts │ │ │ │ ├── default-statement.handler.ts │ │ │ │ ├── default-type-annotation.handler.ts │ │ │ │ ├── default-type-parameter.handler.ts │ │ │ │ ├── default-type.handler.ts │ │ │ │ ├── default-unhandled-identifier.handler.ts │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ │ ├── identifier-luau-globals.ts │ │ │ ├── identifier-roblox-globals.ts │ │ │ ├── identifier-roblox-keywords.ts │ │ │ ├── is-lua-truthy.ts │ │ │ ├── is-pure.ts │ │ │ ├── member-expression-from-path.spec.ts │ │ │ ├── member-expression-from-path.ts │ │ │ ├── prepend-program.ts │ │ │ ├── remove-id-type-annotation.ts │ │ │ ├── remove-type-annotation.ts │ │ │ ├── string-inferable.spec.ts │ │ │ ├── string-inferable.ts │ │ │ ├── type-reference-without-default-type.ts │ │ │ ├── unwrap-node-group.spec.ts │ │ │ ├── unwrap-node-group.ts │ │ │ ├── valid-identifier.spec.ts │ │ │ ├── valid-identifier.ts │ │ │ └── visitor │ │ │ ├── index.ts │ │ │ ├── visitor.spec.ts │ │ │ └── visitor.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── lua-print │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── check-precedence.spec.ts │ │ │ ├── check-precedence.ts │ │ │ ├── declaration │ │ │ ├── print-property-signature.spec.ts │ │ │ ├── print-property-signature.ts │ │ │ ├── print-type-declaration.spec.ts │ │ │ ├── print-type-declaration.ts │ │ │ ├── print-type-parameter-declaration.spec.ts │ │ │ ├── print-type-parameter-declaration.ts │ │ │ └── variable-declaration │ │ │ │ ├── print-variable-declaration.ts │ │ │ │ ├── print-variable-declarator-identifier.ts │ │ │ │ └── print-variable-declarator-value.ts │ │ │ ├── expression │ │ │ ├── print-base-expression.ts │ │ │ ├── print-call-expression.ts │ │ │ ├── print-callee-expression.ts │ │ │ ├── print-if-expression.spec.ts │ │ │ ├── print-if-expression.ts │ │ │ ├── print-index-expression.ts │ │ │ ├── print-member-expression.spec.ts │ │ │ ├── print-member-expression.ts │ │ │ ├── print-type-cast-expression.spec.ts │ │ │ ├── print-type-cast-expression.ts │ │ │ └── table-constructor │ │ │ │ ├── print-table-constructor.spec.ts │ │ │ │ ├── print-table-constructor.ts │ │ │ │ ├── print-table-expression-key-field.ts │ │ │ │ ├── print-table-key-field.ts │ │ │ │ └── print-table-no-key-field.ts │ │ │ ├── primitives │ │ │ ├── print-multiline-string.spec.ts │ │ │ ├── print-multiline-string.ts │ │ │ ├── print-numeric.spec.ts │ │ │ ├── print-numeric.ts │ │ │ ├── print-string.spec.ts │ │ │ └── print-string.ts │ │ │ ├── print-conversion-comments.spec.ts │ │ │ ├── print-function-comments.spec.ts │ │ │ ├── print-node.ts │ │ │ ├── print-program.ts │ │ │ ├── printable-comments.ts │ │ │ ├── printer-function.ts │ │ │ ├── statements │ │ │ ├── print-assignment-statement.ts │ │ │ ├── print-block-statement.spec.ts │ │ │ ├── print-block-statement.ts │ │ │ ├── print-break-statement.ts │ │ │ ├── print-continue-statement.spec.ts │ │ │ ├── print-continue-statement.ts │ │ │ ├── print-export-type-statement.ts │ │ │ ├── print-expression-statement.ts │ │ │ ├── print-for-generic-statement.spec.ts │ │ │ ├── print-for-generic-statement.ts │ │ │ ├── print-if-statement.spec.ts │ │ │ ├── print-if-statement.ts │ │ │ ├── print-node-group.ts │ │ │ ├── print-repeat-statement.spec.ts │ │ │ ├── print-repeat-statement.ts │ │ │ ├── print-return-statement.ts │ │ │ ├── print-unhandled-statement.ts │ │ │ ├── print-while-statement.spec.ts │ │ │ └── print-while-statement.ts │ │ │ ├── type │ │ │ ├── print-base-type.spec.ts │ │ │ ├── print-base-type.ts │ │ │ ├── print-function-return-type.ts │ │ │ ├── print-index-signature.ts │ │ │ ├── print-type-function.spec.ts │ │ │ ├── print-type-function.ts │ │ │ ├── print-type-intersection.spec.ts │ │ │ ├── print-type-intersection.ts │ │ │ ├── print-type-literal.spec.ts │ │ │ ├── print-type-literal.ts │ │ │ ├── print-type-optional.spec.ts │ │ │ ├── print-type-optional.ts │ │ │ ├── print-type-query.spec.ts │ │ │ ├── print-type-query.ts │ │ │ ├── print-type-reference.spec.ts │ │ │ ├── print-type-reference.ts │ │ │ ├── print-type-union.spec.ts │ │ │ ├── print-type-union.ts │ │ │ ├── print-typeof-expression.spec.ts │ │ │ └── print-typeof-expression.ts │ │ │ └── utils.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── lua-types │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── comment.ts │ │ │ ├── declaration │ │ │ ├── declaration.ts │ │ │ ├── function.ts │ │ │ ├── index.ts │ │ │ ├── type-alias.ts │ │ │ └── variable.ts │ │ │ ├── expression │ │ │ ├── binary.ts │ │ │ ├── call.ts │ │ │ ├── expression.ts │ │ │ ├── function-param.ts │ │ │ ├── function.ts │ │ │ ├── identifier.ts │ │ │ ├── if-expression.spec.ts │ │ │ ├── if-expression.ts │ │ │ ├── index-expression.ts │ │ │ ├── index.ts │ │ │ ├── logical.ts │ │ │ ├── lval.ts │ │ │ ├── member.ts │ │ │ ├── type-cast-expression.ts │ │ │ ├── unary-negation.ts │ │ │ ├── unary-void.ts │ │ │ └── unary.ts │ │ │ ├── literals │ │ │ ├── boolean.ts │ │ │ ├── index.ts │ │ │ ├── multiline-string.ts │ │ │ ├── nil.ts │ │ │ ├── numeric.ts │ │ │ ├── string.ts │ │ │ ├── table-constructor.ts │ │ │ ├── table-expression-key-field.ts │ │ │ ├── table-key-field.ts │ │ │ ├── table-name-key-field.ts │ │ │ └── table-no-key-field.ts │ │ │ ├── lua-nodes.types.ts │ │ │ ├── node.types.spec.ts │ │ │ ├── node.types.ts │ │ │ ├── program.ts │ │ │ ├── statement │ │ │ ├── assignment-statement.ts │ │ │ ├── block-statement.ts │ │ │ ├── break-statement.ts │ │ │ ├── continue-statement.spec.ts │ │ │ ├── continue-statement.ts │ │ │ ├── export-type-statement.ts │ │ │ ├── expression-statement.ts │ │ │ ├── for-generic-statement.ts │ │ │ ├── if-statement.ts │ │ │ ├── index.ts │ │ │ ├── node-group.ts │ │ │ ├── repeat-statement.ts │ │ │ ├── return-statement.ts │ │ │ ├── statement.ts │ │ │ └── while-statement.ts │ │ │ ├── type │ │ │ ├── index.ts │ │ │ ├── literal-type.ts │ │ │ ├── type-annotation.ts │ │ │ ├── type-any.ts │ │ │ ├── type-boolean.ts │ │ │ ├── type-function-param.ts │ │ │ ├── type-function-return-type.ts │ │ │ ├── type-function.ts │ │ │ ├── type-index-signature.ts │ │ │ ├── type-intersection.ts │ │ │ ├── type-literal.ts │ │ │ ├── type-nil.ts │ │ │ ├── type-number.ts │ │ │ ├── type-optional.ts │ │ │ ├── type-parameter-declaration.ts │ │ │ ├── type-property-signature.ts │ │ │ ├── type-query.ts │ │ │ ├── type-reference.ts │ │ │ ├── type-string.ts │ │ │ ├── type-union.ts │ │ │ ├── type.ts │ │ │ ├── typeof-expression.spec.ts │ │ │ └── typeof-expression.ts │ │ │ └── unhandled.ts │ ├── test-utils │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── mock-node.ts │ │ │ │ └── with-location.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── plugin-utils │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ └── plugin-utils.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── plugins │ ├── jest-globals │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── e2e │ │ │ ├── .babelrc │ │ │ ├── .eslintrc.json │ │ │ ├── README.md │ │ │ ├── jest.config.ts │ │ │ ├── project.json │ │ │ ├── src │ │ │ │ ├── index.ts │ │ │ │ └── lib │ │ │ │ │ └── program-plugins-jest-globals.spec.ts │ │ │ ├── tsconfig.json │ │ │ ├── tsconfig.lib.json │ │ │ └── tsconfig.spec.json │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── lib │ │ │ │ ├── jest-global-extra.ts │ │ │ │ ├── plugins-jest-globals.ts │ │ │ │ └── post-process │ │ │ │ ├── hooks │ │ │ │ ├── pre-gather.ts │ │ │ │ └── pre-run.ts │ │ │ │ └── index.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json │ └── known-imports │ │ ├── .babelrc │ │ ├── .eslintrc.json │ │ ├── README.md │ │ ├── jest.config.ts │ │ ├── project.json │ │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── handlers │ │ │ ├── index.ts │ │ │ ├── utils.spec.ts │ │ │ └── utils.ts │ │ │ ├── plugins-known-imports.ts │ │ │ ├── post-process │ │ │ ├── hooks │ │ │ │ └── post-run.ts │ │ │ └── index.ts │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.lib.json │ │ └── tsconfig.spec.json ├── post-process │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── post-process.ts │ │ │ ├── program-post-process.spec.ts │ │ │ └── steps │ │ │ ├── add-exports.ts │ │ │ ├── add-flow-built-in-types.ts │ │ │ ├── add-imports.ts │ │ │ ├── add-math-consts.ts │ │ │ ├── add-number-consts.ts │ │ │ ├── add-polyfills.ts │ │ │ ├── add-promise-import.ts │ │ │ ├── add-qualified-name-imports.ts │ │ │ ├── add-regexp-import.ts │ │ │ ├── add-ts-built-in-types.ts │ │ │ ├── add-void-polyfill-type.ts │ │ │ ├── extract-copyright-comment.ts │ │ │ ├── gather-extras.ts │ │ │ └── remove-extras.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── release-tracker │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── conversion-config.ts │ │ │ ├── execute-query.ts │ │ │ ├── get-latest-repo-commit.ts │ │ │ ├── get-latest-repo-release.ts │ │ │ ├── get-repo-conversion-config.ts │ │ │ ├── release-tracker.spec.ts │ │ │ └── release-tracker.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── shared-utils │ ├── .babelrc │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── dedent.ts │ │ │ ├── fmt-join.spec.ts │ │ │ ├── fmt-join.ts │ │ │ ├── fmt.spec.ts │ │ │ ├── fmt.ts │ │ │ ├── format-code.ts │ │ │ ├── has-own-property.ts │ │ │ ├── is-truthy.ts │ │ │ ├── normalize-path-separators.ts │ │ │ ├── prepend-string.ts │ │ │ ├── safe-apply.ts │ │ │ ├── safe-json-parse.ts │ │ │ ├── split-by.spec.ts │ │ │ ├── split-by.ts │ │ │ ├── string-utils.spec.ts │ │ │ ├── string-utils.ts │ │ │ └── types.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json ├── upstream-utils │ ├── .eslintrc.json │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ │ ├── index.ts │ │ └── lib │ │ │ ├── git-utils.spec.ts │ │ │ ├── git-utils.ts │ │ │ ├── upstream-utils.spec.ts │ │ │ └── upstream-utils.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ └── tsconfig.spec.json └── version-manager │ ├── .babelrc │ ├── .eslintrc.json │ ├── .jest │ └── env.js │ ├── README.md │ ├── jest.config.ts │ ├── project.json │ ├── src │ ├── index.ts │ └── lib │ │ ├── version-manager.spec.ts │ │ └── version-manager.ts │ ├── tsconfig.json │ ├── tsconfig.lib.json │ ├── tsconfig.spec.json │ └── webpack.config.js ├── lint-staged.config.js ├── nx.json ├── package-lock.json ├── package.json ├── tools ├── generators │ └── .gitkeep ├── scripts │ ├── generate-release │ │ ├── generate-release-branch.js │ │ ├── generate-release-tag.js │ │ └── generate-release-utils.js │ ├── make-file-executable.js │ ├── verification-polyfills.lua │ └── verify-conformance-tests.js └── tsconfig.tools.json ├── tsconfig.base.json └── workspace.json /.husky/.gitignore: -------------------------------------------------------------------------------- 1 | _ 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | . "$(dirname "$0")/_/husky.sh" 3 | 4 | npx lint-staged 5 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Add files here to ignore them from prettier formatting 2 | 3 | /dist 4 | /coverage 5 | /conformance-tests 6 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true 3 | } -------------------------------------------------------------------------------- /apps/convert-js-to-lua/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | }; 4 | -------------------------------------------------------------------------------- /apps/convert-js-to-lua/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: false, 3 | }; 4 | -------------------------------------------------------------------------------- /apps/convert-js-to-lua/src/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | require('./main'); 3 | -------------------------------------------------------------------------------- /apps/fast-follow/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@roblox/fast-follow", 3 | "version": "0.0.7", 4 | "bin": "index.js" 5 | } 6 | -------------------------------------------------------------------------------- /apps/fast-follow/src/app/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roblox/js-to-lua/5ce4081d78da1648f0d923799827c13442bcdbfb/apps/fast-follow/src/app/.gitkeep -------------------------------------------------------------------------------- /apps/fast-follow/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | }; 4 | -------------------------------------------------------------------------------- /apps/fast-follow/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: false, 3 | }; 4 | -------------------------------------------------------------------------------- /apps/fast-follow/src/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('./main'); 4 | -------------------------------------------------------------------------------- /apps/playground/src/app/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roblox/js-to-lua/5ce4081d78da1648f0d923799827c13442bcdbfb/apps/playground/src/app/.gitkeep -------------------------------------------------------------------------------- /apps/playground/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roblox/js-to-lua/5ce4081d78da1648f0d923799827c13442bcdbfb/apps/playground/src/assets/.gitkeep -------------------------------------------------------------------------------- /apps/playground/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true, 3 | }; 4 | -------------------------------------------------------------------------------- /apps/playground/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: false, 3 | }; 4 | -------------------------------------------------------------------------------- /apps/playground/src/main.ts: -------------------------------------------------------------------------------- 1 | import { run } from './run'; 2 | 3 | run(); 4 | -------------------------------------------------------------------------------- /babel-flow.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "plugins": ["jsx", "flow", "classProperties"] 4 | } 5 | -------------------------------------------------------------------------------- /babel-ts.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "sourceType": "unambiguous", 3 | "plugins": ["jsx", "typescript", "classProperties"] 4 | } 5 | -------------------------------------------------------------------------------- /conformance-tests/base-types/booleans/boolean-typed_m1.ts: -------------------------------------------------------------------------------- 1 | const flag: boolean = false; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/booleans/boolean_m1.js: -------------------------------------------------------------------------------- 1 | const flag = true; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/never/never-typed-throw-error_m5.ts: -------------------------------------------------------------------------------- 1 | function throwError(errorMsg: string): never { 2 | throw errorMsg; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/base-types/null/null-typed_m5.ts: -------------------------------------------------------------------------------- 1 | const foo: null = null; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/NaN.js: -------------------------------------------------------------------------------- 1 | let value = NaN; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/binary.js: -------------------------------------------------------------------------------- 1 | const value = 0b0101; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/exponent.js: -------------------------------------------------------------------------------- 1 | const value = 23e-2; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/hexadecimal.js: -------------------------------------------------------------------------------- 1 | const value = 0x16Ef; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/infinity.js: -------------------------------------------------------------------------------- 1 | const value = Infinity; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/integer-typed.ts: -------------------------------------------------------------------------------- 1 | const value: number = 7 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/integer-with-separator.js: -------------------------------------------------------------------------------- 1 | const value = 123_456; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/leading-zero-decimal.js: -------------------------------------------------------------------------------- 1 | const value = 078; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/numbers/octal.js: -------------------------------------------------------------------------------- 1 | const value = 077; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/escape-normal-character.js: -------------------------------------------------------------------------------- 1 | const value = "\o" 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/escape-sequences.js: -------------------------------------------------------------------------------- 1 | const value = "\b\f\n\r\t\v\0\'\"\\"; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/hex-escape-sequences.js: -------------------------------------------------------------------------------- 1 | const value = "\x00\xaa\xFF"; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/line-continuation.js: -------------------------------------------------------------------------------- 1 | const value = "foo-\ 2 | bar"; 3 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/multiline-template-first-line-empty.js: -------------------------------------------------------------------------------- 1 | const value = ` 2 | foo 3 | bar 4 | baz 5 | `; 6 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/multiline-template-with-closing-bracket-at-the-end.js: -------------------------------------------------------------------------------- 1 | let foo = ` 2 | Schedule update [count]` 3 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/multiline-template-with-double-brackets.js: -------------------------------------------------------------------------------- 1 | const value = ` 2 | foo 3 | [[bar]] 4 | baz 5 | `; 6 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/multiline-template.js: -------------------------------------------------------------------------------- 1 | const value = `foo 2 | 3 | bar baz`; 4 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/octal-escape-sequence-follow-by-8.js: -------------------------------------------------------------------------------- 1 | const value = "\58"; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/octal-escape-sequences.js: -------------------------------------------------------------------------------- 1 | const value = "\1\01\001\72\114"; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/simple-typed.ts: -------------------------------------------------------------------------------- 1 | const value: string = 'foo'; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/simple.js: -------------------------------------------------------------------------------- 1 | const value = 'foo'; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/strings/template-escape-new-line.js: -------------------------------------------------------------------------------- 1 | const value = `\n`; 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/template-literals/single-line-template-with-expressions-and-format-patterns_m5.js: -------------------------------------------------------------------------------- 1 | const foo = `abc%s${value}% %d%s%%f` 2 | -------------------------------------------------------------------------------- /conformance-tests/base-types/unknown/unknown-typed_m5.ts: -------------------------------------------------------------------------------- 1 | const foo: unknown = 'unknown'; 2 | -------------------------------------------------------------------------------- /conformance-tests/comments/function-declaration-inner-comment-line_m5.js: -------------------------------------------------------------------------------- 1 | function foo() { 2 | // I'm an inner comment line 3 | } -------------------------------------------------------------------------------- /conformance-tests/comments/generic-type-leading_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = {} -------------------------------------------------------------------------------- /conformance-tests/comments/generic-type-trailing_m5.ts: -------------------------------------------------------------------------------- 1 | type Bar = {} -------------------------------------------------------------------------------- /conformance-tests/comments/if-statement-with-condition-comment_m5.js: -------------------------------------------------------------------------------- 1 | if ( foo > 2 /* comment */) { 2 | bar() 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/comments/leading-and-trailing-comment_m5.js: -------------------------------------------------------------------------------- 1 | let foo = 1; /* inline trailing 2 | and 3 | inline leading */ let bar = 2; -------------------------------------------------------------------------------- /conformance-tests/comments/program-inner-comment-block_m5.js: -------------------------------------------------------------------------------- 1 | /* I'm an inner 2 | comment block */ -------------------------------------------------------------------------------- /conformance-tests/comments/program-inner-comment-line_m5.js: -------------------------------------------------------------------------------- 1 | // I'm an inner comment line -------------------------------------------------------------------------------- /conformance-tests/directives/directive-with-comment-line_m5.js: -------------------------------------------------------------------------------- 1 | // Directive Comment Line 2 | 'use strict'; 3 | 4 | let foo = 1 -------------------------------------------------------------------------------- /conformance-tests/expressions/await/await-identifier_m5.js: -------------------------------------------------------------------------------- 1 | async function f() { 2 | const bar = await foo; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/await/await-promise_m5.js: -------------------------------------------------------------------------------- 1 | async function f() { 2 | const foo = await Promise.resolve() 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/date/date-now_m5.js: -------------------------------------------------------------------------------- 1 | const t = Date.now() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/iife-async_m5.js: -------------------------------------------------------------------------------- 1 | (async function(){})() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/iife-with-body-and-default-params-async_m5.js: -------------------------------------------------------------------------------- 1 | (async function(bar = defaultBar){ 2 | return await bar 3 | })() 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/iife-with-body-async_m5.js: -------------------------------------------------------------------------------- 1 | (async function(){ 2 | return await bar 3 | })() 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/iife_m2.js: -------------------------------------------------------------------------------- 1 | (function(){})() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/filter-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].filter.apply([1, 2, 3, 4, 5], args); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/filter-call_m5.js: -------------------------------------------------------------------------------- 1 | [].filter.call([1, 2, 3, 4, 5], () => true); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/filter_m5.js: -------------------------------------------------------------------------------- 1 | [1, 2, 3, 4, 5].filter(() => true); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/map-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].map.apply([1, 2, 3, 4, 5], args); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/map-call_m5.js: -------------------------------------------------------------------------------- 1 | [].map.call([1, 2, 3, 4, 5], (n) => n * 2); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/map_m5.js: -------------------------------------------------------------------------------- 1 | [1, 2, 3, 4, 5].map((n) => n * 2); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/pop-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].pop.apply([1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/pop-call_m5.js: -------------------------------------------------------------------------------- 1 | [].pop.call([1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/pop_m5.js: -------------------------------------------------------------------------------- 1 | [1, 2, 3].pop() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-identifier-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].push.apply(foo, bar) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-multiple-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].push.apply([], [1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-multiple-call_m5.js: -------------------------------------------------------------------------------- 1 | [].push.call([], 1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-multiple_m5.js: -------------------------------------------------------------------------------- 1 | [].push(1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-single-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].push.apply([], [1]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-single-call_m5.js: -------------------------------------------------------------------------------- 1 | [].push.call([], 1) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/push-single_m5.js: -------------------------------------------------------------------------------- 1 | [].push(1) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/reduce-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].reduce.apply([1, 2, 3, 4, 5], args); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/reduce-call_m5.js: -------------------------------------------------------------------------------- 1 | [].reduce.call([1, 2, 3, 4, 5], (a,b) => a + b); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/reduce-with-init-value_m5.js: -------------------------------------------------------------------------------- 1 | [1, 2, 3, 4, 5].reduce((a,b) => a + b, 0); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/reduce_m5.js: -------------------------------------------------------------------------------- 1 | [1, 2, 3, 4, 5].reduce((a,b) => a + b); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/shift-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].shift.apply([1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/shift-call_m5.js: -------------------------------------------------------------------------------- 1 | [].shift.call([1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/shift_m5.js: -------------------------------------------------------------------------------- 1 | [1, 2, 3].shift() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-identifier-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift.apply(foo, bar) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-multiple-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift.apply([], [1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-multiple-call_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift.call([], 1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-multiple_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift(1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-single-apply_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift.apply([], [5]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-single-call_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift.call([], 5) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/definitely-array/unshift-single_m5.js: -------------------------------------------------------------------------------- 1 | [].unshift(5) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/filter-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.filter.apply(arr, args); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/filter-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.filter.call(arr, () => true); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/filter_m5.js: -------------------------------------------------------------------------------- 1 | arr.filter(() => true); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/map-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.map.apply(arr, args); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/map-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.map.call(arr, (n) => n * 2); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/map_m5.js: -------------------------------------------------------------------------------- 1 | arr.map((n) => n * 2); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/pop-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.pop.apply(arr) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/pop-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.pop.call(arr) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/pop_m5.js: -------------------------------------------------------------------------------- 1 | arr.pop() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-identifier-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.push.apply(foo, bar) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-multiple-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.push.apply(arr, [1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-multiple-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.push.call(arr, 1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-multiple_m5.js: -------------------------------------------------------------------------------- 1 | arr.push(1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-single-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.push.apply(arr, [1]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-single-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.push.call(arr, 1) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/push-single_m5.js: -------------------------------------------------------------------------------- 1 | arr.push(1) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/reduce-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.reduce.apply(arr, args); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/reduce-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.reduce.call(arr, (a,b) => a + b); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/reduce-with-init-value-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.reduce.call(arr, (a,b) => a + b, 0); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/reduce-with-init-value_m5.js: -------------------------------------------------------------------------------- 1 | arr.reduce((a,b) => a + b, 0); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/reduce_m5.js: -------------------------------------------------------------------------------- 1 | arr.reduce((a,b) => a + b); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/shift-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.shift.apply(arr) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/shift-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.shift.call(arr) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/shift_m5.js: -------------------------------------------------------------------------------- 1 | arr.shift() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-identifier-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift.apply(foo, bar) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-multiple-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift.apply(arr, [1, 2, 3]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-multiple-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift.call(arr, 1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-multiple_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift(1, 2, 3) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-single-apply_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift.apply(arr, [5]) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-single-call_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift.call(arr, 5) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-array-methods/maybe-array/unshift-single_m5.js: -------------------------------------------------------------------------------- 1 | arr.unshift(5) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-math-methods/invalid-math-methods_m5.js: -------------------------------------------------------------------------------- 1 | Math.foo() 2 | Math.bar() 3 | Math.fmod(10,3) 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/known-math-methods/valid-none-polyfilled-math-methods_m5.js: -------------------------------------------------------------------------------- 1 | Math.trunc(3.143) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-apply_m5.js: -------------------------------------------------------------------------------- 1 | const foo = { 2 | bar() {} 3 | }; 4 | const args = [1, 2, 3] 5 | foo.bar.apply(foo, args); 6 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-call_m5.js: -------------------------------------------------------------------------------- 1 | const foo = { 2 | bar() {} 3 | }; 4 | foo.bar.call(foo, 1, 2, 3); 5 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-expression-string_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | ['some-method']() {} 3 | } 4 | foo['some-method']() 5 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-nested_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar: { 3 | baz() { 4 | } 5 | } 6 | }; 7 | foo.bar.baz(); 8 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-react-create-div-element_m2.js: -------------------------------------------------------------------------------- 1 | React.createElement('div') 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-react-is_m5.js: -------------------------------------------------------------------------------- 1 | ReactIs.isValidElementType(something) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-react-test-renderer_m5.js: -------------------------------------------------------------------------------- 1 | ReactTestRenderer.create(something) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-to-string-nested_m2.js: -------------------------------------------------------------------------------- 1 | let obj = {someNestedProp: {}} 2 | obj.someNestedProp.toString() 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method-to-string_m2.js: -------------------------------------------------------------------------------- 1 | let obj = {} 2 | obj.toString() 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/method_m2.js: -------------------------------------------------------------------------------- 1 | const foo = { 2 | bar() {} 3 | } 4 | foo.bar() 5 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/multi-params-apply_m5.js: -------------------------------------------------------------------------------- 1 | const foo = { 2 | apply: function() {} 3 | } 4 | foo.apply(1, 2, 3) 5 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/nested-call_m2.js: -------------------------------------------------------------------------------- 1 | function foo() {} 2 | function bar() {} 3 | foo(bar(1, 2, 3)) 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/new/new-date-with-comments_m5.js: -------------------------------------------------------------------------------- 1 | const d = /* comment 1 */ new /* comment 2 */ Date /* comment 3 */ (); /* comment 4 */ 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/new/new-date_m5.js: -------------------------------------------------------------------------------- 1 | const d = new Date() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/no-param_m2.js: -------------------------------------------------------------------------------- 1 | function foo() {} 2 | foo() 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/simple-params-apply_m5.js: -------------------------------------------------------------------------------- 1 | function foo() {} 2 | foo.apply(undefined, args) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/simple-params-call_m5.js: -------------------------------------------------------------------------------- 1 | function foo() {} 2 | foo.call(undefined, 1, 2, 3) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/simple-params_m2.js: -------------------------------------------------------------------------------- 1 | function foo() {} 2 | foo(1, 2, 3) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/chalk-call-add-string_m5.js: -------------------------------------------------------------------------------- 1 | const greeting = chalk.yellow('Hello') + 'world' 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/chalk-call-chained_m5.js: -------------------------------------------------------------------------------- 1 | chalk.yellow.bold(str) 2 | chalk.yellow.bold.underline(str) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/chalk-call_m5.js: -------------------------------------------------------------------------------- 1 | chalk.yellow(str) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/json-call_m5.js: -------------------------------------------------------------------------------- 1 | JSON.stringify(obj) 2 | JSON.parse(str) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/parse-int-with-base_m5.js: -------------------------------------------------------------------------------- 1 | 2 | const foo = parseInt(bar, 2) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/parse-int_m5.js: -------------------------------------------------------------------------------- 1 | 2 | const foo = parseInt(bar) 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/path-call_m5.js: -------------------------------------------------------------------------------- 1 | path.normalize(v) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/string-repeat_m5.js: -------------------------------------------------------------------------------- 1 | 2 | foo.repeat(10) 3 | "foo".repeat(10) 4 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/special-cases/symbol-create_m5.js: -------------------------------------------------------------------------------- 1 | const s = Symbol('foo'); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/spread-params/spread-first-of-multiple-params_m5.js: -------------------------------------------------------------------------------- 1 | foo(...bar, baz, fizz) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/spread-params/spread-last-of-multiple-params_m5.js: -------------------------------------------------------------------------------- 1 | foo(bar, baz, ...fizz) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/spread-params/spread-middle-of-multiple-params_m5.js: -------------------------------------------------------------------------------- 1 | foo(bar, ...baz, fizz) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/spread-params/spread-multiple-params_m5.js: -------------------------------------------------------------------------------- 1 | foo(...bar, ...baz, ...fizz) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/call/spread-params/spread-one-param_m5.js: -------------------------------------------------------------------------------- 1 | foo(...bar) 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/jsx/simple-expression-ts_m5.tsx: -------------------------------------------------------------------------------- 1 | const Component = (): any =>
2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/jsx/simple-expression_m5.js: -------------------------------------------------------------------------------- 1 | const Component = () =>
2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/basic-with-unsupported-id_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo.$$typeof 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/basic_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | var v = foo.bar 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-basic_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | var v = foo['bar'] 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-boolean_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | var v = foo[false] 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-expression_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | var v = foo[1+2+3-4] 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-identifier_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | var v = foo[key] 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-numeric_m2.js: -------------------------------------------------------------------------------- 1 | const foo = [] 2 | var v = foo[0] 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-octal_m2.js: -------------------------------------------------------------------------------- 1 | const foo = [] 2 | var v = foo[0o14] 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/computed-with-as-cast_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = {}; 2 | let v = (foo as any)['bar']; 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/known-number-methods/invalid-properties_m5.js: -------------------------------------------------------------------------------- 1 | const foo = Number.fizz 2 | const bar = Number.buzz 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/unsupported-id-with-cast_m5.ts: -------------------------------------------------------------------------------- 1 | const v = (foo as any).$$typeof 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/member/with-as-cast_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = {}; 2 | let v = (foo as any).bar; 3 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/basic-multiple-optional-statements_m5.js: -------------------------------------------------------------------------------- 1 | foo?.bar?.fizz() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/basic-optional-statement_m5.js: -------------------------------------------------------------------------------- 1 | foo?.() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/basic-optional_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/basic-single-optional-statement_m5.js: -------------------------------------------------------------------------------- 1 | foo?.bar() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/basic-with-unsupported-id_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.$$typeof() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/computed-basic-optional_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.['bar']() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/computed-with-as-cast_m5.ts: -------------------------------------------------------------------------------- 1 | let v = (foo as any)?.['bar'](); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/multiple-optional-with-function-call_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.bar()?.() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/multiple-optional_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.bar?.() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/unsupported-id-with-cast_m5.ts: -------------------------------------------------------------------------------- 1 | const v = (foo as any)?.$$typeof?.() 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-call/with-as-cast_m5.ts: -------------------------------------------------------------------------------- 1 | let v = (foo as any)?.bar(); 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-member/basic-optional_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.bar 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-member/basic-with-unsupported-id_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.$$typeof 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-member/computed-basic-optional_m5.js: -------------------------------------------------------------------------------- 1 | const v = foo?.['bar'] 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-member/computed-with-as-cast_m5.ts: -------------------------------------------------------------------------------- 1 | let v = (foo as any)?.['bar']; 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-member/unsupported-id-with-cast_m5.ts: -------------------------------------------------------------------------------- 1 | const v = (foo as any)?.$$typeof 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/optional-member/with-as-cast_m5.ts: -------------------------------------------------------------------------------- 1 | let v = (foo as any)?.bar; 2 | -------------------------------------------------------------------------------- /conformance-tests/expressions/sequence/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = 1 2 | 3 | function foo(arg) {} 4 | 5 | foo((a++, --b)) 6 | -------------------------------------------------------------------------------- /conformance-tests/expressions/sequence/1_m4.js: -------------------------------------------------------------------------------- 1 | let a= 0, b = 1 2 | function baz() {} 3 | let foo = { 4 | bar: (a++, --b, baz()) 5 | } -------------------------------------------------------------------------------- /conformance-tests/expressions/sequence/2_m4.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = 1 2 | let c = (a++, --b) -------------------------------------------------------------------------------- /conformance-tests/expressions/sequence/3_m4.js: -------------------------------------------------------------------------------- 1 | let b = 1, c = 2, d, e; 2 | const a = () => (b = b+1,e=c+'hello', d = true, b + c); -------------------------------------------------------------------------------- /conformance-tests/expressions/sequence/4_m4.js: -------------------------------------------------------------------------------- 1 | let b = 1, c = 2, d, e; 2 | const a = () => {(b = b+1,e=c+'hello', d = true)}; -------------------------------------------------------------------------------- /conformance-tests/expressions/tagged-template/simple_m5.js: -------------------------------------------------------------------------------- 1 | gql` 2 | this is a simple tagged template 3 | with no expressions inside 4 | ` 5 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/array_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Array -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/error_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Error -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/map_m6.js: -------------------------------------------------------------------------------- 1 | type Bar = Map -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/mixed-types_m6.js: -------------------------------------------------------------------------------- 1 | type Boo = Array, Error>>> -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/object_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Object -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/promise_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Promise -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/set_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Set -------------------------------------------------------------------------------- /conformance-tests/flow-types/auto-imports/weakmap_m6.js: -------------------------------------------------------------------------------- 1 | type Bar = WeakMap -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/recursive-with-generic-params_m6.js: -------------------------------------------------------------------------------- 1 | type FnFnFn = (arg: T) => (foo: (V) => Z) => number 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/recursive_m6.js: -------------------------------------------------------------------------------- 1 | type FnFnFn = () => (foo: (string) => boolean) => number -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/with-params-and-unknown-rest-element-with-generic-params_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = (foo:T, ...bar: RestType) => U 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/with-params-and-unknown-rest-element_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = (foo:string, ...bar: RestType) => boolean -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/with-params-with-generic-params-and-type-constraints_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = (foo: T) => U 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/with-params-with-generic-params-and-variance-sigils_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = <+T, -U>(foo: T) => U 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/with-params-with-generic-params_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = (foo: T) => U 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/with-params_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = (foo: string) => boolean -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/without-params-with-generic-params_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = () => U 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/function/without-params_m6.js: -------------------------------------------------------------------------------- 1 | type Fn = () => any 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/generic-type-annotation/generic-type-annotation-multiple-params_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Bar 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/generic-type-annotation/generic-type-annotation-simple_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Bar 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/generic-type-annotation/generic-type-annotation-single-param_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = Bar 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/empty_m6.js: -------------------------------------------------------------------------------- 1 | interface Test {} 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/extends_m6.js: -------------------------------------------------------------------------------- 1 | interface Test extends Foo, Bar, Baz {} 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/generic-extends_m6.js: -------------------------------------------------------------------------------- 1 | interface Test extends Foo, Bar, Baz {} 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/generic_m6.js: -------------------------------------------------------------------------------- 1 | interface Test {} 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/indexer_m6.js: -------------------------------------------------------------------------------- 1 | interface Test { 2 | [string]: number 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/object-call-property-multiple_m6.js: -------------------------------------------------------------------------------- 1 | interface Test { 2 | (): any, 3 | (string): string 4 | } 5 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/object-call-property_m6.js: -------------------------------------------------------------------------------- 1 | interface Test { 2 | (): any 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/object-internal-slot_m6.js: -------------------------------------------------------------------------------- 1 | interface Test { 2 | [[Slot]]: any 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/interface-declaration/simple-props_m6.js: -------------------------------------------------------------------------------- 1 | interface Test { 2 | foo: string, 3 | bar: number, 4 | baz: boolean 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/mixed-type/mixed-type-annotation-function-argument_m6.js: -------------------------------------------------------------------------------- 1 | const foo = (arg: mixed) => arg 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/mixed-type/mixed-type-annotation-object-property_m6.js: -------------------------------------------------------------------------------- 1 | let foo: { 2 | bar: mixed 3 | } = { 4 | bar: "baz" 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/mixed-type/mixed-type-annotation-type-alias-declaration_m6.js: -------------------------------------------------------------------------------- 1 | type Test = mixed 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/mixed-type/mixed-type-annotation-variable-declaration_m6.js: -------------------------------------------------------------------------------- 1 | let a: mixed = {} 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/null-literal-type-annotation-function-argument_m6.js: -------------------------------------------------------------------------------- 1 | const foo = (arg: string | null) => arg -------------------------------------------------------------------------------- /conformance-tests/flow-types/null-literal-type-annotation-object-property_m6.js: -------------------------------------------------------------------------------- 1 | let foo: { 2 | bar: string | null 3 | } | null = { 4 | bar: "baz" 5 | } -------------------------------------------------------------------------------- /conformance-tests/flow-types/null-literal-type-annotation-type-alias-declaration_m6.js: -------------------------------------------------------------------------------- 1 | type Test = null -------------------------------------------------------------------------------- /conformance-tests/flow-types/null-literal-type-annotation-variable-declaration_m6.js: -------------------------------------------------------------------------------- 1 | let a: null = null -------------------------------------------------------------------------------- /conformance-tests/flow-types/nullable-type-annotation/function-with-nullable-type-annotation-param_m6.js: -------------------------------------------------------------------------------- 1 | function myFunction(myParam: ?boolean) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/nullable-type-annotation/type-alias-with-nullable-type-annotation_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = ?string 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/number-literal-type-annotation_m6.js: -------------------------------------------------------------------------------- 1 | type Num1 = 1 2 | type Num2 = 2 3 | type Num3 = 3 4 | type Num4 = 4 5 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/empty_m6.js: -------------------------------------------------------------------------------- 1 | type Test = {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/indexer_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | [string]: number 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/object-call-property-multiple_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | (): any, 3 | (string): string 4 | } 5 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/object-call-property_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | (): any 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/object-internal-slot_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | [[Slot]]: any 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/optional-props_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | foo?: string, 3 | bar: ?number, 4 | baz?: ?boolean 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/simple-props_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | foo: string, 3 | bar: number, 4 | baz: boolean 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/object-type-annotation/string-props_m6.js: -------------------------------------------------------------------------------- 1 | type Test = { 2 | 'foo': string, 3 | 'bar': number, 4 | 'baz': boolean 5 | }; 6 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/qualified-name-nested-with-import-type_m6.ts: -------------------------------------------------------------------------------- 1 | import type {Foo} from './bar' 2 | type QualifiedSimple = Foo.Bar.Baz 3 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/qualified-name-simple-with-import-type_m6.ts: -------------------------------------------------------------------------------- 1 | import type {Foo} from './bar' 2 | type QualifiedSimple = Foo.Bar 3 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/string-literal-type-annotation/function-argument_m6.js: -------------------------------------------------------------------------------- 1 | const foo = (arg: "foo" | "bar") => arg -------------------------------------------------------------------------------- /conformance-tests/flow-types/string-literal-type-annotation/generic_m6.js: -------------------------------------------------------------------------------- 1 | type Baz = Map<"foo"|"bar", "fizz" | "fuzz"> -------------------------------------------------------------------------------- /conformance-tests/flow-types/string-literal-type-annotation/type-alias-declaration_m6.js: -------------------------------------------------------------------------------- 1 | type Test = "foo" -------------------------------------------------------------------------------- /conformance-tests/flow-types/string-literal-type-annotation/variable-declaration_m6.js: -------------------------------------------------------------------------------- 1 | let a: "foo" = "foo" -------------------------------------------------------------------------------- /conformance-tests/flow-types/tuple/complex_m6.js: -------------------------------------------------------------------------------- 1 | let foo: [{ foo: string, bar: [Bar] }, [[number]]]; 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/tuple/empty-param_m6.js: -------------------------------------------------------------------------------- 1 | const arr: [] = [] 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/tuple/multiple-params_m6.js: -------------------------------------------------------------------------------- 1 | const arr: [number, string, boolean] = [1, "foo", true] 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/tuple/single-param_m6.js: -------------------------------------------------------------------------------- 1 | const arr: [number] = [1] 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/type-alias-simple_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = any -------------------------------------------------------------------------------- /conformance-tests/flow-types/type-alias-with-multiple-generics-and-defaults_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = any -------------------------------------------------------------------------------- /conformance-tests/flow-types/type-alias-with-multiple-generics_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = any -------------------------------------------------------------------------------- /conformance-tests/flow-types/type-alias-with-single-generic-and-default_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = any -------------------------------------------------------------------------------- /conformance-tests/flow-types/type-alias-with-single-generic_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = any -------------------------------------------------------------------------------- /conformance-tests/flow-types/typeof/typeof-type-annotation-function-argument_m6.js: -------------------------------------------------------------------------------- 1 | const bar = "string" 2 | const foo = (arg: typeof bar) => arg 3 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/typeof/typeof-type-annotation-type-alias-declaration_m6.js: -------------------------------------------------------------------------------- 1 | const bar = "string" 2 | type Test = typeof bar 3 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/typeof/typeof-type-annotation-variable-declaration_m6.js: -------------------------------------------------------------------------------- 1 | const bar = "string" 2 | let a: typeof bar = "another string" 3 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/union/union-type-annotation-multiple-number-literals_m6.js: -------------------------------------------------------------------------------- 1 | type ValueSimple = 1 | 2 | string | number 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/union/union-type-annotation-simple_m6.js: -------------------------------------------------------------------------------- 1 | type ValueSimple = number | string 2 | -------------------------------------------------------------------------------- /conformance-tests/flow-types/void-type-annotation/export-default-return-type_m6.js: -------------------------------------------------------------------------------- 1 | export default function(): void { } -------------------------------------------------------------------------------- /conformance-tests/flow-types/void-type-annotation/export-named-args_m6.js: -------------------------------------------------------------------------------- 1 | export function foo(fn: Function) { } -------------------------------------------------------------------------------- /conformance-tests/flow-types/void-type-annotation/function-return-type-generic_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = () => Promise -------------------------------------------------------------------------------- /conformance-tests/flow-types/void-type-annotation/function-return-type_m6.js: -------------------------------------------------------------------------------- 1 | type Foo = () => void -------------------------------------------------------------------------------- /conformance-tests/jest-globals/implicit-globals/jest-test-implicit-globals_m7.js: -------------------------------------------------------------------------------- 1 | describe('foo', () => { 2 | it('bar', () => {}); 3 | }); 4 | -------------------------------------------------------------------------------- /conformance-tests/known-imports/react-known-imports_m8.js: -------------------------------------------------------------------------------- 1 | import {useState, useEffect} from 'react' 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/add-repeated-strings_m5.js: -------------------------------------------------------------------------------- 1 | const foo = 'Inner-render-' + this.props.x + '-' + this.state.x 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/add-with-multiple-string-literals.js: -------------------------------------------------------------------------------- 1 | let v = 'a' + 'b' + 'c' + 'd' 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/add-with-string-literals.js: -------------------------------------------------------------------------------- 1 | let v = 'foo' + 'bar' 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/add.js: -------------------------------------------------------------------------------- 1 | let foo = 1, bar = 2 2 | let v = foo + bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/division.js: -------------------------------------------------------------------------------- 1 | let foo = 1, bar = 2 2 | let v = foo / bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/exponential.js: -------------------------------------------------------------------------------- 1 | let foo = 1, bar = 2 2 | let v = foo ** bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/multiplication.js: -------------------------------------------------------------------------------- 1 | let foo = 1, bar = 2 2 | let v = foo * bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/remainder.js: -------------------------------------------------------------------------------- 1 | let foo = 1, bar = 2 2 | let v = foo % bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/arithmetic/subtract.js: -------------------------------------------------------------------------------- 1 | let foo = 1, bar = 2 2 | let v = foo - bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-addition/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 'this is ', c = 2, d = 3 2 | 3 | a += 1 4 | b += 'roblox' 5 | c += true 6 | d += a 7 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-addition/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 'this is ', c = 2 2 | 3 | a += b += c += 'foo' 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-addition/2_m4x.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 'this is ', c = 2, d = 3 2 | 3 | a += b += c += d 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-addition/3_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo() { 4 | return a += 'foo' 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-addition/4_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo(bar) {} 4 | foo(a += 'bar') 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-addition/5_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 'this is ', c = 2 2 | 3 | function foo(bar) {} 4 | foo(a += b += c += 'bar') 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-bitwise-and/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | 3 | a = a & a 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-bitwise-and/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | let b = 2; 3 | 4 | a = a & b 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-bitwise-or/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | 3 | a = a | a 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-bitwise-or/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | let b = 2; 3 | 4 | a = a | b 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-bitwise-xor/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | 3 | a = a ^ a 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-bitwise-xor/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | let b = 2; 3 | 4 | a = a ^ b 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a /= 1 4 | b /= c 5 | c /= true 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a /= b /= c /= 1 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/2_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3, d = 4 2 | 3 | a /= b /= c /= d 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/3_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo() { 4 | return a /= 1 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/4_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo(bar) {} 4 | foo(a /= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/5_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | function foo(bar) {} 4 | foo(a /= b /= c /= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-division/6_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | let foo = { 4 | bar: a /= b /= c, 5 | baz: a /= b /= 1, 6 | } 7 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-multiplication/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a *= 1 4 | b *= c 5 | c *= true 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-multiplication/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a *= b *= c *= 1 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-multiplication/2_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3, d = 4 2 | 3 | a *= b *= c *= d 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-multiplication/3_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo() { 4 | return a *= 1 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-multiplication/4_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo(bar) {} 4 | foo(a *= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-multiplication/5_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | function foo(bar) {} 4 | foo(a *= b *= c *= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-remainder/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a %= 1 4 | b %= c 5 | c %= true 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-remainder/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a %= b %= c %= 1 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-remainder/2_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3, d = 4 2 | 3 | a %= b %= c %= d 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-remainder/3_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo() { 4 | return a %= 1 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-remainder/4_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo(bar) {} 4 | foo(a %= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-remainder/5_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | function foo(bar) {} 4 | foo(a %= b %= c %= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-left/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | 3 | a <<= a; 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-left/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | let b = 2; 3 | 4 | a <<= b; 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-right-unsigned/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | 3 | a >>>= a; 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-right-unsigned/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | let b = 2; 3 | 4 | a >>>= b; 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-right-unsigned/2_m4.js: -------------------------------------------------------------------------------- 1 | let c = -5; 2 | 3 | c >>>= 0; 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-right/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | 3 | a >>= a; 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-shift-right/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 5; 2 | let b = 2; 3 | 4 | a >>= b; 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-subtraction/0_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a -= 1 4 | b -= c 5 | c -= true 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-subtraction/1_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a -= b -= c -= 1 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-subtraction/2_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3, d = 4 2 | 3 | a -= b -= c -= d 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-subtraction/3_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo() { 4 | return a -= 1 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-subtraction/4_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | 3 | function foo(bar) {} 4 | foo(a -= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment-subtraction/5_m4.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | function foo(bar) {} 4 | foo(a -= b -= c -= 1) 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/0_m4.js: -------------------------------------------------------------------------------- 1 | let a, b, c, d 2 | let e = {} 3 | 4 | a = 1 5 | b = 'roblox' 6 | c = true 7 | d = e 8 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/1_m4.js: -------------------------------------------------------------------------------- 1 | let a, b, c 2 | 3 | a = b = c = 'foo' 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/2_m4.js: -------------------------------------------------------------------------------- 1 | let a 2 | 3 | function foo() { 4 | return a = 'foo' 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/3_m4.js: -------------------------------------------------------------------------------- 1 | let a 2 | 3 | function foo(bar) {} 4 | foo(a = 'bar') 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/4_m4.js: -------------------------------------------------------------------------------- 1 | let a, b, c 2 | 3 | function foo(bar) {} 4 | foo(a = b = c = 'bar') 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/assignment-with-fallback_m5.js: -------------------------------------------------------------------------------- 1 | let retryTimes 2 | retryTimes = parseInt(foo, 10) || 0; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/destructure-array-identifier_m4.js: -------------------------------------------------------------------------------- 1 | const arr = [1, 2, 3]; 2 | let a, b, c; 3 | [a, b, c] = arr; 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/assignment/destructure-array_m4.js: -------------------------------------------------------------------------------- 1 | let a, b, c; 2 | [a, b, c] = [1, 2, 3]; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/and/0_m3.js: -------------------------------------------------------------------------------- 1 | const a = 5; // 00000000000000000000000000000101 2 | 3 | let foo = a & a // 5 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/and/5_m3.js: -------------------------------------------------------------------------------- 1 | const c = -5; // 11111111111111111111111111111011 2 | 3 | let foo = c & c // -5 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/or/0_m3.js: -------------------------------------------------------------------------------- 1 | const a = 5; // 00000000000000000000000000000101 2 | 3 | let foo = a | a // 5 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/or/5_m3.js: -------------------------------------------------------------------------------- 1 | const c = -5; // 11111111111111111111111111111011 2 | 3 | let foo = c | c // -5 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/shift-left/0_m3.js: -------------------------------------------------------------------------------- 1 | const a = 5; // 00000000000000000000000000000101 2 | 3 | let foo = a << a; // 160 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/shift-right-unsigned/0_m3.js: -------------------------------------------------------------------------------- 1 | const a = 5; // 00000000000000000000000000000101 2 | 3 | let foo = a >>> a; // 0 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/shift-right/0_m3.js: -------------------------------------------------------------------------------- 1 | const a = 5; // 00000000000000000000000000000101 2 | 3 | let foo = a >> a; // 0 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/xor/0_m3.js: -------------------------------------------------------------------------------- 1 | const a = 5; // 00000000000000000000000000000101 2 | 3 | let foo = a ^ a // 0 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/bitwise/xor/5_m3.js: -------------------------------------------------------------------------------- 1 | const c = -5; // 11111111111111111111111111111011 2 | 3 | let foo = c ^ c // 0 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/instanceof/instanceof-operator-in-if-statement_m5.js: -------------------------------------------------------------------------------- 1 | if(foo instanceof bar) { 2 | console.log('boo') 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/instanceof/instanceof-operator_m5.js: -------------------------------------------------------------------------------- 1 | const foo = bar instanceof baz 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/as-expression-statement-with-call-on-right-nested_m5.js: -------------------------------------------------------------------------------- 1 | foo && bar && baz() 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/as-expression-statement-with-call-on-right_m5.js: -------------------------------------------------------------------------------- 1 | foo && bar() 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/as-expression-statement-with-identifier-on-right-nested_m5.js: -------------------------------------------------------------------------------- 1 | foo && bar && baz 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/as-expression-statement-with-identifier-on-right_m5.js: -------------------------------------------------------------------------------- 1 | foo && bar 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-falsy-0_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && false 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-falsy-1_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && null 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-falsy-2_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && undefined 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-falsy-3_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && 0 // 0 is truthy in Lua 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-falsy-4_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && '' // '' is truthy in Lua 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-falsy-5_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && NaN // NaN is truthy in Lua 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-side-effect_m5.js: -------------------------------------------------------------------------------- 1 | let foo 2 | const bar = foo || (foo = 0) 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-truthy-0_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && true 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-truthy-1_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && 1 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-truthy-2_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && {} 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-truthy-3_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && [] 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-truthy-4_m3.js: -------------------------------------------------------------------------------- 1 | let a = {} 2 | 3 | let foo = a && 'truthy' 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-0_m3.js: -------------------------------------------------------------------------------- 1 | let falsy0 = false 2 | let truthy = {} 3 | 4 | let foo = falsy0 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-10_m3.js: -------------------------------------------------------------------------------- 1 | let falsy4 = '' 2 | let falsy = null 3 | 4 | let foo = falsy4 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-11_m3.js: -------------------------------------------------------------------------------- 1 | let falsy5 = NaN 2 | let falsy = null 3 | 4 | let foo = falsy5 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-12_m3.js: -------------------------------------------------------------------------------- 1 | let truthy0 = true 2 | let truthy = {} 3 | 4 | let foo = truthy0 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-13_m3.js: -------------------------------------------------------------------------------- 1 | let truthy1 = 1 2 | let truthy = {} 3 | 4 | let foo = truthy1 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-14_m3.js: -------------------------------------------------------------------------------- 1 | let truthy2 = {} 2 | let truthy = {} 3 | 4 | let foo = truthy2 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-15_m3.js: -------------------------------------------------------------------------------- 1 | let truthy3 = [] 2 | let truthy = {} 3 | 4 | let foo = truthy3 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-16_m3.js: -------------------------------------------------------------------------------- 1 | let truthy4 = 'truthy' 2 | let truthy = {} 3 | 4 | let foo = truthy4 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-17_m3.js: -------------------------------------------------------------------------------- 1 | let truthy0 = true 2 | let falsy = null 3 | 4 | let foo = truthy0 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-18_m3.js: -------------------------------------------------------------------------------- 1 | let truthy1 = 1 2 | let falsy = null 3 | 4 | let foo = truthy1 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-19_m3.js: -------------------------------------------------------------------------------- 1 | let truthy2 = {} 2 | let falsy = null 3 | 4 | let foo = truthy2 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-1_m3.js: -------------------------------------------------------------------------------- 1 | let falsy1 = null 2 | let truthy = {} 3 | 4 | let foo = falsy1 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-20_m3.js: -------------------------------------------------------------------------------- 1 | let truthy3 = [] 2 | let falsy = null 3 | 4 | let foo = truthy3 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-21_m3.js: -------------------------------------------------------------------------------- 1 | let truthy4 = 'truthy' 2 | let falsy = null 3 | 4 | let foo = truthy4 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-2_m3.js: -------------------------------------------------------------------------------- 1 | let falsy2 = undefined 2 | let truthy = {} 3 | 4 | let foo = falsy2 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-3_m3.js: -------------------------------------------------------------------------------- 1 | let falsy3 = 0 2 | let truthy = {} 3 | 4 | let foo = falsy3 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-4_m3.js: -------------------------------------------------------------------------------- 1 | let falsy4 = '' 2 | let truthy = {} 3 | 4 | let foo = falsy4 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-5_m3.js: -------------------------------------------------------------------------------- 1 | let falsy5 = NaN 2 | let truthy = {} 3 | 4 | let foo = falsy5 && truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-6_m3.js: -------------------------------------------------------------------------------- 1 | let falsy0 = false 2 | let falsy = null 3 | 4 | let foo = falsy0 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-7_m3.js: -------------------------------------------------------------------------------- 1 | let falsy1 = null 2 | let falsy = null 3 | 4 | let foo = falsy1 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-8_m3.js: -------------------------------------------------------------------------------- 1 | let falsy2 = undefined 2 | let falsy = null 3 | 4 | let foo = falsy2 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/and/right-side-unknown-9_m3.js: -------------------------------------------------------------------------------- 1 | let falsy3 = 0 2 | let falsy = null 3 | 4 | let foo = falsy3 && falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/nullish-coalescing/right-side-side-effect_m5.js: -------------------------------------------------------------------------------- 1 | let foo 2 | const bar = foo ?? (foo = 0) 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/nullish-coalescing/simple-nullish-coalescing_m5.js: -------------------------------------------------------------------------------- 1 | const foo = bar ?? baz 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/0_m3.js: -------------------------------------------------------------------------------- 1 | let falsy0 = false 2 | let truthy = {} 3 | 4 | let foo = falsy0 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/10_m3.js: -------------------------------------------------------------------------------- 1 | let falsy4 = '' 2 | let falsy = null 3 | 4 | let foo = falsy4 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/11_m3.js: -------------------------------------------------------------------------------- 1 | let falsy5 = NaN 2 | let falsy = null 3 | 4 | let foo = falsy5 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/12_m3.js: -------------------------------------------------------------------------------- 1 | let truthy0 = true 2 | let truthy = {} 3 | 4 | let foo = truthy0 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/13_m3.js: -------------------------------------------------------------------------------- 1 | let truthy1 = 1 2 | let truthy = {} 3 | 4 | let foo = truthy1 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/14_m3.js: -------------------------------------------------------------------------------- 1 | let truthy2 = {} 2 | let truthy = {} 3 | 4 | let foo = truthy2 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/15_m3.js: -------------------------------------------------------------------------------- 1 | let truthy3 = [] 2 | let truthy = {} 3 | 4 | let foo = truthy3 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/16_m3.js: -------------------------------------------------------------------------------- 1 | let truthy4 = 'truthy' 2 | let truthy = {} 3 | 4 | let foo = truthy4 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/17_m3.js: -------------------------------------------------------------------------------- 1 | let truthy0 = true 2 | let falsy = null 3 | 4 | let foo = truthy0 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/18_m3.js: -------------------------------------------------------------------------------- 1 | let truthy1 = 1 2 | let falsy = null 3 | 4 | let foo = truthy1 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/19_m3.js: -------------------------------------------------------------------------------- 1 | let truthy2 = {} 2 | let falsy = null 3 | 4 | let foo = truthy2 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/1_m3.js: -------------------------------------------------------------------------------- 1 | let falsy1 = null 2 | let truthy = {} 3 | 4 | let foo = falsy1 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/20_m3.js: -------------------------------------------------------------------------------- 1 | let truthy3 = [] 2 | let falsy = null 3 | 4 | let foo = truthy3 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/21_m3.js: -------------------------------------------------------------------------------- 1 | let truthy4 = 'truthy' 2 | let falsy = null 3 | 4 | let foo = truthy4 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/2_m3.js: -------------------------------------------------------------------------------- 1 | let falsy2 = undefined 2 | let truthy = {} 3 | 4 | let foo = falsy2 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/3_m3.js: -------------------------------------------------------------------------------- 1 | let falsy3 = 0 2 | let truthy = {} 3 | 4 | let foo = falsy3 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/4_m3.js: -------------------------------------------------------------------------------- 1 | let falsy4 = '' 2 | let truthy = {} 3 | 4 | let foo = falsy4 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/5_m3.js: -------------------------------------------------------------------------------- 1 | let falsy5 = NaN 2 | let truthy = {} 3 | 4 | let foo = falsy5 || truthy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/6_m3.js: -------------------------------------------------------------------------------- 1 | let falsy0 = false 2 | let falsy = null 3 | 4 | let foo = falsy0 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/7_m3.js: -------------------------------------------------------------------------------- 1 | let falsy1 = null 2 | let falsy = null 3 | 4 | let foo = falsy1 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/8_m3.js: -------------------------------------------------------------------------------- 1 | let falsy2 = undefined 2 | let falsy = null 3 | 4 | let foo = falsy2 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/9_m3.js: -------------------------------------------------------------------------------- 1 | let falsy3 = 0 2 | let falsy = null 3 | 4 | let foo = falsy3 || falsy 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/as-expression-statement-with-call-on-right-nested_m5.js: -------------------------------------------------------------------------------- 1 | foo || bar || baz() 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/as-expression-statement-with-call-on-right_m5.js: -------------------------------------------------------------------------------- 1 | foo || bar() 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/as-expression-statement-with-identifier-on-right-nested_m5.js: -------------------------------------------------------------------------------- 1 | foo || bar || baz 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/as-expression-statement-with-identifier-on-right_m5.js: -------------------------------------------------------------------------------- 1 | foo || bar 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/logical/or/right-side-side-effect_m5.js: -------------------------------------------------------------------------------- 1 | let foo 2 | const bar = foo && (foo = 0) 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 'hello'; 2 | let foo = a == b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/10_m3.js: -------------------------------------------------------------------------------- 1 | let a = null, b = undefined; 2 | let foo = a == b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 1; 2 | let foo = a == b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/2_m3.js: -------------------------------------------------------------------------------- 1 | let foo = {}, bar = {}; 2 | let v = foo == bar; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/3_m3.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 1; 2 | let foo = a == b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/4_m3.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 1; 2 | let foo = a == b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/5_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = false; 2 | let foo = a == b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/6_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = null; 2 | let foo = a == b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/7_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = undefined; 2 | let foo = a == b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/8_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = !!null; 2 | let foo = a == b; // true, look at Logical NOT operator 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/9_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = !!undefined; 2 | let foo = a == b; // true, look at Logical NOT operator 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/equality/typeof-table_m5.js: -------------------------------------------------------------------------------- 1 | const test1 = typeof foo == 'object' 2 | const test2 = 'object' == typeof foo 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = 'b'; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/10_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 5; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/11_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = false; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/12_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = true; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/13_m3x.js: -------------------------------------------------------------------------------- 1 | const a = false, b = true; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/14_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 0; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/15_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 1; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/16_m3x.js: -------------------------------------------------------------------------------- 1 | let a = null, b = 0; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/17_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = null; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/18_m3x.js: -------------------------------------------------------------------------------- 1 | let a = undefined, b = 3; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/19_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = undefined; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = 'a'; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/20_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = NaN; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/21_m3.js: -------------------------------------------------------------------------------- 1 | let a = NaN, b = 3; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/2_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = '3'; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/3_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '5', b = 3; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/4_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 3; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/5_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 5; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/6_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 5; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/7_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 'hello'; 2 | let foo = a >= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/8_m3.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 3; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-equal-than/9_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 3; 2 | let foo = a >= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = 'b'; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/10_m3.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 3; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/11_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 3; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/12_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 5; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/13_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = false; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/14_m3x.js: -------------------------------------------------------------------------------- 1 | let a = false, b = true; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/15_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 0; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/16_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 1; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/17_m3x.js: -------------------------------------------------------------------------------- 1 | let a = null, b = 0; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/18_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = null; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/19_m3x.js: -------------------------------------------------------------------------------- 1 | let a = undefined, b = 3; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = 'a'; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/20_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = undefined; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/21_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = NaN; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/22_m3.js: -------------------------------------------------------------------------------- 1 | let a = NaN, b = 3; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/2_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = '3'; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/3_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '5', b = 3; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/4_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 3; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/5_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 5; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/6_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 5; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/7_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 'hello'; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/8_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '5', b = 3n; 2 | let foo = a > b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/greater-than/9_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 5n; 2 | let foo = a > b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/in/object-prop_m3.js: -------------------------------------------------------------------------------- 1 | let obj = {foo: 'bar'} 2 | let prop = 'foo' 3 | 4 | let hasFoo = prop in obj 5 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/in/object_boolean-literal_m3.js: -------------------------------------------------------------------------------- 1 | let obj = {foo: 'bar'} 2 | 3 | let hasFoo = true in obj 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/in/object_numeric-literal_m3.js: -------------------------------------------------------------------------------- 1 | let obj = {foo: 'bar'} 2 | 3 | let hasFoo = 0 in obj 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/in/object_string-literal_m3.js: -------------------------------------------------------------------------------- 1 | let obj = {foo: 'bar'} 2 | 3 | let hasFoo = 'foo' in obj 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/in/string-key_m4.js: -------------------------------------------------------------------------------- 1 | let str = new String('foo bar') 2 | 3 | let hasIndex = '1' in str 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/in/string_m4.js: -------------------------------------------------------------------------------- 1 | let str = new String('foo bar') 2 | 3 | let hasIndex = 0 in str 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 'hello'; 2 | let foo = a != b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/10_m3.js: -------------------------------------------------------------------------------- 1 | let a = null, b = undefined; 2 | let foo = a != b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 1; 2 | let foo = a != b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/2_m3.js: -------------------------------------------------------------------------------- 1 | let foo = {}, bar = {}; 2 | let v = foo != bar; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/3_m3.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 1; 2 | let foo = a != b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/4_m3.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 1; 2 | let foo = a != b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/5_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = false; 2 | let foo = a != b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/6_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = null; 2 | let foo = a != b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/7_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = undefined; 2 | let foo = a != b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/8_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = !!null; 2 | let foo = a != b; // false, look at Logical NOT operator 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/9_m3.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = !!undefined; 2 | let foo = a != b; // false, look at Logical NOT operator 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/inequality/typeof-table_m5.js: -------------------------------------------------------------------------------- 1 | const test1 = typeof foo != 'object' 2 | const test2 = 'object' != typeof foo 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = 'b'; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/10_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 5; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/11_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = false; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/12_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = true; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/13_m3x.js: -------------------------------------------------------------------------------- 1 | let a = false, b = true; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/14_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 0; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/15_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 1; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/16_m3x.js: -------------------------------------------------------------------------------- 1 | let a = null, b = 0; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/17_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = null; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/18_m3x.js: -------------------------------------------------------------------------------- 1 | let a = undefined, b = 3; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/19_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = undefined; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = 'a'; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/20_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = NaN; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/21_m3.js: -------------------------------------------------------------------------------- 1 | let a = NaN, b = 3; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/2_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'a', b = '3'; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/3_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '5', b = 3; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/4_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 3; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/5_m3x.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 5; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/6_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 5; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/7_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 'hello'; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/8_m3.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 3; 2 | let foo = a <= b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-equal-than/9_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 3; 2 | let foo = a <= b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = "a", b = "b"; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/10_m3.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = 3; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/11_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 3; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/12_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 5; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/13_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = false; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/14_m3x.js: -------------------------------------------------------------------------------- 1 | let a = false, b = true; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/15_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 0, b = true; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/16_m3x.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 1; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/17_m3x.js: -------------------------------------------------------------------------------- 1 | let a = null, b = 0; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/18_m3x.js: -------------------------------------------------------------------------------- 1 | let a = null, b = 1; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/19_m3x.js: -------------------------------------------------------------------------------- 1 | let a = undefined, b = 3; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = "a", b = "a"; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/20_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = undefined; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/21_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = NaN; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/22_m3.js: -------------------------------------------------------------------------------- 1 | let a = NaN, b = 3; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/2_m3.js: -------------------------------------------------------------------------------- 1 | let a = "a", b = "3"; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/3_m3x.js: -------------------------------------------------------------------------------- 1 | let a = "5", b = 3; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/4_m3x.js: -------------------------------------------------------------------------------- 1 | let a = "3", b = 3; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/5_m3x.js: -------------------------------------------------------------------------------- 1 | let a = "3", b = 5; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/6_m3x.js: -------------------------------------------------------------------------------- 1 | let a = "hello", b = 5; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/7_m3x.js: -------------------------------------------------------------------------------- 1 | let a = 5, b = "hello"; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/8_m3x.js: -------------------------------------------------------------------------------- 1 | let a = "5", b = 3n; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/less-than/9_m3x.js: -------------------------------------------------------------------------------- 1 | let a = "3", b = 5n; 2 | let foo = a < b; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 'hello'; 2 | let foo = a === b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/10_m3.js: -------------------------------------------------------------------------------- 1 | let foo = {}, bar = {} 2 | let v = foo === bar; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 'hola'; 2 | let foo = a === b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/2_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 3; 2 | let foo = a === b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/3_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 4; 2 | let foo = a === b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/4_m3.js: -------------------------------------------------------------------------------- 1 | let a = true, b = true; 2 | let foo = a === b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/5_m3.js: -------------------------------------------------------------------------------- 1 | let a = true, b = false; 2 | let foo = a === b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/6_m3.js: -------------------------------------------------------------------------------- 1 | let a = null, b = null; 2 | let foo = a === b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/7_m3.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 3; 2 | let foo = a === b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/8_m3.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 1; 2 | let foo = a === b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-equality/9_m3.js: -------------------------------------------------------------------------------- 1 | let a = null, b = undefined; 2 | let foo = a === b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/0_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 'hello'; 2 | let foo = a !== b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/10_m3.js: -------------------------------------------------------------------------------- 1 | let foo = {}, bar = {} 2 | let v = foo === bar; 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/1_m3.js: -------------------------------------------------------------------------------- 1 | let a = 'hello', b = 'hola'; 2 | let foo = a !== b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/2_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 3; 2 | let foo = a !== b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/3_m3.js: -------------------------------------------------------------------------------- 1 | let a = 3, b = 4; 2 | let foo = a !== b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/4_m3.js: -------------------------------------------------------------------------------- 1 | let a = true, b = true; 2 | let foo = a !== b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/5_m3.js: -------------------------------------------------------------------------------- 1 | let a = true, b = false; 2 | let foo = a !== b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/6_m3.js: -------------------------------------------------------------------------------- 1 | let a = null, b = null; 2 | let foo = a !== b; // false 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/7_m3.js: -------------------------------------------------------------------------------- 1 | let a = '3', b = 3; 2 | let foo = a !== b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/8_m3.js: -------------------------------------------------------------------------------- 1 | let a = true, b = 1; 2 | let foo = a !== b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/relational/strict-inequality/9_m3.js: -------------------------------------------------------------------------------- 1 | let a = null, b = undefined; 2 | let foo = a !== b; // true 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/0_m4.js: -------------------------------------------------------------------------------- 1 | let a, b; 2 | 3 | let c = true ? a : b -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/1_m4.js: -------------------------------------------------------------------------------- 1 | let a, b; 2 | 3 | let c = 'foo' ? a : b; -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/2_m4.js: -------------------------------------------------------------------------------- 1 | let a, b, c; 2 | 3 | let d = a ? b : c; -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/3_m4.js: -------------------------------------------------------------------------------- 1 | let a=1, b=2, c, d; 2 | 3 | let e = a + b ? c : d -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/4_m4.js: -------------------------------------------------------------------------------- 1 | let a, b, c, d, e; 2 | let f = a ? b ? c : d : e -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/5_m4.js: -------------------------------------------------------------------------------- 1 | let a, b; 2 | 3 | let c = a ? false : b -------------------------------------------------------------------------------- /conformance-tests/operators/ternary/6_m4.js: -------------------------------------------------------------------------------- 1 | let a, b; 2 | 3 | let c = a ? 'foo' : b -------------------------------------------------------------------------------- /conformance-tests/operators/unary/binary-negation/negative-numeric_m2.js: -------------------------------------------------------------------------------- 1 | let b = ~-3 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/binary-negation/positive-numeric_m2.js: -------------------------------------------------------------------------------- 1 | let a = ~5 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/binary-negation/variable_m2.js: -------------------------------------------------------------------------------- 1 | let a = 1 2 | let c = ~a 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/decrement/prefix-identifier_m2.js: -------------------------------------------------------------------------------- 1 | let a = 0 2 | let v = --a 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/decrement/suffix-identifier-result_m2.js: -------------------------------------------------------------------------------- 1 | let result = 0 2 | let v = result-- 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/decrement/suffix-identifier_m2.js: -------------------------------------------------------------------------------- 1 | let a = 0 2 | let v = a-- 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/basic_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | delete foo.bar 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/computed-basic_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | delete foo['bar'] 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/computed-boolean_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | delete foo[false] 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/computed-expression_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | delete foo[1+2+3-4] 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/computed-identifier_m2.js: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | delete foo[key] 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/computed-numeric_m2.js: -------------------------------------------------------------------------------- 1 | const foo = [] 2 | delete foo[0] 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/delete/computed-octal_m2.js: -------------------------------------------------------------------------------- 1 | const foo = [] 2 | delete foo[0o14] 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/increment/prefix-identifier_m2.js: -------------------------------------------------------------------------------- 1 | let a = 0 2 | let v = ++a 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/increment/suffix-identifier-result_m2.js: -------------------------------------------------------------------------------- 1 | let result = 0 2 | let v = result++ 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/increment/suffix-identifier_m2.js: -------------------------------------------------------------------------------- 1 | let a = 0 2 | let v = a++ 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/minus-expression_m2.js: -------------------------------------------------------------------------------- 1 | const foo = '1' 2 | let v = -(-foo) 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/minus-identifier_m2.js: -------------------------------------------------------------------------------- 1 | const foo = '1' 2 | let v = -foo 3 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-double_m2.js: -------------------------------------------------------------------------------- 1 | let v = !!foo 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-expression_m2.js: -------------------------------------------------------------------------------- 1 | let v = !foo 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-falsy-boolean-literal_m2.js: -------------------------------------------------------------------------------- 1 | let v = !false 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-falsy-number-literal_m2.js: -------------------------------------------------------------------------------- 1 | let v = !0 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-falsy-string-literal_m2.js: -------------------------------------------------------------------------------- 1 | let v = !'' 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-null_m2.js: -------------------------------------------------------------------------------- 1 | let v = !null 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-truthy-boolean-literal_m2.js: -------------------------------------------------------------------------------- 1 | let v = !true 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-truthy-number-literal_m2.js: -------------------------------------------------------------------------------- 1 | let v = !1 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-truthy-string-literal_m2.js: -------------------------------------------------------------------------------- 1 | let v = !'foo' 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/negation-undefined_m2.js: -------------------------------------------------------------------------------- 1 | let v = !undefined 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/plus-expression_m2.js: -------------------------------------------------------------------------------- 1 | let v = +(+foo) 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/plus_m2.js: -------------------------------------------------------------------------------- 1 | let v = +foo 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/typeof-expression_m2.js: -------------------------------------------------------------------------------- 1 | let v = typeof (typeof foo) 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/typeof_m2.js: -------------------------------------------------------------------------------- 1 | let v = typeof foo 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/void-literals_m5.js: -------------------------------------------------------------------------------- 1 | let foo = void "foo" 2 | let bar = void 0 3 | let baz = void false 4 | -------------------------------------------------------------------------------- /conformance-tests/operators/unary/void_m2.js: -------------------------------------------------------------------------------- 1 | let v = void foo 2 | -------------------------------------------------------------------------------- /conformance-tests/operators/unhandled-assignment_m5.js: -------------------------------------------------------------------------------- 1 | let a = 1, b = 2, c = 3 2 | 3 | a ||= 1 4 | b ||= c 5 | c ||= true 6 | -------------------------------------------------------------------------------- /conformance-tests/statements/assignments/array-destructuring/destructure-array-missing-values_m4.js: -------------------------------------------------------------------------------- 1 | [, a, ,b] = values 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/blocks/empty.js: -------------------------------------------------------------------------------- 1 | { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/blocks/nested.js: -------------------------------------------------------------------------------- 1 | { 2 | let foo = 'bar' 3 | { 4 | let fooNested = 'barNested' 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /conformance-tests/statements/blocks/single-variable.js: -------------------------------------------------------------------------------- 1 | { 2 | let name = "roblox" 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/continue/continue.ts: -------------------------------------------------------------------------------- 1 | let i = 0; 2 | while (i !== 10) { 3 | i++; 4 | continue; 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/class/class-declaration.js: -------------------------------------------------------------------------------- 1 | class BaseClass{} 2 | 3 | class MyClass extends BaseClass{} 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/ts-module/empty_m5.ts: -------------------------------------------------------------------------------- 1 | namespace Empty {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/ts-module/exported/exported-empty_m5.ts: -------------------------------------------------------------------------------- 1 | export namespace Empty {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/ts-module/exported/exported-with-type_m5.ts: -------------------------------------------------------------------------------- 1 | export namespace Foo { 2 | type Bar = { bar: string } 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/ts-module/with-type-exported_m5.ts: -------------------------------------------------------------------------------- 1 | namespace Foo { 2 | export type Bar = { bar: string } 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/ts-module/with-type_m5.ts: -------------------------------------------------------------------------------- 1 | namespace Foo { 2 | type Bar = { bar: string } 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/ts-module/with-variable-declaration_m5.ts: -------------------------------------------------------------------------------- 1 | namespace Foo { 2 | const bar = { bar: 'bar' } 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/array-destructuring/destructure-array-missing-values_m4.js: -------------------------------------------------------------------------------- 1 | const [, a, ,b] = values 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/array-destructuring/destructure-array-nested-array_m4.js: -------------------------------------------------------------------------------- 1 | const [a, [b, c]] = [1, [2, 3]]; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/array-destructuring/destructure-array_m4.js: -------------------------------------------------------------------------------- 1 | const [a, b, c] = [1, 2, 3]; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/const-with-lua-keyword.js: -------------------------------------------------------------------------------- 1 | const end = 0; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/const.js: -------------------------------------------------------------------------------- 1 | const variable = true; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/declaration-with-fallback_m5.js: -------------------------------------------------------------------------------- 1 | const retryTimes = parseInt(foo, 10) || 0; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/function-declaration-empty-with-comment_m5.ts: -------------------------------------------------------------------------------- 1 | function boo() /* hello */ { 2 | } 3 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/function-declaration-with-known-rest-type_m5.ts: -------------------------------------------------------------------------------- 1 | function format(...args: string[]) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/function-declaration-with-known-rest-type_m6.js: -------------------------------------------------------------------------------- 1 | function format(...args: string[]) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/function-expression-different-name_m5.js: -------------------------------------------------------------------------------- 1 | let foo = function bar() {} -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/function-expression-same-name_m5.js: -------------------------------------------------------------------------------- 1 | let foo = function foo() {} -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/object-destructuring/destructure-with-assignment-pattern_m5.js: -------------------------------------------------------------------------------- 1 | const { foo, bar = 3 } = fizz; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/single-let-no-value.js: -------------------------------------------------------------------------------- 1 | let variable; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/single-let.js: -------------------------------------------------------------------------------- 1 | let variable = true; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/three-variables-with-a-function.js: -------------------------------------------------------------------------------- 1 | let variable = false, other = function () {}, name = "wole"; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/two-variables-let-only-first-value.js: -------------------------------------------------------------------------------- 1 | let variable = true, other; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/two-variables-let-only-second-value.js: -------------------------------------------------------------------------------- 1 | let variable, other = true; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/declarations/variable/two-variables-let-two-values.js: -------------------------------------------------------------------------------- 1 | let variable = false, other = true; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/do-while/do-while-with-boolean-inferrable-condition_m5.js: -------------------------------------------------------------------------------- 1 | let i = 0; 2 | do { 3 | i++; 4 | } while (i !== 10) 5 | -------------------------------------------------------------------------------- /conformance-tests/statements/error-handling/throw/0_m4x.js: -------------------------------------------------------------------------------- 1 | throw 'foo'; -------------------------------------------------------------------------------- /conformance-tests/statements/error-handling/throw/1_m4x.js: -------------------------------------------------------------------------------- 1 | let a = 10; 2 | throw a; -------------------------------------------------------------------------------- /conformance-tests/statements/error-handling/throw/2_m4x.js: -------------------------------------------------------------------------------- 1 | let a = 'foo'; 2 | throw a + 'bar'; -------------------------------------------------------------------------------- /conformance-tests/statements/error-handling/try-catch/1_m4.js: -------------------------------------------------------------------------------- 1 | let a, b; 2 | try { 3 | a = 'foo'; 4 | } finally { 5 | b = 'bar'; 6 | } 7 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-arrow-expression_m5.js: -------------------------------------------------------------------------------- 1 | export default () => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-call-expression_m5.js: -------------------------------------------------------------------------------- 1 | export default foo() 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-class_m5.ts: -------------------------------------------------------------------------------- 1 | export default class Foo { 2 | prop: string 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-complex-expression_m5.js: -------------------------------------------------------------------------------- 1 | export default !!process.stdout.isTTY && process.env.TERM !== 'dumb' && !isCI; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-direct-named-function_m4.js: -------------------------------------------------------------------------------- 1 | export default function foo() { 2 | } 3 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-direct-unnamed-function_m4.js: -------------------------------------------------------------------------------- 1 | export default function() { 2 | } 3 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-direct_m4.js: -------------------------------------------------------------------------------- 1 | export default { 2 | foo: 'bar' 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/default-predeclared_m4.js: -------------------------------------------------------------------------------- 1 | let foo; 2 | export default foo; 3 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/named-class_m5.ts: -------------------------------------------------------------------------------- 1 | export class Foo { 2 | prop: string 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/named-with-type-annotation-arrow-function_m5.ts: -------------------------------------------------------------------------------- 1 | export const foo: any = () => {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/named-with-type-annotation-function_m5.ts: -------------------------------------------------------------------------------- 1 | export function foo(): any {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/named-with-type-annotation-variable_m5.ts: -------------------------------------------------------------------------------- 1 | export const a: number = 1; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/reexport-absolute/all_m4.js: -------------------------------------------------------------------------------- 1 | export * from 'foo' 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/reexport-absolute/named-list-with-aliases_m4.js: -------------------------------------------------------------------------------- 1 | export { a, b, foo as c, bar as d } from 'foo'; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/reexport-absolute/named-list_m4.js: -------------------------------------------------------------------------------- 1 | export { a, b, foo, bar } from 'foo'; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/reexport-relative/all_m4.js: -------------------------------------------------------------------------------- 1 | export * from './foo/bar' 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/reexport-relative/named-list-with-aliases_m4.js: -------------------------------------------------------------------------------- 1 | export { a, b, foo as c, bar as d } from './foo/bar'; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/reexport-relative/named-list_m4.js: -------------------------------------------------------------------------------- 1 | export { a, b, foo, bar } from './foo/bar'; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/export/single-named_m4.js: -------------------------------------------------------------------------------- 1 | export function foo() { 2 | } 3 | -------------------------------------------------------------------------------- /conformance-tests/statements/for-in/empty-for-in-statement_m5.js: -------------------------------------------------------------------------------- 1 | for (const foo in bar) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/for-loops/simple/single-for-loop_m5.js: -------------------------------------------------------------------------------- 1 | for (let i = 0; i < 10; i++) { 2 | foo(i) 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/for-of/empty-for-of-statement_m5.js: -------------------------------------------------------------------------------- 1 | for (const foo of bar) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/default-member-and-alias_m4x.js: -------------------------------------------------------------------------------- 1 | import foo, { bar , baz as fizz} from 'foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/default-type_m5.ts: -------------------------------------------------------------------------------- 1 | import type foo from 'foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/default_m4x.js: -------------------------------------------------------------------------------- 1 | import foo from 'foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/module_m4x.js: -------------------------------------------------------------------------------- 1 | import 'foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/multiple-members_m4x.js: -------------------------------------------------------------------------------- 1 | import { foo, bar, baz } from 'foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/multiple-named-with-dash-in-imported-path_m5.js: -------------------------------------------------------------------------------- 1 | import { foo, bar, baz } from 'foo/bar-js' 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/multiple-named-with-dot-in-imported-path_m5.js: -------------------------------------------------------------------------------- 1 | import { foo, bar, baz } from 'foo/bar.js' 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/single-member_m4x.js: -------------------------------------------------------------------------------- 1 | import { bar } from 'foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/absolute/type-import_m4x.ts: -------------------------------------------------------------------------------- 1 | import type { foo } from 'foo'; 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/index_m4x.js: -------------------------------------------------------------------------------- 1 | import foo from './foo'; 2 | import { bar, baz as fizz } from './fizz'; 3 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/array_m5.js: -------------------------------------------------------------------------------- 1 | let foo = Array.from({}) 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/clearInterval_m5.js: -------------------------------------------------------------------------------- 1 | clearInterval(interval) -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/clearTimeout_m5.js: -------------------------------------------------------------------------------- 1 | clearTimeout(timeout) -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/console_m5.js: -------------------------------------------------------------------------------- 1 | console.log("foo") -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/object_m5.js: -------------------------------------------------------------------------------- 1 | Object.assign({}) -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/setInterval_m5.js: -------------------------------------------------------------------------------- 1 | setInterval(() => {}, 10) -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/call-expression/setTimeout_m5.js: -------------------------------------------------------------------------------- 1 | setTimeout(() => {}, 10) -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/new-expression/new-error_m5.js: -------------------------------------------------------------------------------- 1 | let err = new Error("boo") -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/new-expression/new-map_m5.js: -------------------------------------------------------------------------------- 1 | let map = new Map() -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/new-expression/new-set_m5.js: -------------------------------------------------------------------------------- 1 | let set = new Set([]) -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/new-expression/new-weakmap_m5.js: -------------------------------------------------------------------------------- 1 | let map = new WeakMap() -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-array-2_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: any[] = [] -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-array_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: Array = [] -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-error_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: Error -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-map_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: Map -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-object_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: Object = {} -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-promise_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: Promise -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-promiselike_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: PromiseLike -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-set_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: Set -------------------------------------------------------------------------------- /conformance-tests/statements/import/polyfill-auto/types/type-weakmap_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: WeakMap -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/default-deep-nested-folder_m4x.js: -------------------------------------------------------------------------------- 1 | import baz from "./foo/bar/baz" -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/default-parent-folder_m4x.js: -------------------------------------------------------------------------------- 1 | import bar from '../bar' -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/default-same-folder_m4x.js: -------------------------------------------------------------------------------- 1 | import foo from "./foo" -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/default-type-deep-nested-folder_m5.ts: -------------------------------------------------------------------------------- 1 | import type baz from "./foo/bar/baz" -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/default-type-parent-folder_m5.ts: -------------------------------------------------------------------------------- 1 | import type bar from '../bar' -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/default-type-same-folder_m5.ts: -------------------------------------------------------------------------------- 1 | import type foo from "./foo" -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/import-everything_m4x.js: -------------------------------------------------------------------------------- 1 | import * as foo from './foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/module_m4x.js: -------------------------------------------------------------------------------- 1 | import './foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/multiple-named-with-dash-in-imported-path_m5.js: -------------------------------------------------------------------------------- 1 | import { foo, bar, baz } from './foo/bar-js' 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/multiple-named-with-dot-in-imported-path_m5.js: -------------------------------------------------------------------------------- 1 | import { foo, bar, baz } from './foo/bar.js' 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/multiple-named_m4x.js: -------------------------------------------------------------------------------- 1 | import { foo, bar, baz } from './foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/named-alias_m4x.js: -------------------------------------------------------------------------------- 1 | import { foo as bar } from './foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/relative/type-import_m4x.ts: -------------------------------------------------------------------------------- 1 | import type { foo } from './foo' -------------------------------------------------------------------------------- /conformance-tests/statements/import/ts-import-equals/simple-global-import_m5.ts: -------------------------------------------------------------------------------- 1 | import picomatch = require('picomatch') 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/import/ts-import-equals/simple-relative-import_m5.ts: -------------------------------------------------------------------------------- 1 | import picomatch = require('./picomatch') 2 | -------------------------------------------------------------------------------- /conformance-tests/statements/return/return-conditional-expression_m5.js: -------------------------------------------------------------------------------- 1 | function foo() { 2 | return bar === undefined ? baz : fizz 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/return/return-identifier_m5.js: -------------------------------------------------------------------------------- 1 | function foo() { 2 | return bar 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/statements/while/while-simple_m5.js: -------------------------------------------------------------------------------- 1 | let i = 0; 2 | while (true) { 3 | if (i > 10) { 4 | break; 5 | } 6 | i++; 7 | } 8 | -------------------------------------------------------------------------------- /conformance-tests/statements/while/while-with-boolean-inferrable-condition_m5.js: -------------------------------------------------------------------------------- 1 | let i = 0; 2 | while (i !== 10) { 3 | i++; 4 | } 5 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/array/empty.js: -------------------------------------------------------------------------------- 1 | const value = []; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/array/spread-multiple-arrays.js: -------------------------------------------------------------------------------- 1 | let arr = [1, 2, ...[3, 4], 5, 6, 7, ...[8, 9]] 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/array/spread-simple.js: -------------------------------------------------------------------------------- 1 | let arr = [1, 2, ...[3, 4]] 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/array/with-one-boolean.js: -------------------------------------------------------------------------------- 1 | const value = [true]; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/async/with-default-value-async_m5.js: -------------------------------------------------------------------------------- 1 | const foo = async (bar = defaultBar) => {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/double.js: -------------------------------------------------------------------------------- 1 | const flux = () => () => 31337 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/simple.js: -------------------------------------------------------------------------------- 1 | const foo = () => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-default-value-array_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar = []) => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-default-value-boolean_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar = true) => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-default-value-numeric_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar = 1) => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-default-value-object_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar = {}) => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-default-value-string_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar = "bar") => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-default-value-typed_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar: string | number = 'bar') => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-destructured-arr-param-shorthand_m4.js: -------------------------------------------------------------------------------- 1 | const reduce = ([foo, bar]) => ({ foo, bar }); 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-destructured-obj-param-shorthand_m4.js: -------------------------------------------------------------------------------- 1 | const reduce = ({ foo, bar }) => [foo, bar]; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-generics-multiple_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar: T, baz: U, fuzz: V) => {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-generics_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar: T) => {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-optional-params_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (bar?, baz?: string, fizz?: Object) => {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-param.js: -------------------------------------------------------------------------------- 1 | const reduce = (value) => { 2 | return value; 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/arrow/with-type_m5.ts: -------------------------------------------------------------------------------- 1 | const reduce: Function = (value) => { 2 | return value; 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/async/with-default-value-async_m5.js: -------------------------------------------------------------------------------- 1 | const foo = async function(bar = defaultBar) {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/named.js: -------------------------------------------------------------------------------- 1 | const foo = function foo(){} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/no-name.js: -------------------------------------------------------------------------------- 1 | const foo = function() {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-default-value-array_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar = []) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-default-value-boolean_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar = true) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-default-value-numeric_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar = 1) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-default-value-object_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar = {}) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-default-value-string_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar = "bar") {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-default-value-typed_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar: string | number = 'bar') {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-generics-multiple_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function(bar: T, baz: U, fuzz: V) {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-generics_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function (bar: T) {}; 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-optional-params_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = function(bar?, baz?: string, fizz?: Object) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/expressions/with-type_m5.ts: -------------------------------------------------------------------------------- 1 | const reduce: Function = function(value) { 2 | return value; 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/async/with-default-value-async_m5.js: -------------------------------------------------------------------------------- 1 | async function foo(bar = defaultBar) { 2 | } 3 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/empty-single-parameter.js: -------------------------------------------------------------------------------- 1 | function foo(bar) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/empty-single-typed-parameter.ts: -------------------------------------------------------------------------------- 1 | function foo(bar: string) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/empty-typed-string-return-value.ts: -------------------------------------------------------------------------------- 1 | function foo(): string {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/empty-typed-void-return-value.ts: -------------------------------------------------------------------------------- 1 | function foo(): void {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/empty.js: -------------------------------------------------------------------------------- 1 | function foo() {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-default-value-array_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar = []) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-default-value-boolean_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar = true) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-default-value-numeric_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar = 1) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-default-value-object_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar = {}) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-default-value-string_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar = "bar") {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-default-value-typed_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar: string | number = 'bar') {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-destructured-arr-param_m4.js: -------------------------------------------------------------------------------- 1 | function reduce([foo, bar]) { 2 | return { foo, bar }; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-destructured-obj-param_m4.js: -------------------------------------------------------------------------------- 1 | function reduce({ foo, bar }) { 2 | return [foo, bar]; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-generics-multiple_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar: T, baz: U, fuzz: V) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-generics_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar: T) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/named/with-optional-params_m5.ts: -------------------------------------------------------------------------------- 1 | function foo (bar?, baz?: string, fizz?: Object) {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/recursive/arrow_m2.js: -------------------------------------------------------------------------------- 1 | const foo = () => {foo()} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/recursive/expression_m2.js: -------------------------------------------------------------------------------- 1 | const foo = function foo(){foo()} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/functions/recursive/named.js: -------------------------------------------------------------------------------- 1 | function foo() {foo()} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/empty.js: -------------------------------------------------------------------------------- 1 | const value = {} 2 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-expression-property-function-expression_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | ['bar-baz']() {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-expression-property-with-args_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | ['bar-baz'](arg1, arg2) {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-expression-property_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | ['bar-baz']() {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-function-expression-typed_m2.ts: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar: function(): void {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-function-expression-with-args_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar: function(arg1, arg2) {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-function-expression_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar: function() {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-simple-typed_m2.ts: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar(): void {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-simple-with-args-typed_m2.ts: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar(arg1: string, arg2: number): void {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-simple-with-args_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar(arg1, arg2) {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-simple_m2.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | bar() {} 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/method-with-lua-global-as-key_m5.js: -------------------------------------------------------------------------------- 1 | let foo = { 2 | error() {}, 3 | table() {}, 4 | ipairs() {} 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/single-exponent-number-key-to-boolean.js: -------------------------------------------------------------------------------- 1 | const value = { 2 | 1e4: true, 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/single-false-key-to-boolean.js: -------------------------------------------------------------------------------- 1 | const value = { 2 | false: true, 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/single-identifier-to-boolean.js: -------------------------------------------------------------------------------- 1 | const value = { 2 | key: true, 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/single-number-key-to-boolean.js: -------------------------------------------------------------------------------- 1 | const value = { 2 | 0: true, 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/single-octal-number-key-to-boolean.js: -------------------------------------------------------------------------------- 1 | const value = { 2 | 0014: true, 3 | }; 4 | -------------------------------------------------------------------------------- /conformance-tests/structural-types/object/spread-simple.js: -------------------------------------------------------------------------------- 1 | let obj = { 2 | foo: 'foo', 3 | ...{ 4 | bar: 'bar' 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/array/complex-array_m5.ts: -------------------------------------------------------------------------------- 1 | const foo: { foo: string, bar: Array[] }[][] = []; 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/array/simple-array_m5.ts: -------------------------------------------------------------------------------- 1 | const arr: number[] = [1] 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/as/cast-with-ts-qualified-name_m5.ts: -------------------------------------------------------------------------------- 1 | import type { Foo } from './bar' 2 | const a = "foo" as Foo.Bar 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/as/double-cast_m5.ts: -------------------------------------------------------------------------------- 1 | let bar = 'bar'; 2 | let foo = bar as any as string; 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/as/function-param_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(b) { 2 | } 3 | 4 | let bar = 'bar'; 5 | 6 | foo(bar as any); 7 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/as/return-statement_m5.ts: -------------------------------------------------------------------------------- 1 | function foo(bar) { 2 | return bar as any; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/as/variable-declaration_m5.ts: -------------------------------------------------------------------------------- 1 | let bar = 'bar'; 2 | let foo = bar as any; 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/enum/empty_m5.ts: -------------------------------------------------------------------------------- 1 | enum Empty {} 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/enum/simple_m5.ts: -------------------------------------------------------------------------------- 1 | enum TypicalEnum { 2 | aValue, 3 | anotherValue, 4 | yetAnotherValue 5 | } 6 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/recursive_m5.ts: -------------------------------------------------------------------------------- 1 | type FnFnFn = () => (foo: (bar: string) => boolean) => number 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/with-default-type-params_m5.ts: -------------------------------------------------------------------------------- 1 | type TypeFnDefaults = (bar: T, baz: V) => void 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/with-params-and-known-rest-element_m5.ts: -------------------------------------------------------------------------------- 1 | type Fn = (foo:string, ...bar: number[]) => boolean -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/with-params-and-unknown-rest-element_m5.ts: -------------------------------------------------------------------------------- 1 | type Fn = (foo:string, ...bar: RestType) => boolean -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/with-params_m5.ts: -------------------------------------------------------------------------------- 1 | type Fn = (foo: string) => boolean -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/with-type-params_m5.ts: -------------------------------------------------------------------------------- 1 | type TypeFn = (bar: T, baz: V) => void 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/function/without-params_m5.ts: -------------------------------------------------------------------------------- 1 | type Fn = () => void -------------------------------------------------------------------------------- /conformance-tests/ts-types/indexed-access-type/with-keyof.ts: -------------------------------------------------------------------------------- 1 | type Foo = { bar: string, baz: number } 2 | type Test = Foo[keyof Foo] -------------------------------------------------------------------------------- /conformance-tests/ts-types/indexed-access-type/with-number-keyword_m5.ts: -------------------------------------------------------------------------------- 1 | type FooArray = Array 2 | type Test = FooArray[number] -------------------------------------------------------------------------------- /conformance-tests/ts-types/indexed-access-type/with-string_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = { 2 | bar: string 3 | } 4 | type Test = Foo["bar"] -------------------------------------------------------------------------------- /conformance-tests/ts-types/indexed-access-type/with-type-reference_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = { bar: string } 2 | type Bar = "bar" 3 | type Test = Foo[Bar] -------------------------------------------------------------------------------- /conformance-tests/ts-types/indexed-access-type/with-type-union.ts: -------------------------------------------------------------------------------- 1 | type Foo = { bar: string, baz: number } 2 | type Test = Foo["bar"|"baz"] -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/generic-extending-multiple_m5.ts: -------------------------------------------------------------------------------- 1 | interface Foo extends Bar, Fizz { 2 | baz: T; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/generic-extending_m5.ts: -------------------------------------------------------------------------------- 1 | interface Foo extends Bar { 2 | baz: T; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/generic-with-default-and-comment_m5.ts: -------------------------------------------------------------------------------- 1 | interface Foo { 2 | baz: T; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/generic-with-default_m5.ts: -------------------------------------------------------------------------------- 1 | interface Foo { 2 | baz: T; 3 | fuzz: U; 4 | } 5 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/simple-extending_m5.ts: -------------------------------------------------------------------------------- 1 | interface Bar { 2 | } 3 | 4 | interface Foo extends Bar { 5 | baz: string; 6 | } 7 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/simple-generic_m5.ts: -------------------------------------------------------------------------------- 1 | interface Foo { 2 | bar: T; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/interface/simple_m5.ts: -------------------------------------------------------------------------------- 1 | interface Foo { 2 | bar: string; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/intersection/ts-intersection-type-simple_m5.ts: -------------------------------------------------------------------------------- 1 | type ValueSimple = {foo:number} & {bar:string} 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/literal-types-declaration_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: 1 | 2 | 3 = 1 2 | let bar: 'foo' | 'bar' = 'bar' 3 | let baz: true | false = false -------------------------------------------------------------------------------- /conformance-tests/ts-types/literal-types-type-declaration_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = 1 | 2 | 3; 2 | type Bar = 'foo' | 'bar'; 3 | type Baz = true | false; -------------------------------------------------------------------------------- /conformance-tests/ts-types/non-null/double_m5.ts: -------------------------------------------------------------------------------- 1 | const bar = 'bar' 2 | const foo = bar!! 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/non-null/in-a-function-call_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = (_v) => {} 2 | const bar = 'bar' 3 | foo!(bar!) 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/non-null/in-a-index-expression_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = {} 2 | const bar = 'bar' 3 | const baz = foo![bar!] 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/non-null/simple_m5.ts: -------------------------------------------------------------------------------- 1 | const bar = 'bar' 2 | const foo = bar! 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/non-null/triple_m5.ts: -------------------------------------------------------------------------------- 1 | const bar = 'bar' 2 | const foo = bar!!! 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/object-keyword/object-keyword-type-alias_m5.ts: -------------------------------------------------------------------------------- 1 | type MyType = object 2 | type MyOptionalType = object | undefined 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/object-keyword/object-keyword-type-annotation_m5.ts: -------------------------------------------------------------------------------- 1 | const obj: object = {foo: 1} 2 | const arr: object = [1] 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-index-signature_m5.ts: -------------------------------------------------------------------------------- 1 | type VariableMap = { [name: string]: any }; 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-index-signature_multiple_m5.ts: -------------------------------------------------------------------------------- 1 | type IndexSignature = { [name: string]: any, [foo:number]:string }; 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-method-signature-inline-type-annotation_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: { toString(): string } 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-parenthesized-type_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = (Bar | Baz) & Fizz 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-property-signature-with-identifier-key_m5.ts: -------------------------------------------------------------------------------- 1 | type PropertySignatureWithId = { foo: any } -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-property-signature-with-string-literal-key_m5.ts: -------------------------------------------------------------------------------- 1 | type PropertySignatureWithStrLit = { "foo": any } 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-qualified-name-nested-with-import-type_m5.ts: -------------------------------------------------------------------------------- 1 | import type {Foo} from './bar' 2 | type QualifiedSimple = Foo.Bar.Baz 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-qualified-name-nested_m5.ts: -------------------------------------------------------------------------------- 1 | type QualifiedNested = Foo.Bar.Baz.Fuzz -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-qualified-name-simple-with-import-type_m5.ts: -------------------------------------------------------------------------------- 1 | import type {Foo} from './bar' 2 | type QualifiedSimple = Foo.Bar 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-qualified-name-simple_m5.ts: -------------------------------------------------------------------------------- 1 | type QualifiedSimple = Foo.Bar 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-type-query/function-param_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = 'foo' 2 | function fn(bar: typeof foo) {} 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-type-query/function-return-type_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = 'foo' 2 | function fn(): typeof foo { 3 | return 'foo' 4 | } 5 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/ts-type-query/type-alias_m5.ts: -------------------------------------------------------------------------------- 1 | const foo = 'foo' 2 | type Foo = typeof foo 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/tuple/complex_m5.ts: -------------------------------------------------------------------------------- 1 | let foo: [{ foo: string, bar: [Bar] }, [[number]]]; 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/tuple/multiple-params_m5.ts: -------------------------------------------------------------------------------- 1 | const arr: [number, string, boolean] = [1, "foo", true] 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/tuple/single-param_m5.ts: -------------------------------------------------------------------------------- 1 | const arr: [number] = [1] 2 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/type-alias-generic2_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = Array 2 | type Bar = Record 3 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/type-alias-generic_m5.ts: -------------------------------------------------------------------------------- 1 | type Foo = { 2 | bar?: T; 3 | } 4 | -------------------------------------------------------------------------------- /conformance-tests/ts-types/type-literal-simple.ts: -------------------------------------------------------------------------------- 1 | let foo: { 2 | bar: number; 3 | baz: string; 4 | fizz: boolean; 5 | fuzz: any; 6 | } -------------------------------------------------------------------------------- /conformance-tests/ts-types/union/ts-union-type-simple_m5.ts: -------------------------------------------------------------------------------- 1 | type ValueSimple = number | string 2 | -------------------------------------------------------------------------------- /docs/JS-To-Lua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roblox/js-to-lua/5ce4081d78da1648f0d923799827c13442bcdbfb/docs/JS-To-Lua.png -------------------------------------------------------------------------------- /jest.config.ts: -------------------------------------------------------------------------------- 1 | const { getJestProjects } = require('@nrwl/jest'); 2 | 3 | export default { projects: getJestProjects() }; 4 | -------------------------------------------------------------------------------- /jest.preset.js: -------------------------------------------------------------------------------- 1 | const nxPreset = require('@nrwl/jest/preset').default; 2 | 3 | module.exports = { ...nxPreset }; 4 | -------------------------------------------------------------------------------- /libs/convert/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/convert/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/convert-program'; 2 | -------------------------------------------------------------------------------- /libs/diff-tool/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/diff-tool/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/diff-tool'; 2 | -------------------------------------------------------------------------------- /libs/fast-follow-commands/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/fast-follow-commands/index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | require('./src/index'); 4 | -------------------------------------------------------------------------------- /libs/fast-follow-commands/src/lib/generic-options.ts: -------------------------------------------------------------------------------- 1 | export type GenericOptions = { 2 | allowPublicActions: boolean; 3 | }; 4 | -------------------------------------------------------------------------------- /libs/handler-utils/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/handler-utils/src/lib/test-utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mock-node'; 2 | export * from './with-comments'; 3 | -------------------------------------------------------------------------------- /libs/lua-conversion-utils/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/lua-conversion-utils/src/lib/handlers/index.ts: -------------------------------------------------------------------------------- 1 | export * from './combine'; 2 | export * from './default'; 3 | -------------------------------------------------------------------------------- /libs/lua-conversion-utils/src/lib/visitor/index.ts: -------------------------------------------------------------------------------- 1 | export * from './visitor'; 2 | -------------------------------------------------------------------------------- /libs/lua-print/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/lua-print/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/print-node'; 2 | -------------------------------------------------------------------------------- /libs/lua-types/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/lua-types/test-utils/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/lua-types/test-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/mock-node'; 2 | export * from './lib/with-location'; 3 | -------------------------------------------------------------------------------- /libs/plugin-utils/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/plugin-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/plugin-utils'; 2 | -------------------------------------------------------------------------------- /libs/plugins/jest-globals/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/plugins/jest-globals/e2e/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/plugins/jest-globals/e2e/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /libs/plugins/jest-globals/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/plugins-jest-globals'; 2 | -------------------------------------------------------------------------------- /libs/plugins/jest-globals/src/lib/post-process/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hooks/pre-gather'; 2 | export * from './hooks/pre-run'; 3 | -------------------------------------------------------------------------------- /libs/plugins/known-imports/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/plugins/known-imports/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/plugins-known-imports'; 2 | -------------------------------------------------------------------------------- /libs/plugins/known-imports/src/lib/post-process/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hooks/post-run'; 2 | -------------------------------------------------------------------------------- /libs/post-process/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/post-process/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/post-process'; 2 | -------------------------------------------------------------------------------- /libs/release-tracker/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/release-tracker/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/conversion-config'; 2 | export * from './lib/release-tracker'; 3 | -------------------------------------------------------------------------------- /libs/shared-utils/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/upstream-utils/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/upstream-utils'; 2 | export * from './lib/git-utils'; 3 | -------------------------------------------------------------------------------- /libs/version-manager/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [["@nrwl/web/babel", { "useBuiltIns": "usage" }]] 3 | } 4 | -------------------------------------------------------------------------------- /libs/version-manager/.jest/env.js: -------------------------------------------------------------------------------- 1 | process.env.GITHUB_TOKEN = 'gh_test_token'; 2 | -------------------------------------------------------------------------------- /libs/version-manager/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib/version-manager'; 2 | -------------------------------------------------------------------------------- /tools/generators/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roblox/js-to-lua/5ce4081d78da1648f0d923799827c13442bcdbfb/tools/generators/.gitkeep --------------------------------------------------------------------------------