babel / babel

Compare 3a85ddf ... +0 ... 94af0e5

Coverage Reach
packages/babel-parser/src/plugins/typescript/index.js packages/babel-parser/src/plugins/typescript/scope.js packages/babel-parser/src/plugins/flow/index.js packages/babel-parser/src/plugins/flow/scope.js packages/babel-parser/src/plugins/jsx/index.js packages/babel-parser/src/plugins/jsx/xhtml.js packages/babel-parser/src/plugins/estree.js packages/babel-parser/src/plugins/placeholders.js packages/babel-parser/src/plugins/v8intrinsic.js packages/babel-parser/src/parser/expression.js packages/babel-parser/src/parser/statement.js packages/babel-parser/src/parser/lval.js packages/babel-parser/src/parser/util.js packages/babel-parser/src/parser/comments.js packages/babel-parser/src/parser/node.js packages/babel-parser/src/parser/error.js packages/babel-parser/src/parser/index.js packages/babel-parser/src/parser/base.js packages/babel-parser/src/parser/error-message.js packages/babel-parser/src/parser/error-codes.js packages/babel-parser/src/tokenizer/index.js packages/babel-parser/src/tokenizer/types.js packages/babel-parser/src/tokenizer/state.js packages/babel-parser/src/tokenizer/context.js packages/babel-parser/src/util/scope.js packages/babel-parser/src/util/expression-scope.js packages/babel-parser/src/util/scopeflags.js packages/babel-parser/src/util/class-scope.js packages/babel-parser/src/util/whitespace.js packages/babel-parser/src/util/production-parameter.js packages/babel-parser/src/util/location.js packages/babel-parser/src/util/identifier.js packages/babel-parser/src/plugin-utils.js packages/babel-parser/src/index.js packages/babel-parser/src/options.js packages/babel-traverse/src/path/inference/inferers.ts packages/babel-traverse/src/path/inference/inferer-reference.ts packages/babel-traverse/src/path/inference/index.ts packages/babel-traverse/src/path/conversion.ts packages/babel-traverse/src/path/evaluation.ts packages/babel-traverse/src/path/introspection.ts packages/babel-traverse/src/path/lib/hoister.ts packages/babel-traverse/src/path/lib/virtual-types.ts packages/babel-traverse/src/path/lib/removal-hooks.ts packages/babel-traverse/src/path/family.ts packages/babel-traverse/src/path/context.ts packages/babel-traverse/src/path/modification.ts packages/babel-traverse/src/path/replacement.ts packages/babel-traverse/src/path/index.ts packages/babel-traverse/src/path/ancestry.ts packages/babel-traverse/src/path/removal.ts packages/babel-traverse/src/path/comments.ts packages/babel-traverse/src/scope/index.ts packages/babel-traverse/src/scope/lib/renamer.ts packages/babel-traverse/src/scope/binding.ts packages/babel-traverse/src/visitors.ts packages/babel-traverse/src/context.ts packages/babel-traverse/src/index.ts packages/babel-traverse/src/cache.ts packages/babel-traverse/src/hub.ts packages/babel-generator/src/generators/flow.ts packages/babel-generator/src/generators/typescript.ts packages/babel-generator/src/generators/statements.ts packages/babel-generator/src/generators/expressions.ts packages/babel-generator/src/generators/types.ts packages/babel-generator/src/generators/modules.ts packages/babel-generator/src/generators/classes.ts packages/babel-generator/src/generators/methods.ts packages/babel-generator/src/generators/jsx.ts packages/babel-generator/src/generators/base.ts packages/babel-generator/src/generators/template-literals.ts packages/babel-generator/src/node/parentheses.ts packages/babel-generator/src/node/whitespace.ts packages/babel-generator/src/node/index.ts packages/babel-generator/src/printer.ts packages/babel-generator/src/buffer.ts packages/babel-generator/src/source-map.ts packages/babel-generator/src/index.ts packages/babel-core/src/config/validation/option-assertions.ts packages/babel-core/src/config/validation/options.ts packages/babel-core/src/config/validation/plugins.ts packages/babel-core/src/config/config-chain.ts packages/babel-core/src/config/files/configuration.ts packages/babel-core/src/config/files/plugins.ts packages/babel-core/src/config/files/module-types.ts packages/babel-core/src/config/files/package.ts packages/babel-core/src/config/files/index-browser.ts packages/babel-core/src/config/files/utils.ts packages/babel-core/src/config/files/import.ts packages/babel-core/src/config/files/index.ts packages/babel-core/src/config/caching.ts packages/babel-core/src/config/full.ts packages/babel-core/src/config/config-descriptors.ts packages/babel-core/src/config/partial.ts packages/babel-core/src/config/printer.ts packages/babel-core/src/config/helpers/config-api.ts packages/babel-core/src/config/helpers/environment.ts packages/babel-core/src/config/item.ts packages/babel-core/src/config/index.ts packages/babel-core/src/config/pattern-to-regex.ts packages/babel-core/src/config/util.ts packages/babel-core/src/config/resolve-targets.ts packages/babel-core/src/config/plugin.ts packages/babel-core/src/config/resolve-targets-browser.ts packages/babel-core/src/transformation/file/merge-map.ts packages/babel-core/src/transformation/file/file.ts packages/babel-core/src/transformation/file/generate.ts packages/babel-core/src/transformation/index.ts packages/babel-core/src/transformation/normalize-file.ts packages/babel-core/src/transformation/block-hoist-plugin.ts packages/babel-core/src/transformation/plugin-pass.ts packages/babel-core/src/transformation/normalize-opts.ts packages/babel-core/src/transformation/util/clone-deep-browser.ts packages/babel-core/src/transformation/util/clone-deep.ts packages/babel-core/src/tools/build-external-helpers.ts packages/babel-core/src/parser/index.ts packages/babel-core/src/parser/util/missing-plugin-helper.ts packages/babel-core/src/gensync-utils/async.ts packages/babel-core/src/gensync-utils/fs.ts packages/babel-core/src/transform-ast.ts packages/babel-core/src/parse.ts packages/babel-core/src/transform.ts packages/babel-core/src/transform-file.ts packages/babel-core/src/transform-file-browser.ts packages/babel-core/src/index.ts packages/babel-types/src/definitions/core.ts packages/babel-types/src/definitions/utils.ts packages/babel-types/src/definitions/typescript.ts packages/babel-types/src/definitions/flow.ts packages/babel-types/src/definitions/experimental.ts packages/babel-types/src/definitions/jsx.ts packages/babel-types/src/definitions/placeholders.ts packages/babel-types/src/definitions/index.ts packages/babel-types/src/definitions/misc.ts packages/babel-types/src/validators/isReferenced.ts packages/babel-types/src/validators/isNodesEquivalent.ts packages/babel-types/src/validators/matchesPattern.ts packages/babel-types/src/validators/validate.ts packages/babel-types/src/validators/isBinding.ts packages/babel-types/src/validators/is.ts packages/babel-types/src/validators/isType.ts packages/babel-types/src/validators/isImmutable.ts packages/babel-types/src/validators/isValidIdentifier.ts packages/babel-types/src/validators/isPlaceholderType.ts packages/babel-types/src/validators/isScope.ts packages/babel-types/src/validators/isSpecifierDefault.ts packages/babel-types/src/validators/isLet.ts packages/babel-types/src/validators/isVar.ts packages/babel-types/src/validators/isValidES3Identifier.ts packages/babel-types/src/validators/react/isCompatTag.ts packages/babel-types/src/validators/react/isReactComponent.ts packages/babel-types/src/validators/buildMatchMemberExpression.ts packages/babel-types/src/validators/isNode.ts packages/babel-types/src/validators/isBlockScoped.ts packages/babel-types/src/converters/valueToNode.ts packages/babel-types/src/converters/gatherSequenceExpressions.ts packages/babel-types/src/converters/toStatement.ts packages/babel-types/src/converters/toKeyAlias.ts packages/babel-types/src/converters/toExpression.ts packages/babel-types/src/converters/toBlock.ts packages/babel-types/src/converters/toIdentifier.ts packages/babel-types/src/converters/toSequenceExpression.ts packages/babel-types/src/converters/toComputedKey.ts packages/babel-types/src/converters/toBindingIdentifierName.ts packages/babel-types/src/converters/ensureBlock.ts packages/babel-types/src/modifications/flow/removeTypeDuplicates.ts packages/babel-types/src/modifications/typescript/removeTypeDuplicates.ts packages/babel-types/src/modifications/removeProperties.ts packages/babel-types/src/modifications/inherits.ts packages/babel-types/src/modifications/appendToMemberExpression.ts packages/babel-types/src/modifications/prependToMemberExpression.ts packages/babel-types/src/modifications/removePropertiesDeep.ts packages/babel-types/src/clone/cloneNode.ts packages/babel-types/src/clone/clone.ts packages/babel-types/src/clone/cloneDeepWithoutLoc.ts packages/babel-types/src/clone/cloneDeep.ts packages/babel-types/src/clone/cloneWithoutLoc.ts packages/babel-types/src/builders/flow/createTypeAnnotationBasedOnTypeof.ts packages/babel-types/src/builders/flow/createFlowUnionType.ts packages/babel-types/src/builders/builder.ts packages/babel-types/src/builders/react/buildChildren.ts packages/babel-types/src/builders/typescript/createTSUnionType.ts packages/babel-types/src/traverse/traverse.ts packages/babel-types/src/traverse/traverseFast.ts packages/babel-types/src/retrievers/getBindingIdentifiers.ts packages/babel-types/src/retrievers/getOuterBindingIdentifiers.ts packages/babel-types/src/utils/react/cleanJSXElementLiteralChild.ts packages/babel-types/src/utils/shallowEqual.ts packages/babel-types/src/utils/inherit.ts packages/babel-types/src/comments/addComments.ts packages/babel-types/src/comments/inheritsComments.ts packages/babel-types/src/comments/removeComments.ts packages/babel-types/src/comments/addComment.ts packages/babel-types/src/comments/inheritLeadingComments.ts packages/babel-types/src/comments/inheritTrailingComments.ts packages/babel-types/src/comments/inheritInnerComments.ts packages/babel-types/src/constants/index.ts packages/babel-types/src/asserts/assertNode.ts packages/babel-types/src/index.ts packages/babel-helper-create-class-features-plugin/src/fields.ts packages/babel-helper-create-class-features-plugin/src/index.ts packages/babel-helper-create-class-features-plugin/src/decorators.ts packages/babel-helper-create-class-features-plugin/src/features.ts packages/babel-helper-create-class-features-plugin/src/misc.ts packages/babel-helper-create-class-features-plugin/src/typescript.ts packages/babel-helper-module-transforms/src/normalize-and-load-metadata.ts packages/babel-helper-module-transforms/src/rewrite-live-references.ts packages/babel-helper-module-transforms/src/index.ts packages/babel-helper-module-transforms/src/get-module-name.ts packages/babel-helper-module-transforms/src/rewrite-this.ts packages/babel-plugin-transform-typescript/src/index.ts packages/babel-plugin-transform-typescript/src/enum.ts packages/babel-plugin-transform-typescript/src/namespace.ts packages/babel-plugin-transform-typescript/src/const-enum.ts packages/babel-plugin-transform-block-scoping/src/index.ts packages/babel-plugin-transform-block-scoping/src/tdz.ts packages/babel-preset-env/src/index.ts packages/babel-preset-env/src/normalize-options.ts packages/babel-preset-env/src/available-plugins.ts packages/babel-preset-env/src/polyfills/babel-polyfill.ts packages/babel-preset-env/src/polyfills/regenerator.ts packages/babel-preset-env/src/polyfills/utils.ts packages/babel-preset-env/src/debug.ts packages/babel-preset-env/src/plugins-compat-data.ts packages/babel-preset-env/src/filter-items.ts packages/babel-preset-env/src/options.ts packages/babel-preset-env/src/get-option-specific-excludes.ts packages/babel-cli/src/babel/options.ts packages/babel-cli/src/babel/dir.ts packages/babel-cli/src/babel/file.ts packages/babel-cli/src/babel/util.ts packages/babel-cli/src/babel/index.ts packages/babel-cli/src/babel-external-helpers.ts packages/babel-helpers/src/index.ts packages/babel-helpers/src/helpers/asyncIterator.js packages/babel-helpers/src/helpers/wrapRegExp.js packages/babel-helpers/src/helpers/jsx.js packages/babel-helpers/src/helpers/objectSpread2.js packages/babel-helpers/src/helpers/typeof.js packages/babel-helpers/src/helpers.ts packages/babel-helpers/src/helpers-generated.ts packages/babel-plugin-transform-react-jsx/src/create-plugin.ts packages/babel-plugin-transform-classes/src/transformClass.ts packages/babel-plugin-transform-classes/src/index.ts packages/babel-plugin-transform-classes/src/inline-createSuper-helpers.ts packages/babel-plugin-proposal-object-rest-spread/src/index.ts packages/babel-plugin-proposal-object-rest-spread/src/shouldStoreRHSInTemporaryVariable.ts packages/babel-template/src/parse.ts packages/babel-template/src/populate.ts packages/babel-template/src/builder.ts packages/babel-template/src/options.ts packages/babel-template/src/literal.ts packages/babel-template/src/formatters.ts packages/babel-template/src/string.ts packages/babel-template/src/index.ts packages/babel-plugin-transform-destructuring/src/index.ts packages/babel-plugin-transform-parameters/src/rest.ts packages/babel-plugin-transform-parameters/src/params.ts packages/babel-plugin-transform-parameters/src/index.ts packages/babel-plugin-transform-modules-systemjs/src/index.ts packages/babel-helper-module-imports/src/import-injector.ts packages/babel-helper-module-imports/src/import-builder.ts packages/babel-helper-module-imports/src/index.ts packages/babel-helper-module-imports/src/is-module.ts packages/babel-helper-compilation-targets/src/index.ts packages/babel-helper-compilation-targets/src/filter-items.ts packages/babel-helper-compilation-targets/src/utils.ts packages/babel-helper-compilation-targets/src/pretty.ts packages/babel-helper-compilation-targets/src/debug.ts packages/babel-helper-compilation-targets/src/targets.ts packages/babel-helper-compilation-targets/src/options.ts packages/babel-helper-member-expression-to-functions/src/index.ts packages/babel-helper-member-expression-to-functions/src/util.ts packages/babel-standalone/src/transformScriptTags.ts packages/babel-standalone/src/index.ts packages/babel-standalone/src/preset-es2015.ts packages/babel-standalone/src/preset-stage-2.ts packages/babel-standalone/src/preset-stage-0.ts packages/babel-standalone/src/preset-stage-1.ts packages/babel-standalone/src/preset-stage-3.ts packages/babel-standalone/src/babel-package-shim.ts packages/babel-standalone/src/generated/plugins.ts packages/babel-helper-transform-fixture-test-runner/src/index.ts packages/babel-helper-transform-fixture-test-runner/src/helpers.ts packages/babel-helper-fixtures/src/index.ts packages/babel-node/src/_babel-node.ts packages/babel-node/src/babel-node.ts packages/babel-plugin-transform-for-of/src/index.ts packages/babel-plugin-transform-for-of/src/no-helper-implementation.ts packages/babel-register/src/node.ts packages/babel-register/src/cache.ts packages/babel-register/src/nodeWrapper.ts packages/babel-register/src/index.js packages/babel-register/src/browser.ts packages/babel-plugin-transform-flow-comments/src/index.ts packages/babel-plugin-proposal-optional-chaining/src/transform.ts packages/babel-plugin-proposal-optional-chaining/src/util.ts packages/babel-plugin-proposal-optional-chaining/src/index.ts packages/babel-plugin-proposal-decorators/src/transformer-legacy.ts packages/babel-plugin-proposal-decorators/src/index.ts packages/babel-plugin-transform-runtime/src/index.ts packages/babel-plugin-transform-runtime/src/get-runtime-path/index.ts packages/babel-plugin-transform-runtime/src/get-runtime-path/browser.ts packages/babel-plugin-transform-runtime/src/helpers.ts packages/babel-helper-builder-react-jsx/src/index.ts packages/babel-helper-replace-supers/src/index.ts packages/babel-highlight/src/index.ts packages/babel-plugin-transform-react-constant-elements/src/index.ts packages/babel-plugin-transform-modules-commonjs/src/index.ts packages/babel-plugin-transform-spread/src/index.ts packages/babel-helper-create-regexp-features-plugin/src/index.ts packages/babel-helper-create-regexp-features-plugin/src/util.ts packages/babel-helper-create-regexp-features-plugin/src/features.ts packages/babel-code-frame/src/index.ts packages/babel-plugin-proposal-pipeline-operator/src/buildOptimizedSequenceExpression.ts packages/babel-plugin-proposal-pipeline-operator/src/smartVisitor.ts packages/babel-plugin-proposal-pipeline-operator/src/hackVisitor.ts packages/babel-plugin-proposal-pipeline-operator/src/fsharpVisitor.ts packages/babel-plugin-proposal-pipeline-operator/src/minimalVisitor.ts packages/babel-plugin-proposal-pipeline-operator/src/index.ts packages/babel-plugin-transform-flow-strip-types/src/index.ts packages/babel-helper-define-map/src/index.ts packages/babel-helper-function-name/src/index.ts packages/babel-plugin-transform-computed-properties/src/index.ts packages/babel-plugin-transform-modules-umd/src/index.ts packages/babel-helper-validator-identifier/src/identifier.ts packages/babel-helper-validator-identifier/src/keyword.ts packages/babel-plugin-transform-modules-amd/src/index.ts packages/babel-plugin-transform-template-literals/src/index.ts packages/babel-plugin-proposal-private-property-in-object/src/index.ts packages/babel-plugin-transform-unicode-escapes/src/index.ts packages/babel-plugin-proposal-async-generator-functions/src/index.ts packages/babel-plugin-proposal-async-generator-functions/src/for-await.ts packages/babel-plugin-transform-react-display-name/src/index.ts packages/babel-helper-wrap-function/src/index.ts packages/babel-plugin-proposal-partial-application/src/index.ts packages/babel-helper-validator-option/src/validator.ts packages/babel-helper-validator-option/src/find-suggestion.ts packages/babel-preset-react/src/normalize-options.ts packages/babel-preset-react/src/index.ts packages/babel-helper-plugin-utils/src/index.ts packages/babel-plugin-transform-proto-to-assign/src/index.ts packages/babel-helper-simple-access/src/index.ts packages/babel-helper-split-export-declaration/src/index.ts packages/babel-plugin-transform-react-inline-elements/src/index.ts packages/babel-plugin-transform-typeof-symbol/src/index.ts packages/babel-plugin-transform-duplicate-keys/src/index.ts packages/babel-helper-explode-assignable-expression/src/index.ts packages/babel-helper-remap-async-to-generator/src/index.ts packages/babel-plugin-transform-react-jsx-source/src/index.ts packages/babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining/src/util.ts packages/babel-plugin-bugfix-v8-spread-parameters-in-optional-chaining/src/index.ts packages/babel-plugin-transform-react-jsx-self/src/index.ts packages/babel-plugin-proposal-record-and-tuple/src/index.ts packages/babel-plugin-proposal-function-bind/src/index.ts packages/babel-plugin-transform-new-target/src/index.ts packages/babel-preset-typescript/src/normalize-options.ts packages/babel-preset-typescript/src/index.ts packages/babel-plugin-proposal-function-sent/src/index.ts packages/babel-plugin-proposal-class-static-block/src/index.ts packages/babel-plugin-transform-react-pure-annotations/src/index.ts packages/babel-plugin-proposal-logical-assignment-operators/src/index.ts packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression/src/util.ts packages/babel-plugin-bugfix-safari-id-destructuring-collision-in-function-expression/src/index.ts packages/babel-helper-hoist-variables/src/index.ts packages/babel-plugin-transform-block-scoped-functions/src/index.ts packages/babel-plugin-proposal-nullish-coalescing-operator/src/index.ts packages/babel-plugin-syntax-typescript/src/index.ts packages/babel-plugin-proposal-export-namespace-from/src/index.ts packages/babel-plugin-transform-shorthand-properties/src/index.ts packages/babel-plugin-syntax-decorators/src/index.ts packages/babel-plugin-transform-property-mutators/src/index.ts packages/babel-plugin-transform-async-to-generator/src/index.ts packages/babel-plugin-external-helpers/src/index.ts packages/babel-plugin-proposal-async-do-expressions/src/index.ts packages/babel-plugin-transform-instanceof/src/index.ts packages/babel-helper-skip-transparent-expression-wrappers/src/index.ts packages/babel-plugin-transform-object-super/src/index.ts packages/babel-plugin-proposal-export-default-from/src/index.ts packages/babel-helper-builder-binary-assignment-operator-visitor/src/index.ts packages/babel-preset-flow/src/normalize-options.ts packages/babel-preset-flow/src/index.ts packages/babel-plugin-syntax-pipeline-operator/src/index.ts packages/babel-plugin-syntax-flow/src/index.ts packages/babel-helper-environment-visitor/src/index.ts packages/babel-plugin-transform-function-name/src/index.ts packages/babel-plugin-proposal-json-strings/src/index.ts packages/babel-plugin-proposal-dynamic-import/src/index.ts packages/babel-helper-plugin-test-runner/src/index.ts packages/babel-plugin-proposal-do-expressions/src/index.ts packages/babel-plugin-transform-member-expression-literals/src/index.ts packages/babel-helper-optimise-call-expression/src/index.ts packages/babel-plugin-transform-react-jsx-compat/src/index.ts packages/babel-plugin-transform-property-literals/src/index.ts packages/babel-plugin-transform-literals/src/index.ts packages/babel-helper-annotate-as-pure/src/index.ts packages/babel-plugin-proposal-throw-expressions/src/index.ts packages/babel-plugin-syntax-jsx/src/index.ts packages/babel-plugin-transform-strict-mode/src/index.ts packages/babel-plugin-proposal-optional-catch-binding/src/index.ts packages/babel-plugin-transform-sticky-regex/src/index.ts packages/babel-helper-get-function-arity/src/index.ts packages/babel-plugin-proposal-numeric-separator/src/index.ts packages/babel-plugin-transform-jscript/src/index.ts packages/babel-plugin-transform-arrow-functions/src/index.ts packages/babel-plugin-syntax-record-and-tuple/src/index.ts packages/babel-plugin-transform-reserved-words/src/index.ts packages/babel-plugin-proposal-unicode-property-regex/src/index.ts packages/babel-plugin-transform-object-assign/src/index.ts packages/babel-plugin-transform-object-set-prototype-of-to-assign/src/index.ts packages/babel-plugin-syntax-partial-application/src/index.ts packages/babel-plugin-transform-named-capturing-groups-regex/src/index.ts packages/babel-plugin-syntax-async-do-expressions/src/index.ts packages/babel-plugin-syntax-function-sent/src/index.ts packages/babel-plugin-syntax-decimal/src/index.ts packages/babel-plugin-proposal-class-properties/src/index.ts packages/babel-plugin-syntax-import-assertions/src/index.ts packages/babel-plugin-syntax-throw-expressions/src/index.ts packages/babel-plugin-transform-exponentiation-operator/src/index.ts packages/babel-plugin-syntax-do-expressions/src/index.ts packages/babel-plugin-syntax-module-blocks/src/index.ts packages/babel-plugin-syntax-export-default-from/src/index.ts packages/babel-plugin-syntax-function-bind/src/index.ts packages/babel-plugin-proposal-private-methods/src/index.ts packages/babel-plugin-transform-unicode-regex/src/index.ts packages/babel-plugin-transform-dotall-regex/src/index.ts eslint/babel-eslint-parser/src/convert/convertTokens.cjs eslint/babel-eslint-parser/src/convert/convertAST.cjs eslint/babel-eslint-parser/src/convert/index.cjs eslint/babel-eslint-parser/src/convert/convertComments.cjs eslint/babel-eslint-parser/src/analyze-scope.cjs eslint/babel-eslint-parser/src/worker/configuration.cjs eslint/babel-eslint-parser/src/worker/handle-message.cjs eslint/babel-eslint-parser/src/worker/maybeParse.cjs eslint/babel-eslint-parser/src/worker/ast-info.cjs eslint/babel-eslint-parser/src/worker/babel-core.cjs eslint/babel-eslint-parser/src/worker/extract-parser-options-plugin.cjs eslint/babel-eslint-parser/src/client.cjs eslint/babel-eslint-parser/src/parse.cjs eslint/babel-eslint-parser/src/index.cjs eslint/babel-eslint-parser/src/experimental-worker.cjs eslint/babel-eslint-parser/src/configuration.cjs eslint/babel-eslint-parser/src/utils/eslint-version.cjs eslint/babel-eslint-plugin-development/src/utils/get-reference-origin.ts eslint/babel-eslint-plugin-development/src/utils/is-from-babel-types.ts eslint/babel-eslint-plugin-development/src/utils/get-export-name.ts eslint/babel-eslint-plugin-development/src/utils/is-babel-plugin-factory.ts eslint/babel-eslint-plugin-development/src/rules/plugin-name.ts eslint/babel-eslint-plugin-development/src/rules/no-undefined-identifier.ts eslint/babel-eslint-plugin-development/src/rules/no-deprecated-clone.ts eslint/babel-eslint-plugin-development/src/index.ts eslint/babel-eslint-plugin/src/rules/semi.ts eslint/babel-eslint-plugin/src/rules/no-unused-expressions.ts eslint/babel-eslint-plugin/src/rules/no-invalid-this.ts eslint/babel-eslint-plugin/src/rules/object-curly-spacing.ts eslint/babel-eslint-plugin/src/rules/new-cap.ts eslint/babel-eslint-plugin/src/index.ts eslint/babel-eslint-plugin-development-internal/src/rules/dry-error-messages.ts eslint/babel-eslint-plugin-development-internal/src/rules/report-error-message-format.ts eslint/babel-eslint-plugin-development-internal/src/index.ts codemods/babel-plugin-codemod-object-assign-to-object-spread/src/index.ts codemods/babel-plugin-codemod-optional-catch-binding/src/index.ts

No flags found

Use flags to group coverage reports by test type, project and/or folders.
Then setup custom commit statuses and notifications for each flag.

e.g., #unittest #integration

#production #enterprise

#frontend #backend

Learn more about Codecov Flags here.

Showing 10 of 22 files from the diff.

@@ -4,6 +4,7 @@
Loading
4 4
import {
5 5
  tokenIsIdentifier,
6 6
  tokenIsLoop,
7 +
  tokenIsTemplate,
7 8
  tt,
8 9
  type TokenType,
9 10
  getExportedToken,
@@ -39,7 +40,7 @@
Loading
39 40
} from "../util/expression-scope";
40 41
import type { SourceType } from "../options";
41 42
import { Token } from "../tokenizer";
42 -
import { Position } from "../util/location";
43 +
import { createPositionWithColumnOffset } from "../util/location";
43 44
import { cloneStringLiteral, cloneIdentifier } from "./node";
44 45
45 46
const loopLabel = { kind: "loop" },
@@ -55,7 +56,10 @@
Loading
55 56
const keywordRelationalOperator = /in(?:stanceof)?/y;
56 57
57 58
/**
58 -
 * Convert tt.privateName to tt.hash + tt.name for backward Babel 7 compat.
59 +
 * Convert tokens for backward Babel 7 compat.
60 +
 * tt.privateName => tt.hash + tt.name
61 +
 * tt.templateTail => tt.backquote/tt.braceR + tt.template + tt.backquote
62 +
 * tt.templateNonTail => tt.backquote/tt.braceR + tt.template + tt.dollarBraceL
59 63
 * For performance reasons this routine mutates `tokens`, it is okay
60 64
 * here since we execute `parseTopLevel` once for every file.
61 65
 * @param {*} tokens
@@ -65,38 +69,116 @@
Loading
65 69
  for (let i = 0; i < tokens.length; i++) {
66 70
    const token = tokens[i];
67 71
    const { type } = token;
68 -
    if (type === tt.privateName) {
72 +
    if (typeof type === "number") {
69 73
      if (!process.env.BABEL_8_BREAKING) {
70 -
        const { loc, start, value, end } = token;
71 -
        const hashEndPos = start + 1;
72 -
        const hashEndLoc = new Position(loc.start.line, loc.start.column + 1);
73 -
        tokens.splice(
74 -
          i,
75 -
          1,
76 -
          // $FlowIgnore: hacky way to create token
77 -
          new Token({
78 -
            type: getExportedToken(tt.hash),
79 -
            value: "#",
80 -
            start: start,
81 -
            end: hashEndPos,
82 -
            startLoc: loc.start,
83 -
            endLoc: hashEndLoc,
84 -
          }),
85 -
          // $FlowIgnore: hacky way to create token
86 -
          new Token({
87 -
            type: getExportedToken(tt.name),
88 -
            value: value,
89 -
            start: hashEndPos,
90 -
            end: end,
91 -
            startLoc: hashEndLoc,
92 -
            endLoc: loc.end,
93 -
          }),
94 -
        );
95 -
        i++;
96 -
        continue;
74 +
        if (type === tt.privateName) {
75 +
          const { loc, start, value, end } = token;
76 +
          const hashEndPos = start + 1;
77 +
          const hashEndLoc = createPositionWithColumnOffset(loc.start, 1);
78 +
          tokens.splice(
79 +
            i,
80 +
            1,
81 +
            // $FlowIgnore: hacky way to create token
82 +
            new Token({
83 +
              type: getExportedToken(tt.hash),
84 +
              value: "#",
85 +
              start: start,
86 +
              end: hashEndPos,
87 +
              startLoc: loc.start,
88 +
              endLoc: hashEndLoc,
89 +
            }),
90 +
            // $FlowIgnore: hacky way to create token
91 +
            new Token({
92 +
              type: getExportedToken(tt.name),
93 +
              value: value,
94 +
              start: hashEndPos,
95 +
              end: end,
96 +
              startLoc: hashEndLoc,
97 +
              endLoc: loc.end,
98 +
            }),
99 +
          );
100 +
          i++;
101 +
          continue;
102 +
        }
103 +
104 +
        if (tokenIsTemplate(type)) {
105 +
          const { loc, start, value, end } = token;
106 +
          const backquoteEnd = start + 1;
107 +
          const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);
108 +
          let startToken;
109 +
          if (value.charCodeAt(0) === charCodes.graveAccent) {
110 +
            // $FlowIgnore: hacky way to create token
111 +
            startToken = new Token({
112 +
              type: getExportedToken(tt.backQuote),
113 +
              value: "`",
114 +
              start: start,
115 +
              end: backquoteEnd,
116 +
              startLoc: loc.start,
117 +
              endLoc: backquoteEndLoc,
118 +
            });
119 +
          } else {
120 +
            // $FlowIgnore: hacky way to create token
121 +
            startToken = new Token({
122 +
              type: getExportedToken(tt.braceR),
123 +
              value: "}",
124 +
              start: start,
125 +
              end: backquoteEnd,
126 +
              startLoc: loc.start,
127 +
              endLoc: backquoteEndLoc,
128 +
            });
129 +
          }
130 +
          let templateValue,
131 +
            templateElementEnd,
132 +
            templateElementEndLoc,
133 +
            endToken;
134 +
          if (type === tt.templateTail) {
135 +
            // ends with '`'
136 +
            templateElementEnd = end - 1;
137 +
            templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1);
138 +
            templateValue = value.slice(1, -1);
139 +
            // $FlowIgnore: hacky way to create token
140 +
            endToken = new Token({
141 +
              type: getExportedToken(tt.backQuote),
142 +
              value: "`",
143 +
              start: templateElementEnd,
144 +
              end: end,
145 +
              startLoc: templateElementEndLoc,
146 +
              endLoc: loc.end,
147 +
            });
148 +
          } else {
149 +
            // ends with `${`
150 +
            templateElementEnd = end - 2;
151 +
            templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2);
152 +
            templateValue = value.slice(1, -2);
153 +
            // $FlowIgnore: hacky way to create token
154 +
            endToken = new Token({
155 +
              type: getExportedToken(tt.dollarBraceL),
156 +
              value: "${",
157 +
              start: templateElementEnd,
158 +
              end: end,
159 +
              startLoc: templateElementEndLoc,
160 +
              endLoc: loc.end,
161 +
            });
162 +
          }
163 +
          tokens.splice(
164 +
            i,
165 +
            1,
166 +
            startToken,
167 +
            // $FlowIgnore: hacky way to create token
168 +
            new Token({
169 +
              type: getExportedToken(tt.template),
170 +
              value: templateValue,
171 +
              start: backquoteEnd,
172 +
              end: templateElementEnd,
173 +
              startLoc: backquoteEndLoc,
174 +
              endLoc: templateElementEndLoc,
175 +
            }),
176 +
            endToken,
177 +
          );
178 +
          i += 2;
179 +
          continue;
180 +
        }
97 181
      }
98 -
    }
99 -
    if (typeof type === "number") {
100 182
      // $FlowIgnore: we manipulate `token` for performance reasons
101 183
      token.type = getExportedToken(type);
102 184
    }

@@ -71,13 +71,6 @@
Loading
71 71
        templateTokens.push(token);
72 72
        break;
73 73
74 -
      case tl.eof:
75 -
        if (curlyBrace) {
76 -
          result.push(curlyBrace);
77 -
        }
78 -
79 -
        break;
80 -
81 74
      default:
82 75
        if (curlyBrace) {
83 76
          result.push(curlyBrace);
@@ -186,6 +179,8 @@
Loading
186 179
    token.value = `${token.value}n`;
187 180
  } else if (label === tl.privateName) {
188 181
    token.type = "PrivateIdentifier";
182 +
  } else if (label === tl.templateNonTail || label === tl.templateTail) {
183 +
    token.type = "Template";
189 184
  }
190 185
191 186
  if (typeof token.type !== "string") {
@@ -196,22 +191,26 @@
Loading
196 191
197 192
module.exports = function convertTokens(tokens, code, tl) {
198 193
  const result = [];
199 -
200 -
  const withoutComments = convertTemplateType(tokens, tl).filter(
201 -
    t => t.type !== "CommentLine" && t.type !== "CommentBlock",
202 -
  );
203 -
  for (let i = 0, { length } = withoutComments; i < length; i++) {
204 -
    const token = withoutComments[i];
194 +
  const templateTypeMergedTokens = process.env.BABEL_8_BREAKING
195 +
    ? tokens
196 +
    : convertTemplateType(tokens, tl);
197 +
  // The last token is always tt.eof and should be skipped
198 +
  for (let i = 0, { length } = templateTypeMergedTokens; i < length - 1; i++) {
199 +
    const token = templateTypeMergedTokens[i];
200 +
    const tokenType = token.type;
201 +
    if (tokenType === "CommentLine" || tokenType === "CommentBlock") {
202 +
      continue;
203 +
    }
205 204
206 205
    if (!process.env.BABEL_8_BREAKING) {
207 206
      // Babel 8 already produces a single token
208 207
209 208
      if (
210 209
        ESLINT_VERSION >= 8 &&
211 210
        i + 1 < length &&
212 -
        token.type.label === tl.hash
211 +
        tokenType.label === tl.hash
213 212
      ) {
214 -
        const nextToken = withoutComments[i + 1];
213 +
        const nextToken = templateTypeMergedTokens[i + 1];
215 214
216 215
        // We must disambiguate private identifier from the hack pipes topic token
217 216
        if (nextToken.type.label === tl.name && token.end === nextToken.start) {

@@ -50,3 +50,22 @@
Loading
50 50
51 51
  return new Position(line, offset - lineStart);
52 52
}
53 +
54 +
/**
55 +
 * creates a new position with a non-zero column offset from the given position.
56 +
 * This function should be only be used when we create AST node out of the token
57 +
 * boundaries, such as TemplateElement ends before tt.templateNonTail. This
58 +
 * function does not skip whitespaces.
59 +
 *
60 +
 * @export
61 +
 * @param {Position} position
62 +
 * @param {number} columnOffset
63 +
 * @returns {Position}
64 +
 */
65 +
export function createPositionWithColumnOffset(
66 +
  position: Position,
67 +
  columnOffset: number,
68 +
) {
69 +
  const { line, column } = position;
70 +
  return new Position(line, column + columnOffset);
71 +
}

@@ -13,7 +13,7 @@
Loading
13 13
  keywords as keywordTypes,
14 14
  type TokenType,
15 15
} from "./types";
16 -
import { type TokContext, types as ct } from "./context";
16 +
import { type TokContext } from "./context";
17 17
import ParserErrors, { Errors, type ErrorTemplate } from "../parser/error";
18 18
import { SourceLocation } from "../util/location";
19 19
import {
@@ -296,20 +296,15 @@
Loading
296 296
  // properties.
297 297
298 298
  nextToken(): void {
299 -
    const curContext = this.curContext();
300 -
    if (!curContext.preserveSpace) this.skipSpace();
299 +
    this.skipSpace();
301 300
    this.state.start = this.state.pos;
302 301
    if (!this.isLookahead) this.state.startLoc = this.state.curPosition();
303 302
    if (this.state.pos >= this.length) {
304 303
      this.finishToken(tt.eof);
305 304
      return;
306 305
    }
307 306
308 -
    if (curContext === ct.template) {
309 -
      this.readTmplToken();
310 -
    } else {
311 -
      this.getTokenFromCode(this.codePointAtPos(this.state.pos));
312 -
    }
307 +
    this.getTokenFromCode(this.codePointAtPos(this.state.pos));
313 308
  }
314 309
315 310
  skipBlockComment(): N.CommentBlock | void {
@@ -921,8 +916,7 @@
Loading
921 916
        return;
922 917
923 918
      case charCodes.graveAccent:
924 -
        ++this.state.pos;
925 -
        this.finishToken(tt.backQuote);
919 +
        this.readTemplateToken();
926 920
        return;
927 921
928 922
      case charCodes.digit0: {
@@ -1375,36 +1369,40 @@
Loading
1375 1369
    this.finishToken(tt.string, out);
1376 1370
  }
1377 1371
1378 -
  // Reads template string tokens.
1372 +
  // Reads tempalte continuation `}...`
1373 +
  readTemplateContinuation(): void {
1374 +
    if (!this.match(tt.braceR)) {
1375 +
      this.unexpected(this.state.start, tt.braceR);
1376 +
    }
1377 +
    // rewind pos to `}`
1378 +
    this.state.pos--;
1379 +
    this.readTemplateToken();
1380 +
  }
1379 1381
1380 -
  readTmplToken(): void {
1382 +
  // Reads template string tokens.
1383 +
  readTemplateToken(): void {
1381 1384
    let out = "",
1382 -
      chunkStart = this.state.pos,
1385 +
      chunkStart = this.state.pos, // eat '`' or `}`
1383 1386
      containsInvalid = false;
1387 +
    ++this.state.pos; // eat '`' or `}`
1384 1388
    for (;;) {
1385 1389
      if (this.state.pos >= this.length) {
1386 -
        throw this.raise(this.state.start, Errors.UnterminatedTemplate);
1390 +
        throw this.raise(this.state.start + 1, Errors.UnterminatedTemplate);
1387 1391
      }
1388 1392
      const ch = this.input.charCodeAt(this.state.pos);
1393 +
      if (ch === charCodes.graveAccent) {
1394 +
        ++this.state.pos; // eat '`'
1395 +
        out += this.input.slice(chunkStart, this.state.pos);
1396 +
        this.finishToken(tt.templateTail, containsInvalid ? null : out);
1397 +
        return;
1398 +
      }
1389 1399
      if (
1390 -
        ch === charCodes.graveAccent ||
1391 -
        (ch === charCodes.dollarSign &&
1392 -
          this.input.charCodeAt(this.state.pos + 1) ===
1393 -
            charCodes.leftCurlyBrace)
1400 +
        ch === charCodes.dollarSign &&
1401 +
        this.input.charCodeAt(this.state.pos + 1) === charCodes.leftCurlyBrace
1394 1402
      ) {
1395 -
        if (this.state.pos === this.state.start && this.match(tt.template)) {
1396 -
          if (ch === charCodes.dollarSign) {
1397 -
            this.state.pos += 2;
1398 -
            this.finishToken(tt.dollarBraceL);
1399 -
            return;
1400 -
          } else {
1401 -
            ++this.state.pos;
1402 -
            this.finishToken(tt.backQuote);
1403 -
            return;
1404 -
          }
1405 -
        }
1403 +
        this.state.pos += 2; // eat '${'
1406 1404
        out += this.input.slice(chunkStart, this.state.pos);
1407 -
        this.finishToken(tt.template, containsInvalid ? null : out);
1405 +
        this.finishToken(tt.templateNonTail, containsInvalid ? null : out);
1408 1406
        return;
1409 1407
      }
1410 1408
      if (ch === charCodes.backslash) {
@@ -1633,44 +1631,7 @@
Loading
1633 1631
    }
1634 1632
  }
1635 1633
1636 -
  // the prevType is required by the jsx plugin
1634 +
  // updateContext is used by the jsx plugin
1637 1635
  // eslint-disable-next-line no-unused-vars
1638 -
  updateContext(prevType: TokenType): void {
1639 -
    // Token-specific context update code
1640 -
    // Note that we should avoid accessing `this.prodParam` in context update,
1641 -
    // because it is executed immediately when last token is consumed, which may be
1642 -
    // before `this.prodParam` is updated. e.g.
1643 -
    // ```
1644 -
    // function *g() { () => yield / 2 }
1645 -
    // ```
1646 -
    // When `=>` is eaten, the context update of `yield` is executed, however,
1647 -
    // `this.prodParam` still has `[Yield]` production because it is not yet updated
1648 -
    const { context, type } = this.state;
1649 -
    switch (type) {
1650 -
      case tt.braceR:
1651 -
        context.pop();
1652 -
        break;
1653 -
      // we don't need to update context for tt.braceBarL because we do not pop context for tt.braceBarR
1654 -
      // ideally only dollarBraceL "${" needs a non-template context
1655 -
      // in order to indicate that the last "`" in `${`" starts a new string template
1656 -
      // inside a template element within outer string template.
1657 -
      // but when we popped such context in `}`, we lost track of whether this
1658 -
      // `}` matches a `${` or other tokens matching `}`, so we have to push
1659 -
      // such context in every token that `}` will match.
1660 -
      case tt.braceL:
1661 -
      case tt.braceHashL:
1662 -
      case tt.dollarBraceL:
1663 -
        context.push(ct.brace);
1664 -
        break;
1665 -
      case tt.backQuote:
1666 -
        if (context[context.length - 1] === ct.template) {
1667 -
          context.pop();
1668 -
        } else {
1669 -
          context.push(ct.template);
1670 -
        }
1671 -
        break;
1672 -
      default:
1673 -
        break;
1674 -
    }
1675 -
  }
1636 +
  updateContext(prevType: TokenType): void {}
1676 1637
}

@@ -27,6 +27,7 @@
Loading
27 27
  tokenIsPostfix,
28 28
  tokenIsPrefix,
29 29
  tokenIsRightAssociative,
30 +
  tokenIsTemplate,
30 31
  tokenKeywordOrIdentifierIsKeyword,
31 32
  tokenLabelName,
32 33
  tokenOperatorPrecedence,
@@ -43,7 +44,7 @@
Loading
43 44
  isIdentifierStart,
44 45
  canBeReservedWord,
45 46
} from "../util/identifier";
46 -
import { Position } from "../util/location";
47 +
import { Position, createPositionWithColumnOffset } from "../util/location";
47 48
import * as charCodes from "charcodes";
48 49
import {
49 50
  BIND_OUTSIDE,
@@ -706,9 +707,10 @@
Loading
706 707
    noCalls: ?boolean,
707 708
    state: N.ParseSubscriptState,
708 709
  ): N.Expression {
709 -
    if (!noCalls && this.eat(tt.doubleColon)) {
710 +
    const { type } = this.state;
711 +
    if (!noCalls && type === tt.doubleColon) {
710 712
      return this.parseBind(base, startPos, startLoc, noCalls, state);
711 -
    } else if (this.match(tt.backQuote)) {
713 +
    } else if (tokenIsTemplate(type)) {
712 714
      return this.parseTaggedTemplateExpression(
713 715
        base,
714 716
        startPos,
@@ -719,7 +721,7 @@
Loading
719 721
720 722
    let optional = false;
721 723
722 -
    if (this.match(tt.questionDot)) {
724 +
    if (type === tt.questionDot) {
723 725
      if (noCalls && this.lookaheadCharCode() === charCodes.leftParenthesis) {
724 726
        // stop at `?.` when parsing `new a?.()`
725 727
        state.stop = true;
@@ -801,6 +803,7 @@
Loading
801 803
  ): N.Expression {
802 804
    const node = this.startNodeAt(startPos, startLoc);
803 805
    node.object = base;
806 +
    this.next(); // eat '::'
804 807
    node.callee = this.parseNoCallExpr();
805 808
    state.stop = true;
806 809
    return this.parseSubscripts(
@@ -1153,7 +1156,8 @@
Loading
1153 1156
      case tt._new:
1154 1157
        return this.parseNewOrNewTarget();
1155 1158
1156 -
      case tt.backQuote:
1159 +
      case tt.templateNonTail:
1160 +
      case tt.templateTail:
1157 1161
        return this.parseTemplate(false);
1158 1162
1159 1163
      // BindExpression[Yield]
@@ -1832,37 +1836,47 @@
Loading
1832 1836
  // Parse template expression.
1833 1837
1834 1838
  parseTemplateElement(isTagged: boolean): N.TemplateElement {
1835 -
    const elem = this.startNode();
1836 -
    if (this.state.value === null) {
1839 +
    const { start, end, value } = this.state;
1840 +
    const elemStart = start + 1;
1841 +
    const elem = this.startNodeAt(
1842 +
      elemStart,
1843 +
      createPositionWithColumnOffset(this.state.startLoc, 1),
1844 +
    );
1845 +
    if (value === null) {
1837 1846
      if (!isTagged) {
1838 -
        this.raise(this.state.start + 1, Errors.InvalidEscapeSequenceTemplate);
1847 +
        this.raise(start + 2, Errors.InvalidEscapeSequenceTemplate);
1839 1848
      }
1840 1849
    }
1850 +
1851 +
    const isTail = this.match(tt.templateTail);
1852 +
    const endOffset = isTail ? -1 : -2;
1853 +
    const elemEnd = end + endOffset;
1841 1854
    elem.value = {
1842 -
      raw: this.input
1843 -
        .slice(this.state.start, this.state.end)
1844 -
        .replace(/\r\n?/g, "\n"),
1845 -
      cooked: this.state.value,
1855 +
      raw: this.input.slice(elemStart, elemEnd).replace(/\r\n?/g, "\n"),
1856 +
      cooked: value === null ? null : value.slice(1, endOffset),
1846 1857
    };
1858 +
    elem.tail = isTail;
1847 1859
    this.next();
1848 -
    elem.tail = this.match(tt.backQuote);
1849 -
    return this.finishNode(elem, "TemplateElement");
1860 +
    this.finishNode(elem, "TemplateElement");
1861 +
    this.resetEndLocation(
1862 +
      elem,
1863 +
      elemEnd,
1864 +
      createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset),
1865 +
    );
1866 +
    return elem;
1850 1867
  }
1851 1868
1852 1869
  // https://tc39.es/ecma262/#prod-TemplateLiteral
1853 1870
  parseTemplate(isTagged: boolean): N.TemplateLiteral {
1854 1871
    const node = this.startNode();
1855 -
    this.next();
1856 1872
    node.expressions = [];
1857 1873
    let curElt = this.parseTemplateElement(isTagged);
1858 1874
    node.quasis = [curElt];
1859 1875
    while (!curElt.tail) {
1860 -
      this.expect(tt.dollarBraceL);
1861 1876
      node.expressions.push(this.parseTemplateSubstitution());
1862 -
      this.expect(tt.braceR);
1877 +
      this.readTemplateContinuation();
1863 1878
      node.quasis.push((curElt = this.parseTemplateElement(isTagged)));
1864 1879
    }
1865 -
    this.next();
1866 1880
    return this.finishNode(node, "TemplateLiteral");
1867 1881
  }
1868 1882
@@ -2681,21 +2695,22 @@
Loading
2681 2695
  }
2682 2696
2683 2697
  isAmbiguousAwait(): boolean {
2698 +
    if (this.hasPrecedingLineBreak()) return true;
2699 +
    const { type } = this.state;
2684 2700
    return (
2685 -
      this.hasPrecedingLineBreak() ||
2686 2701
      // All the following expressions are ambiguous:
2687 2702
      //   await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``
2688 -
      this.match(tt.plusMin) ||
2689 -
      this.match(tt.parenL) ||
2690 -
      this.match(tt.bracketL) ||
2691 -
      this.match(tt.backQuote) ||
2703 +
      type === tt.plusMin ||
2704 +
      type === tt.parenL ||
2705 +
      type === tt.bracketL ||
2706 +
      tokenIsTemplate(type) ||
2692 2707
      // Sometimes the tokenizer generates tt.slash for regexps, and this is
2693 2708
      // handler by parseExprAtom
2694 -
      this.match(tt.regexp) ||
2695 -
      this.match(tt.slash) ||
2709 +
      type === tt.regexp ||
2710 +
      type === tt.slash ||
2696 2711
      // This code could be parsed both as a modulo operator or as an intrinsic:
2697 2712
      //   await %x(0)
2698 -
      (this.hasPlugin("v8intrinsic") && this.match(tt.modulo))
2713 +
      (this.hasPlugin("v8intrinsic") && type === tt.modulo)
2699 2714
    );
2700 2715
  }
2701 2716

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Click to load this diff.
Loading diff...

Everything is accounted for!

No changes detected that need to be reviewed.
What changes does Codecov check for?
Lines, not adjusted in diff, that have changed coverage data.
Files that introduced coverage data that had none before.
Files that have missing coverage data that once were tracked.
Files Coverage
codemods 100.00%
eslint -0.20% 94.76%
packages 0.01% 90.89%
Project Totals (462 files) 91.03%
Loading