Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OOM when many (>10) project configs passed to the parser #1192

Open
screendriver opened this issue Nov 11, 2019 · 133 comments
Open

OOM when many (>10) project configs passed to the parser #1192

screendriver opened this issue Nov 11, 2019 · 133 comments
Labels
blocked by another issue Issues which are not ready because another issue needs to be resolved first bug Something isn't working meta meta-issues which consolidate many issues together package: typescript-estree Issues related to @typescript-eslint/typescript-estree performance Issues regarding performance

Comments

@screendriver
Copy link

screendriver commented Nov 11, 2019

@bradzacher and @JoshuaKGoldberg - hijacking OP to say:

We are currently investigating solutions to this with the TypeScript team: microsoft/TypeScript#35676, #1718, #2094, #6754

If you run into an OOM, please provide as much information as you can, including answering the following questions:

  • Is your project open-source? (if yes - link please)
  • Is your package a monorepo? If yes:
    • Are you using lerna, or some other method?
    • How many packages are in your monorepo?
    • Do you have one tsconfig per package, one at the root, or a mish-mash of both?
    • How interdependent is your codebase (i.e. are there lots of utility packages that are used by every package, or is it mainly packages with clear separations?)
  • How do you build your project(s)?
    • Is it via tsc, webpack/rollup/etc, or a mish-mash of both?
  • How many TS files are in your codebase?
  • Approx how many lines of code are in your codebase?
  • How many NPM dependencies do you have?

Also, please provide the following (you can leave the last two out if you're open source):

  • A complete lint run output with the DEBUG=* env variable set? DEBUG=* yarn lint
    • Feel free to censor the output filenames if you'd prefer, but try not to delete any lines.
  • The tsconfig(s) that you pass via the parserOptions.project option
  • Your .eslintrc

The more information you provide, the easier it is for us to look into it and figure out root causes.


What code were you trying to parse?

A relatively huge code base with a lot of TypeScript (using project references), JavaScript and React. Unfortunately I can't give you a sample project because in my small demo projects it works. It only happens in that larger project that isn't open source. I also tried to disable @typescript-eslint/recommended-requiring-type-checking but that didn't work.

What did you expect to happen?

Not to run out of memory

What actually happened?

It runs out of memory.

<--- Last few GCs --->
 start of marking 1708 ms) (average mu = 0.196, current mu = 0.093) all[49915:0x102883000]   112800 ms: Mark-sweep 2040.1 (2058.3) -> 2038.9 (2056.5) MB, 1388.1 / 0.0 ms  (+ 110.5 ms in 27 steps since start of marking, biggest step 7.2 ms, walltime since start of marking 1508 ms) (average mu = 0.104, current mu = 0.007) allo[49915:0x102883000]   114242 ms: Mark-sweep 2039.9 (2056.5) -> 2039.0 (2056.0) MB, 1436.4 / 0.0 ms  (average mu = 0.056, current mu = 0.004) allocation failure GC in old space requested


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x10092fbd9]
Security context: 0x295dc96c08a1 <JSObject>
    1: getDeclarationName(aka getDeclarationName) [0x295d351b21f9] [/Users/me/project/node_modules/typescript/lib/typescript.js:~29254] [pc=0x1c6ba57836fc](this=0x295db0c004a9 <undefined>,0x295dbd513309 <NodeObject map = 0x295d58d4a4d1>)
    2: declareSymbol(aka declareSymbol) [0x295d351b2279] [/Users/me/project...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Writing Node.js report to file: report.20191111.151654.49915.0.001.json
Node.js report completed
 1: 0x10007e743 node::Abort() [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 2: 0x10007e8c7 node::OnFatalError(char const*, char const*) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 3: 0x100176267 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 4: 0x100176203 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 5: 0x1002fa2b5 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 6: 0x1002fb984 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 7: 0x1002f8857 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 8: 0x1002f683d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
 9: 0x100301f54 v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
10: 0x100301fcf v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
11: 0x1002cebc7 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
12: 0x1005f7725 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
13: 0x10092fbd9 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/Users/me/.nvm/versions/node/v12.13.0/bin/node]
14: 0x1c6ba57836fc 	

Versions

package version
@typescript-eslint/typescript-estree 2.6.1
TypeScript 3.7.2
node v12.13.0
npm 6.12.0

Config

{
  "parser": "@typescript-eslint/parser",
  "parserOptions": {
    "sourceType": "module",
    "ecmaVersion": 2015,
    "ecmaFeatures": {
      "jsx": true
    },
    "project": "./packages/**/tsconfig.json"
  },
  "plugins": ["@typescript-eslint", "react", "react-hooks"],
  "extends": [
    "eslint:recommended",
    "plugin:@typescript-eslint/eslint-recommended",
    "plugin:@typescript-eslint/recommended",
    "plugin:@typescript-eslint/recommended-requiring-type-checking",
    "plugin:react/recommended",
    "plugin:prettier/recommended",
    "prettier/@typescript-eslint"
  ],
  "rules": {
    "@typescript-eslint/explicit-function-return-type": "off",
    "@typescript-eslint/no-explicit-any": "off",
    "@typescript-eslint/camelcase": "off",
    "@typescript-eslint/no-use-before-define": "off",
    "@typescript-eslint/unbound-method": "off",
    "@typescript-eslint/no-var-requires": "off",
    "@typescript-eslint/prefer-regexp-exec": "off",
    "require-atomic-updates": "off",
    "react/prop-types": "off",
    "react/display-name": "off",
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn",
    "prefer-promise-reject-errors": "off",
    "react/no-unescaped-entities": "off",
    "react/no-find-dom-node": "off"
  },
  "settings": {
    "react": {
      "version": "detect"
    }
  },
  "env": {
    "es6": true,
    "node": true,
    "browser": true,
    "jest": true
  }
}
@screendriver screendriver added package: typescript-estree Issues related to @typescript-eslint/typescript-estree triage Waiting for maintainers to take a look labels Nov 11, 2019
@bradzacher
Copy link
Member

without a repro, there's not a whole lot that we can do.
It's pretty hard to fix a bug like this without it.

Could you please classify "relatively huge"? Using subjective wording like that is pretty useless in helping to define the problem.
How many files? How many lines? How many projects? Breakdown per project?

It could purely be due to the size of your project, or it could be some weird case within your codebase.

We have a large number of users that are on "relatively huge" codebases, and they don't have memory issues, so either your codebase is the biggest, or there's something else.


Could you please try:

  • removing the rules that require typecheck and remove parserOptions.project?
  • linting one project at a time? (i.e. change the parserOptions.project setting to a single project, and then lint only that folder)?

@bradzacher bradzacher added awaiting response Issues waiting for a reply from the OP or another party and removed triage Waiting for maintainers to take a look labels Nov 11, 2019
@screendriver
Copy link
Author

without a repro, there's not a whole lot that we can do.

Yes I know. Sorry for that 😞 So I try to give you as much as input as possible:

  • 13 /packages (TypeScript project references)
  • Number of files: 438
  • Lines of code: 61380
  • linting one project at a time does work (e.g. eslint --ext js,ts,tsx packages/foo and after that eslint --ext js,ts,tsx packages/bar plus additionally setting parserOptions.project to parserOptions.project: ["./packages/foo/**/tsconfig.json", "./packages/bar/**/tsconfig.json"]). It works with all packages separately. Is there a way to tell ESLint to do such a thing automatically?
  • I tried to increase it with every run but at some point it crashes. And it's extremely slow. After five or six packages I have to wait minutes until it is finished. After the tenth package it will crash reproducible. If I run this tenth package standalone it works.
    • eslint --ext js,ts,tsx packages/foo
    • eslint --ext js,ts,tsx packages/foo packages/bar
    • eslint --ext js,ts,tsx packages/foo packages/bar packages/baz
  • If I remove parserOptions.project and remove plugin:@typescript-eslint/recommended-requiring-type-checking (because the plugin needs parserOptions.project) it works without any error. And, of course, it is faster.
  • If I use parserOptions.project but delete plugin:@typescript-eslint/recommended-requiring-type-checking it will crash again after the tenth project

So it must be somehow related to parserOptions.project?

@bradzacher
Copy link
Member

Turning on / off the rules will do nothing for your memory usage - the rules are loaded and executed on demand, and store little-to-no state. Turning on / off rules does not effect any state anywhere else either.

Adding or removing parserOptions.project, however, tells our parser whether or not to coordinate typescript to gather type information for each project.
When you run without it, we simply parse each file in "isloated modules" mode (i.e. typescript parses the file as if nothing else exists, and purposely doesn't error on imports etc).
When you run with it, for each tsconfig you provide, we will construct a ts program for it. This essentially causes typescript to do a complete parse and typecheck cycle on every single file matched by that tsconfig.

Your codebase is actually pretty small by the standards of some of our users.
I think the problem is the number of separate projects you have.

When you do a lint run, we construct 13 separate programs. From my understanding, this means that there is no memory reuse between them - i.e. if package foo and bar both use types for react, then both will have a copy of the types in memory.
(cc @uniqueiniquity - is my understanding correct here?)

If I'm correct, then this is especially bad you have a lot of interdependent relationships within your project itself, then this would cause typescript to store multiple copies of each workspace project. I.e. if foo depends on bar, and baz depends on bar, then you'll have 3 copies of bar - one for foo, one for baz, and one standalone used for linting itself.

Again, if I'm correct with everything above, I would say that this is duplication is the source of the memory usage.


I think you should be able to fix this by creating a tsconfig.eslint.json in the root of your repo, which includes all files in your repo. Essentially, take all of your tsconfigs and merge them together.

This will mean that we create just a single program which encompasses the entire workspace, which means there should be a lot less (if any) duplication.

LMK if that works.

@screendriver
Copy link
Author

Thank you for the detailed answer.

Your codebase is actually pretty small by the standards of some of our users.

That's good to hear 😅 I create a tsconfig.eslint.json that looks like this

{
  "extends": "./tsconfig.base.json",
  "include": ["packages/**/*"]
}

And set parserOptions.project to ./tsconfig.eslint.json and now it seems to work. Great 👍

But does that mean you have to optimise something for TypeScript project references? It smells a little bit like a workaround. Because I can imagine that we will have repositories with 100 packages or more in it in the future with different compiler settings. With one single tsconfig.eslint.json every project that gets linted has now the same configuration.

@bradzacher
Copy link
Member

now it seems to work

Awesome! So this definitely confirms my suspicion that it is the number of projects, not the size of the codebase.
Cc @uniqueiniquity, something we need to look into.

It smells a little bit like a workaround.

It 100% is :)

But does that mean you have to optimise something for TypeScript project references?

I don't believe it's project references that cause it. If you use Lerna to symlink your workspace together, you'll have the same problems, because typescript will parse the decls (or the raw typescript files, if there's no decls) with or without project refs.

We definitely have to spend some time doing more optimisation, but memory usage hasn't really been on the radar, as nobody has had any actual memory problems (the issue from 2.4.0 was because I put in some dodgy code for file watching, which was removed soon after). Most of the optimisation has gone into runtime speed.

Im not sure exactly how the ts language server gets around this problem.
I think that they have a centralised, deduplicated cache of files shared across all projects.

We use a different compiler API, so we can't implement that currently. It'd take a pretty significant rewrite for us to go that route, because the API we use is restricted, but has other benefits (trade-offs...).

I believe that in order to go the same cache route we'd have to essentially ditch the API we use, reimplement its functionality ourselves, and then also implement the caching.

with different compiler settings

This is actually a non issue. We do not report/fail on semantic errors, so it doesn't matter if your compilation options aren't quite right (i.e. One project has some strict setting when another doesn't). Semantic errors also don't change the type information, so it doesn't matter if there are any.

Additionally, as there is no build emit, options like rootDir etc won't change the parse output.

What matters is the libs are correct so all the global types can be resolved, and all projects need to either use or not use strictNullChecks.

@screendriver
Copy link
Author

If you use Lerna to symlink your workspace

Yeah, I'm using Yarn workspaces for that.

So ok, we will close this issue right now and you put that stuff into your own backlog and investigate that issue in the future, right? It seem to me that this will be a bigger construction site 😉

@bradzacher bradzacher added bug Something isn't working and removed awaiting response Issues waiting for a reply from the OP or another party labels Nov 14, 2019
@bradzacher bradzacher changed the title [2.6.1] Running out of memory OOM when many (>10) project configs passed to the parser Nov 14, 2019
@bradzacher
Copy link
Member

I'll leave this open, so we don't forget about it, but we can consider your problem worked around.

@screendriver
Copy link
Author

👍 🆗

@ulrichb
Copy link
Contributor

ulrichb commented Dec 9, 2019

I have a mid-size (~ 30 kLOC) TS-only project and also get OOMs (2 GB), but in my case with only one tsconfig:

        parser: "@typescript-eslint/parser",
        parserOptions: {
            ecmaVersion: 2019,
            sourceType: "module",
            ecmaFeatures: {
                jsx: true,
            },
            project: "tsconfig.base.json",
        },

I'm pretty sure that @typescript-eslint/parser is the problem, because I disabled all plugins (even @typescript-eslint) and ESLint still eats 2 GB.

Unfortunately my code is closed source. Any hints to track down the memory leak?

@bradzacher
Copy link
Member

run DEBUG=typescript-eslint yarn lint and dump the output.

It's not just the number of lines that matter - it's more so the number of files, and the number of dependencies.

How many files do you have?
Is it a monorepo? If yes - are you using yarn workspaces / lerna?
How big is your npm dependency tree?
Could you dump the contents of tsconfig.base.json?

@ulrichb
Copy link
Contributor

ulrichb commented Dec 9, 2019

run DEBUG=typescript-eslint yarn lint and dump the output.

2019-12-09T13:08:02.641Z typescript-eslint:typescript-estree:createProjectProgram Creating project program for: C:\_work\XXX\src\BackEnd\Api\ApiModule.ts
2019-12-09T13:08:02.642Z typescript-eslint:typescript-estree:createWatchProgram File did not belong to any existing programs, moving to create/update. c:\_work\XXX\src\backend\api\apimodule.ts
2019-12-09T13:08:02.643Z typescript-eslint:typescript-estree:createWatchProgram Creating watch program for c:\_work\XXX\src\tsconfig.base.json.
2019-12-09T13:08:31.932Z typescript-eslint:typescript-estree:createProjectProgram Creating project program for: C:\_work\XXX\src\BackEnd\Api\Controllers\YYY.ts
2019-12-09T13:08:31.952Z typescript-eslint:typescript-estree:createWatchProgram Found existing program for file. c:\_work\XXX\src\backend\api\controllers\YYY.ts
[ the above two lines for every file ]

How many files do you have?

~ 180

Is it a monorepo? If yes - are you using yarn workspaces / lerna?

no

How big is your npm dependency tree?

big

Could you dump the contents of tsconfig.base.json?

{
  "$schema": "http://json.schemastore.org/tsconfig",
  "compilerOptions": {
    "skipLibCheck": true,
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "forceConsistentCasingInFileNames": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true
  }
}

@bradzacher
Copy link
Member

If the debug log looks like that, and you have only got 180 files (that's a tiny repo), then I would say that yes - either there's a memory leak, or your npm dependencies have some super large/complex types (or a combination of both).

It's hard to say though.
Without being able to directly interact with the codebase, the best I can do is try and work through this "over the wire".

  • Could you run it again, this time with DEBUG=* yarn lint.
    • What package does the last debug message before the OOM belong to? (i.e. is it eslint:... or is it typescript-eslint:...).
  • Are you able to share the npm dependencies that are imported within your project?
  • Based on the debug logs (DEBUG=typescript-eslint:* will be the best for this), How many files does it get through before OOMing?
    • Does it look like it's all of them, or is it definitely a subset?

@ulrichb
Copy link
Contributor

ulrichb commented Dec 9, 2019

The last `DEBUG=*` loggings before crashing
2019-12-09T14:17:43.461Z eslint:code-path s2_2!) BlockStatement:exit
2019-12-09T14:17:43.461Z eslint:code-path s2_2!) FunctionDeclaration:exit
2019-12-09T14:17:43.462Z eslint:code-path onCodePathSegmentEnd s2_2
2019-12-09T14:17:43.462Z eslint:code-path onCodePathEnd s2
2019-12-09T14:17:43.462Z eslint:code-path DOT 
digraph {
node[shape=box,style="rounded,filled",fillcolor=white];
initial[label="",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];
final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];
s2_1[label="FunctionDeclaration\nIdentifier (createExecuteHumanInteractionCommand)\nObjectPattern\nProperty\nIdentifier (actionDescriptorId)\nIdentifier (actionDescriptorId)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (HumanInteraction)\nIdentifier (action)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (HumanInteractionAction)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (ExecuteHumanInteractionCommand)\nBlockStatement\nReturnStatement\nObjectExpression\nProperty\nIdentifier (type)\nLiteral (ExecuteHumanInteractionCommand)\nProperty\nIdentifier (createdAt)\nNewExpression\nIdentifier (Date)\nProperty\nIdentifier (actionDescriptorId)\nIdentifier (actionDescriptorId)\nProperty\nIdentifier (action)\nIdentifier (action)\nIdentifier:exit (createExecuteHumanInteractionCommand)\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (actionDescriptorId)\nProperty:exit\nIdentifier:exit (HumanInteraction)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nObjectPattern:exit\nIdentifier:exit (HumanInteractionAction)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (action)\nIdentifier:exit (ExecuteHumanInteractionCommand)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (type)\nLiteral:exit (ExecuteHumanInteractionCommand)\nProperty:exit\nIdentifier:exit (createdAt)\nIdentifier:exit (Date)\nNewExpression:exit\nProperty:exit\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (actionDescriptorId)\nProperty:exit\nIdentifier:exit (action)\nIdentifier:exit (action)\nProperty:exit\nObjectExpression:exit\nReturnStatement:exit"];
s2_2[style="rounded,dashed,filled",fillcolor="#FF9800",label="<>\nBlockStatement:exit\nFunctionDeclaration:exit"];
initial->s2_1->s2_2;
s2_1->final;
}
2019-12-09T14:17:43.462Z eslint:code-path s1_1) FunctionDeclaration:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSInterfaceDeclaration
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSInterfaceHeritage
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSInterfaceHeritage:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSInterfaceBody
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSLiteralType
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Literal
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Literal:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSLiteralType:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.462Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSInterfaceBody:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) TSInterfaceDeclaration:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.462Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.462Z eslint:code-path s1_1) FunctionDeclaration
2019-12-09T14:17:43.462Z eslint:code-path onCodePathStart s3
2019-12-09T14:17:43.462Z eslint:code-path onCodePathSegmentStart s3_1
2019-12-09T14:17:43.462Z eslint:code-path s3_1) FunctionDeclaration
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) ObjectPattern
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Property
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Property:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeAnnotation
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeReference
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeReference:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) ObjectPattern:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeAnnotation
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeReference
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeReference:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeAnnotation
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeReference
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.463Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeReference:exit
2019-12-09T14:17:43.463Z eslint:code-path s3_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.465Z eslint:code-path s3_1) BlockStatement
2019-12-09T14:17:43.465Z eslint:code-path s3_1) ReturnStatement
2019-12-09T14:17:43.465Z eslint:code-path s3_1) ObjectExpression
2019-12-09T14:17:43.465Z eslint:code-path s3_1) Property
2019-12-09T14:17:43.465Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.465Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.465Z eslint:code-path s3_1) Literal
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Literal:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) NewExpression
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) NewExpression:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) Property:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) ObjectExpression:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_1) ReturnStatement:exit
2019-12-09T14:17:43.466Z eslint:code-path onCodePathSegmentEnd s3_1
2019-12-09T14:17:43.466Z eslint:code-path onCodePathSegmentStart s3_2
2019-12-09T14:17:43.466Z eslint:code-path s3_2!) BlockStatement:exit
2019-12-09T14:17:43.466Z eslint:code-path s3_2!) FunctionDeclaration:exit
2019-12-09T14:17:43.466Z eslint:code-path onCodePathSegmentEnd s3_2
2019-12-09T14:17:43.466Z eslint:code-path onCodePathEnd s3
2019-12-09T14:17:43.466Z eslint:code-path DOT 
digraph {
node[shape=box,style="rounded,filled",fillcolor=white];
initial[label="",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];
final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];
s3_1[label="FunctionDeclaration\nIdentifier (createExecuteHumanInteractionPreviewCommand)\nObjectPattern\nProperty\nIdentifier (actionDescriptorId)\nIdentifier (actionDescriptorId)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (HumanInteraction)\nIdentifier (action)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (HumanInteractionAction)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (ExecuteHumanInteractionPreviewCommand)\nBlockStatement\nReturnStatement\nObjectExpression\nProperty\nIdentifier (type)\nLiteral (ExecuteHumanInteractionPreviewCommand)\nProperty\nIdentifier (createdAt)\nNewExpression\nIdentifier (Date)\nProperty\nIdentifier (actionDescriptorId)\nIdentifier (actionDescriptorId)\nProperty\nIdentifier (action)\nIdentifier (action)\nIdentifier:exit (createExecuteHumanInteractionPreviewCommand)\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (actionDescriptorId)\nProperty:exit\nIdentifier:exit (HumanInteraction)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nObjectPattern:exit\nIdentifier:exit (HumanInteractionAction)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (action)\nIdentifier:exit (ExecuteHumanInteractionPreviewCommand)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (type)\nLiteral:exit (ExecuteHumanInteractionPreviewCommand)\nProperty:exit\nIdentifier:exit (createdAt)\nIdentifier:exit (Date)\nNewExpression:exit\nProperty:exit\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (actionDescriptorId)\nProperty:exit\nIdentifier:exit (action)\nIdentifier:exit (action)\nProperty:exit\nObjectExpression:exit\nReturnStatement:exit"];
s3_2[style="rounded,dashed,filled",fillcolor="#FF9800",label="<>\nBlockStatement:exit\nFunctionDeclaration:exit"];
initial->s3_1->s3_2;
s3_1->final;
}
2019-12-09T14:17:43.466Z eslint:code-path s1_1) FunctionDeclaration:exit
2019-12-09T14:17:43.466Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.466Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.466Z eslint:code-path s1_1) TSInterfaceDeclaration
2019-12-09T14:17:43.466Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s1_1) TSInterfaceHeritage
2019-12-09T14:17:43.466Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.466Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.466Z eslint:code-path s1_1) TSInterfaceHeritage:exit
2019-12-09T14:17:43.466Z eslint:code-path s1_1) TSInterfaceBody
2019-12-09T14:17:43.466Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.466Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSLiteralType
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Literal
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Literal:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSLiteralType:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.467Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSInterfaceBody:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) TSInterfaceDeclaration:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.467Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.467Z eslint:code-path s1_1) FunctionDeclaration
2019-12-09T14:17:43.467Z eslint:code-path onCodePathStart s4
2019-12-09T14:17:43.467Z eslint:code-path onCodePathSegmentStart s4_1
2019-12-09T14:17:43.467Z eslint:code-path s4_1) FunctionDeclaration
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeAnnotation
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeReference
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeReference:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeAnnotation
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeReference
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeReference:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeAnnotation
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeReference
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeReference:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.468Z eslint:code-path s4_1) BlockStatement
2019-12-09T14:17:43.468Z eslint:code-path s4_1) ReturnStatement
2019-12-09T14:17:43.468Z eslint:code-path s4_1) ObjectExpression
2019-12-09T14:17:43.468Z eslint:code-path s4_1) Property
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Literal
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Literal:exit
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Property:exit
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Property
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.469Z eslint:code-path s4_1) NewExpression
2019-12-09T14:17:43.469Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) NewExpression:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Property:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Property
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Property:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Property
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Identifier:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) Property:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) ObjectExpression:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_1) ReturnStatement:exit
2019-12-09T14:17:43.475Z eslint:code-path onCodePathSegmentEnd s4_1
2019-12-09T14:17:43.475Z eslint:code-path onCodePathSegmentStart s4_2
2019-12-09T14:17:43.475Z eslint:code-path s4_2!) BlockStatement:exit
2019-12-09T14:17:43.475Z eslint:code-path s4_2!) FunctionDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path onCodePathSegmentEnd s4_2
2019-12-09T14:17:43.476Z eslint:code-path onCodePathEnd s4
2019-12-09T14:17:43.476Z eslint:code-path DOT 
digraph {
node[shape=box,style="rounded,filled",fillcolor=white];
initial[label="",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];
final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];
s4_1[label="FunctionDeclaration\nIdentifier (createExecuteActionDescriptorCommand)\nIdentifier (actionDescriptorId)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (ActionDescriptorId)\nIdentifier (action)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (Action)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (ExecuteActionDescriptorCommand)\nBlockStatement\nReturnStatement\nObjectExpression\nProperty\nIdentifier (type)\nLiteral (ExecuteActionDescriptorCommand)\nProperty\nIdentifier (createdAt)\nNewExpression\nIdentifier (Date)\nProperty\nIdentifier (actionDescriptorId)\nIdentifier (actionDescriptorId)\nProperty\nIdentifier (action)\nIdentifier (action)\nIdentifier:exit (createExecuteActionDescriptorCommand)\nIdentifier:exit (ActionDescriptorId)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (Action)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (action)\nIdentifier:exit (ExecuteActionDescriptorCommand)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (type)\nLiteral:exit (ExecuteActionDescriptorCommand)\nProperty:exit\nIdentifier:exit (createdAt)\nIdentifier:exit (Date)\nNewExpression:exit\nProperty:exit\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (actionDescriptorId)\nProperty:exit\nIdentifier:exit (action)\nIdentifier:exit (action)\nProperty:exit\nObjectExpression:exit\nReturnStatement:exit"];
s4_2[style="rounded,dashed,filled",fillcolor="#FF9800",label="<>\nBlockStatement:exit\nFunctionDeclaration:exit"];
initial->s4_1->s4_2;
s4_1->final;
}
2019-12-09T14:17:43.476Z eslint:code-path s1_1) FunctionDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeAliasDeclaration
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeOperator
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSArrayType
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSArrayType:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeOperator:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeAliasDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeAliasDeclaration
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSUnionType
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.476Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSUnionType:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) TSTypeAliasDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.476Z eslint:code-path s1_1) ExpressionStatement
2019-12-09T14:17:43.478Z eslint:code-path s1_1) CallExpression
2019-12-09T14:17:43.478Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.478Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSTypeParameterInstantiation
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSTypeLiteral
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSStringKeyword
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSStringKeyword:exit
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.478Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.478Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.478Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.478Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeLiteral:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeParameterInstantiation:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) CallExpression:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) ExpressionStatement:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAliasDeclaration
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSUnionType
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSUnionType:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAliasDeclaration:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSInterfaceDeclaration
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSInterfaceBody
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSLiteralType
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Literal
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Literal:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSLiteralType:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.479Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.479Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.480Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) TSInterfaceBody:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) TSInterfaceDeclaration:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.480Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.480Z eslint:code-path s1_1) FunctionDeclaration
2019-12-09T14:17:43.480Z eslint:code-path onCodePathStart s5
2019-12-09T14:17:43.480Z eslint:code-path onCodePathSegmentStart s5_1
2019-12-09T14:17:43.480Z eslint:code-path s5_1) FunctionDeclaration
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeAnnotation
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeReference
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeReference:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeAnnotation
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeReference
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeReference:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeAnnotation
2019-12-09T14:17:43.480Z eslint:code-path s5_1) TSTypeReference
2019-12-09T14:17:43.480Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) TSTypeReference:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) BlockStatement
2019-12-09T14:17:43.481Z eslint:code-path s5_1) ReturnStatement
2019-12-09T14:17:43.481Z eslint:code-path s5_1) ObjectExpression
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Property
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Literal
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Literal:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Property:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Property
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Property:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Property
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Identifier:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) Property:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) ObjectExpression:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_1) ReturnStatement:exit
2019-12-09T14:17:43.481Z eslint:code-path onCodePathSegmentEnd s5_1
2019-12-09T14:17:43.481Z eslint:code-path onCodePathSegmentStart s5_2
2019-12-09T14:17:43.481Z eslint:code-path s5_2!) BlockStatement:exit
2019-12-09T14:17:43.481Z eslint:code-path s5_2!) FunctionDeclaration:exit
2019-12-09T14:17:43.481Z eslint:code-path onCodePathSegmentEnd s5_2
2019-12-09T14:17:43.481Z eslint:code-path onCodePathEnd s5
2019-12-09T14:17:43.481Z eslint:code-path DOT 
digraph {
node[shape=box,style="rounded,filled",fillcolor=white];
initial[label="",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];
final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];
s5_1[label="FunctionDeclaration\nIdentifier (createConfigurationVersionChangedEvent)\nIdentifier (createdBy)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (UserId)\nIdentifier (configurationVersion)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (TaskConfigurationVersion)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (ConfigurationVersionChangedEvent)\nBlockStatement\nReturnStatement\nObjectExpression\nProperty\nIdentifier (type)\nLiteral (ConfigurationVersionChangedEvent)\nProperty\nIdentifier (createdBy)\nIdentifier (createdBy)\nProperty\nIdentifier (configurationVersion)\nIdentifier (configurationVersion)\nIdentifier:exit (createConfigurationVersionChangedEvent)\nIdentifier:exit (UserId)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (createdBy)\nIdentifier:exit (TaskConfigurationVersion)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (configurationVersion)\nIdentifier:exit (ConfigurationVersionChangedEvent)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (type)\nLiteral:exit (ConfigurationVersionChangedEvent)\nProperty:exit\nIdentifier:exit (createdBy)\nIdentifier:exit (createdBy)\nProperty:exit\nIdentifier:exit (configurationVersion)\nIdentifier:exit (configurationVersion)\nProperty:exit\nObjectExpression:exit\nReturnStatement:exit"];
s5_2[style="rounded,dashed,filled",fillcolor="#FF9800",label="<>\nBlockStatement:exit\nFunctionDeclaration:exit"];
initial->s5_1->s5_2;
s5_1->final;
}
2019-12-09T14:17:43.481Z eslint:code-path s1_1) FunctionDeclaration:exit
2019-12-09T14:17:43.481Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.481Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.481Z eslint:code-path s1_1) TSInterfaceDeclaration
2019-12-09T14:17:43.481Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSInterfaceHeritage
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSInterfaceHeritage:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSInterfaceBody
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSLiteralType
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Literal
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Literal:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSLiteralType:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeReference
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeReference:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSUndefinedKeyword
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSUndefinedKeyword:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s1_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSPropertySignature:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSInterfaceBody:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) TSInterfaceDeclaration:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) ExportNamedDeclaration:exit
2019-12-09T14:17:43.482Z eslint:code-path s1_1) FunctionDeclaration
2019-12-09T14:17:43.482Z eslint:code-path onCodePathStart s6
2019-12-09T14:17:43.482Z eslint:code-path onCodePathSegmentStart s6_1
2019-12-09T14:17:43.482Z eslint:code-path s6_1) FunctionDeclaration
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s6_1) TSTypeAnnotation
2019-12-09T14:17:43.482Z eslint:code-path s6_1) TSTypeReference
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s6_1) TSTypeReference:exit
2019-12-09T14:17:43.482Z eslint:code-path s6_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.482Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.482Z eslint:code-path s6_1) TSTypeAnnotation
2019-12-09T14:17:43.482Z eslint:code-path s6_1) TSTypeReference
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) TSTypeReference:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) TSTypeAnnotation
2019-12-09T14:17:43.483Z eslint:code-path s6_1) TSTypeReference
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) TSTypeReference:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) BlockStatement
2019-12-09T14:17:43.483Z eslint:code-path s6_1) ReturnStatement
2019-12-09T14:17:43.483Z eslint:code-path s6_1) ObjectExpression
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Literal
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Literal:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property:exit
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Property
2019-12-09T14:17:43.483Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s6_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s6_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s6_1) Property:exit
2019-12-09T14:17:43.484Z eslint:code-path s6_1) ObjectExpression:exit
2019-12-09T14:17:43.484Z eslint:code-path s6_1) ReturnStatement:exit
2019-12-09T14:17:43.484Z eslint:code-path onCodePathSegmentEnd s6_1
2019-12-09T14:17:43.484Z eslint:code-path onCodePathSegmentStart s6_2
2019-12-09T14:17:43.484Z eslint:code-path s6_2!) BlockStatement:exit
2019-12-09T14:17:43.484Z eslint:code-path s6_2!) FunctionDeclaration:exit
2019-12-09T14:17:43.484Z eslint:code-path onCodePathSegmentEnd s6_2
2019-12-09T14:17:43.484Z eslint:code-path onCodePathEnd s6
2019-12-09T14:17:43.484Z eslint:code-path DOT 
digraph {
node[shape=box,style="rounded,filled",fillcolor=white];
initial[label="",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];
final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];
s6_1[label="FunctionDeclaration\nIdentifier (createMergeInputFactsEvent)\nIdentifier (createdBy)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (UserId)\nIdentifier (action)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (MergeFactsAction)\nTSTypeAnnotation\nTSTypeReference\nIdentifier (MergeInputFactsEvent)\nBlockStatement\nReturnStatement\nObjectExpression\nProperty\nIdentifier (type)\nLiteral (MergeInputFactsEvent)\nProperty\nIdentifier (createdBy)\nIdentifier (createdBy)\nProperty\nIdentifier (action)\nIdentifier (action)\nProperty\nIdentifier (actionDescriptorId)\nIdentifier (undefined)\nIdentifier:exit (createMergeInputFactsEvent)\nIdentifier:exit (UserId)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (createdBy)\nIdentifier:exit (MergeFactsAction)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (action)\nIdentifier:exit (MergeInputFactsEvent)\nTSTypeReference:exit\nTSTypeAnnotation:exit\nIdentifier:exit (type)\nLiteral:exit (MergeInputFactsEvent)\nProperty:exit\nIdentifier:exit (createdBy)\nIdentifier:exit (createdBy)\nProperty:exit\nIdentifier:exit (action)\nIdentifier:exit (action)\nProperty:exit\nIdentifier:exit (actionDescriptorId)\nIdentifier:exit (undefined)\nProperty:exit\nObjectExpression:exit\nReturnStatement:exit"];
s6_2[style="rounded,dashed,filled",fillcolor="#FF9800",label="<>\nBlockStatement:exit\nFunctionDeclaration:exit"];
initial->s6_1->s6_2;
s6_1->final;
}
2019-12-09T14:17:43.484Z eslint:code-path s1_1) FunctionDeclaration:exit
2019-12-09T14:17:43.484Z eslint:code-path s1_1) ExportNamedDeclaration
2019-12-09T14:17:43.484Z eslint:code-path s1_1) FunctionDeclaration
2019-12-09T14:17:43.484Z eslint:code-path onCodePathStart s7
2019-12-09T14:17:43.484Z eslint:code-path onCodePathSegmentStart s7_1
2019-12-09T14:17:43.484Z eslint:code-path s7_1) FunctionDeclaration
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeAnnotation
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeReference
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeReference:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeAnnotation
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeReference
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeReference:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeAnnotation
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeReference
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier
2019-12-09T14:17:43.484Z eslint:code-path s7_1) Identifier:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeReference:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) TSTypeAnnotation:exit
2019-12-09T14:17:43.484Z eslint:code-path s7_1) BlockStatement
2019-12-09T14:17:43.484Z eslint:code-path s7_1) ReturnStatement
2019-12-09T14:17:43.485Z eslint:code-path s7_1) CallExpression
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Are you able to share the npm dependencies that are imported within your project?

Dependencies
  "dependencies": {
    "@nestjs/common": "^6.10.8",
    "@nestjs/core": "^6.10.8",
    "@nestjs/platform-express": "^6.10.8",
    "@nestjs/swagger": "^4.0.9",
    "bson-objectid": "^1.3.0",
    "cli-color": "^2.0.0",
    "compression": "^1.7.4",
    "csp-header": "^2.0.2",
    "del": "^5.1.0",
    "dotenv-load": "^2.0.0",
    "error-stack-parser": "^2.0.4",
    "express": "^4.17.1",
    "express-http-proxy": "^1.6.0",
    "fast-json-patch": "^2.2.1",
    "fs-extra": "^8.1.0",
    "intl-messageformat": "^7.7.2",
    "intl-messageformat-parser": "^3.5.1",
    "jose": "^1.16.2",
    "jsondiffpatch": "^0.3.11",
    "lru-cache": "^5.1.1",
    "mongoose": "^5.7.14",
    "node-fetch": "^2.6.0",
    "object-path-immutable": "^4.0.2",
    "openid-client": "^3.9.0",
    "patch-package": "^6.2.0",
    "proper-lockfile": "^4.1.1",
    "reflect-metadata": "^0.1.13",
    "rxjs": "^6.5.3",
    "source-map-support": "^0.5.16",
    "swagger-ui-express": "^4.1.2",
    "teamcity-service-messages": "^0.1.10",
    "typescript": "^3.7.3",
    "uuid": "^3.3.3",
    "yargs": "^15.0.2"
  },
  "devDependencies": {
    "@st/identityserver-clients-react": "^6.2.200",
    "@st/image-viewer": "^6.1.433",
    "@types/classnames": "^2.2.9",
    "@types/cli-color": "^0.3.30",
    "@types/compression": "^1.0.1",
    "@types/eslint": "^6.1.3",
    "@types/express": "^4.17.2",
    "@types/express-http-proxy": "^1.5.12",
    "@types/fs-extra": "^8.0.1",
    "@types/jest": "^24.0.23",
    "@types/lru-cache": "^5.1.0",
    "@types/mongodb": "^3.3.12",
    "@types/mongoose": "^5.5.32",
    "@types/node": "^12.12.15",
    "@types/node-fetch": "^2.5.4",
    "@types/proper-lockfile": "^4.1.1",
    "@types/rc-tooltip": "^3.7.1",
    "@types/react": "^16.9.16",
    "@types/react-autosuggest": "^9.3.13",
    "@types/react-document-meta": "^3.0.0",
    "@types/react-dom": "^16.9.4",
    "@types/react-modal": "^3.10.0",
    "@types/react-redux": "^7.1.5",
    "@types/react-router": "^5.1.3",
    "@types/react-router-dom": "^5.1.3",
    "@types/react-tabs": "^2.3.1",
    "@types/source-map-support": "^0.5.0",
    "@types/styled-components": "^4.4.0",
    "@types/uuid": "^3.4.6",
    "@typescript-eslint/eslint-plugin": "^2.10.0",
    "@typescript-eslint/experimental-utils": "^2.10.0",
    "@typescript-eslint/parser": "^2.10.0",
    "babel-plugin-styled-components": "^1.10.6",
    "classnames": "^2.2.6",
    "core-js": "^3.4.8",
    "dependency-cruiser": "^5.5.0",
    "eslint": "^6.7.2",
    "eslint-plugin-filenames": "^1.3.2",
    "eslint-plugin-functional": "^1.0.0",
    "eslint-plugin-import": "^2.19.1",
    "eslint-plugin-jest": "^23.1.1",
    "eslint-plugin-react": "^7.17.0",
    "eslint-plugin-react-hooks": "^2.3.0",
    "eslint-teamcity": "^2.2.0",
    "esm": "^3.2.25",
    "globby": "^10.0.1",
    "gulp": "^4.0.2",
    "gulp-string-replace": "^1.1.2",
    "gulp-teamcity-reporter": "^1.1.1",
    "jest": "^24.9.0",
    "jest-teamcity-reporter": "^0.9.0",
    "moment": "^2.24.0",
    "monaco-editor": "^0.18.1",
    "monaco-editor-webpack-plugin": "^1.7.0",
    "mongodb-memory-server-core": "^6.0.2",
    "nodemon": "^2.0.1",
    "nswag": "^13.1.6",
    "rc-tooltip": "^3.7.3",
    "react": "^16.12.0",
    "react-app-polyfill": "^1.0.5",
    "react-autosuggest": "^9.4.3",
    "react-document-meta": "^3.0.0-beta.2",
    "react-dom": "^16.12.0",
    "react-intl": "^3.9.1",
    "react-modal": "^3.11.1",
    "react-redux": "^7.1.3",
    "react-router": "^5.1.2",
    "react-router-dom": "^5.1.2",
    "react-scripts": "^3.3.0",
    "react-tabs": "^3.0.0",
    "redux": "^4.0.4",
    "redux-saga": "^1.1.3",
    "sloc": "^0.2.1",
    "styled-components": "^4.4.1",
    "ts-jest": "^24.2.0",
    "typeface-roboto": "0.0.75",
    "webpack-bundle-analyzer": "^3.6.0"
  },

Based on the debug logs (DEBUG=typescript-eslint:* will be the best for this), How many files does it get through before OOMing?

148 / 180

@bradzacher
Copy link
Member

Hmm, that output (and dependency set) looks fine.
It looks like it just runs out of memory whilst traversing the AST. Which does imply a memory leak somewhere.

Could you please try turning off every single eslint rule, and doing the same DEBUG=* run?
If that still OOMs in the same way, then there is definitely something interesting going on.

@ulrichb
Copy link
Contributor

ulrichb commented Dec 10, 2019

Okay, I dropped now everything. This is now the full ESLint config:

module.exports = {

    parserOptions: { ecmaVersion: 2019, sourceType: "module" },

    overrides: [{
        files: ["*.ts", "*.tsx"],

        parser: "@typescript-eslint/parser",
        parserOptions: {
            ecmaVersion: 2019,
            sourceType: "module",
            ecmaFeatures: {
                jsx: true,
            },
            project: "tsconfig.base.json",
        },
    }],
};

(tsconfig.base.json see above)

The CLI call: npx eslint --ext .js,.ts,.tsx .

Note that because of the missing rules, ESLint now slightly uses less memory, so I used NODE_OPTIONS=--max-old-space-size=1900 (1.9 GB instead of the 2 GB default) to reproduce the OOM.

The complete log (with a few removed lines)
2019-12-10T08:15:45.384Z eslint:cli CLI args: [ '--ext', '.js,.ts,.tsx', '.' ]
2019-12-10T08:15:45.385Z eslint:cli Running on files
2019-12-10T08:15:45.395Z eslint:config-array-factory Loading .eslintignore file: C:\_work\XXX\src\.eslintignore
2019-12-10T08:15:45.395Z eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: 'C:\\_work\\XXX\\src', loose: false } ]
2019-12-10T08:15:45.397Z eslint:ignore-pattern   processed: { basePath: 'C:\\_work\\XXX\\src', patterns: [ '/node_modules/*', '/bower_components/*' ] }
2019-12-10T08:15:45.397Z eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: 'C:\\_work\\XXX\\src', loose: false } ]
2019-12-10T08:15:45.397Z eslint:ignore-pattern   processed: { basePath: 'C:\\_work\\XXX\\src', patterns: [ '/node_modules/*', '/bower_components/*' ] }
2019-12-10T08:15:45.398Z eslint:file-enumerator Start to iterate files: [ '.' ]
2019-12-10T08:15:45.398Z eslint:file-enumerator Directory: C:\_work\XXX\src
2019-12-10T08:15:45.398Z eslint:file-enumerator Enter the directory: C:\_work\XXX\src
2019-12-10T08:15:45.399Z eslint:cascading-config-array-factory Load config files for C:\_work\XXX\src.
2019-12-10T08:15:45.399Z eslint:cascading-config-array-factory No cache found: C:\_work\XXX\src.
2019-12-10T08:15:45.399Z eslint:config-array-factory Loading JS config file: C:\_work\XXX\src\.eslintrc.js
2019-12-10T08:15:45.400Z eslint:config-array-factory Config file found: C:\_work\XXX\src\.eslintrc.js
2019-12-10T08:15:45.402Z eslint:config-array-factory Loading parser "@typescript-eslint/parser" from C:\_work\XXX\src\.eslintrc.js
2019-12-10T08:15:45.403Z eslint:config-array-factory Loaded: @typescript-eslint/parser@2.10.0 (C:\_work\XXX\node_modules\@typescript-eslint\parser\dist\parser.js)
2019-12-10T08:15:45.635Z eslint:cascading-config-array-factory No cache found: C:\_work\XXX.
2019-12-10T08:15:45.636Z eslint:config-array-factory Loading package.json config file: C:\_work\XXX\package.json
2019-12-10T08:15:45.636Z eslint:config-array-factory Loading JSON config file: C:\_work\XXX\package.json
2019-12-10T08:15:45.637Z eslint:config-array-factory Error reading package.json file: C:\_work\XXX\package.json
2019-12-10T08:15:45.637Z eslint:config-array-factory Config file not found on C:\_work\XXX
2019-12-10T08:15:45.637Z eslint:cascading-config-array-factory No cache found: C:\_work.
2019-12-10T08:15:45.637Z eslint:config-array-factory Config file not found on C:\_work
2019-12-10T08:15:45.637Z eslint:cascading-config-array-factory No cache found: C:\.
2019-12-10T08:15:45.637Z eslint:config-array-factory Config file not found on C:\
2019-12-10T08:15:45.638Z eslint:cascading-config-array-factory Configuration was determined: ConfigArray [ { name: 'DefaultIgnorePattern', filePath: '', criteria: null, env: undefined, globals: undefined, ignorePattern: IgnorePattern { patterns: [Array], basePath: 'C:\\_work\\XXX\\src', loose: false }, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { name: '.eslintrc.js', filePath: 'C:\\_work\\XXX\\src\\.eslintrc.js', criteria: null, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: undefined, parserOptions: { ecmaVersion: 2019, sourceType: 'module' }, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { name: '.eslintrc.js#overrides[0]', filePath: 'C:\\_work\\XXX\\src\\.eslintrc.js', criteria: { includes: [Array], excludes: null, basePath: 'C:\\_work\\XXX\\src' }, env: undefined, globals: undefined, ignorePattern: undefined, noInlineConfig: undefined, parser: { error: null, filePath: 'C:\\_work\\XXX\\node_modules\\@typescript-eslint\\parser\\dist\\parser.js', id: '@typescript-eslint/parser', importerName: '.eslintrc.js#overrides[0]', importerPath: 'C:\\_work\\XXX\\src\\.eslintrc.js' }, parserOptions: { ecmaVersion: 2019, sourceType: 'module', ecmaFeatures: [Object], project: 'tsconfig.base.json' }, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined }, { name: '.eslintignore', filePath: 'C:\\_work\\XXX\\src\\.eslintignore', criteria: null, env: undefined, globals: undefined, ignorePattern: IgnorePattern { patterns: [Array], basePath: 'C:\\_work\\XXX\\src', loose: true }, noInlineConfig: undefined, parser: undefined, parserOptions: undefined, plugins: undefined, processor: undefined, reportUnusedDisableDirectives: undefined, root: undefined, rules: undefined, settings: undefined } ] on C:\_work\XXX\src
2019-12-10T08:15:45.639Z eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: 'C:\\_work\\XXX\\src', loose: false }, IgnorePattern { patterns: [ '!.*', 'build/', 'coverage/', 'jest_cache/', '*.[Gg]enerated.*', '/EsLintRules/*.js' ], basePath: 'C:\\_work\\XXX\\src', loose: true } ]
2019-12-10T08:15:45.640Z eslint:ignore-pattern   processed: { basePath: 'C:\\_work\\XXX\\src', patterns: [ '/node_modules/*', '/bower_components/*', '!.*', 'build/', 'coverage/', 'jest_cache/', '*.[Gg]enerated.*', '/EsLintRules/*.js' ] }
2019-12-10T08:15:45.640Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\.dependency-cruiser.js',
  dot: false,
  relativePath: '.dependency-cruiser.js',
  result: false
}
2019-12-10T08:15:45.640Z eslint:file-enumerator Yield: .dependency-cruiser.js
2019-12-10T08:15:45.640Z eslint:cascading-config-array-factory Load config files for C:\_work\XXX\src.
2019-12-10T08:15:45.640Z eslint:cascading-config-array-factory Cache hit: C:\_work\XXX\src.
2019-12-10T08:15:45.640Z eslint:cli-engine Lint C:\_work\XXX\src\.dependency-cruiser.js
2019-12-10T08:15:45.641Z eslint:linter Linting code for C:\_work\XXX\src\.dependency-cruiser.js (pass 1)
2019-12-10T08:15:45.641Z eslint:linter Verify
2019-12-10T08:15:45.641Z eslint:linter With ConfigArray: C:\_work\XXX\src\.dependency-cruiser.js
2019-12-10T08:15:45.660Z eslint:code-path onCodePathStart s1
2019-12-10T08:15:45.660Z eslint:code-path onCodePathSegmentStart s1_1
2019-12-10T08:15:45.660Z eslint:code-path s1_1) Program
2019-12-10T08:15:45.660Z eslint:code-path s1_1) FunctionDeclaration
2019-12-10T08:15:45.660Z eslint:code-path onCodePathStart s2
2019-12-10T08:15:45.660Z eslint:code-path onCodePathSegmentStart s2_1
2019-12-10T08:15:45.660Z eslint:code-path s2_1) FunctionDeclaration
2019-12-10T08:15:45.660Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.660Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) BlockStatement
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclaration
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclarator
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclarator:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclaration:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclaration
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclarator
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclarator:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) VariableDeclaration:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.661Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.661Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.661Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.662Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.662Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.662Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.662Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.663Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.663Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.663Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.663Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.664Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.664Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.665Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.665Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.665Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.665Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.666Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.666Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.666Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.667Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.667Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.667Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.668Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.668Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.668Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.669Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.669Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.669Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.669Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.670Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) TaggedTemplateExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) TemplateLiteral
2019-12-10T08:15:45.670Z eslint:code-path s2_1) TemplateElement
2019-12-10T08:15:45.670Z eslint:code-path s2_1) TemplateElement:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) TemplateLiteral:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.670Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.670Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.671Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.671Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) TaggedTemplateExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) TemplateLiteral
2019-12-10T08:15:45.671Z eslint:code-path s2_1) TemplateElement
2019-12-10T08:15:45.671Z eslint:code-path s2_1) TemplateElement:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) TemplateLiteral:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.671Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.671Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) SpreadElement
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) SpreadElement:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.672Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) CallExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) CallExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.672Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ExpressionStatement
2019-12-10T08:15:45.673Z eslint:code-path s2_1) YieldExpression
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) TaggedTemplateExpression
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) TemplateLiteral
2019-12-10T08:15:45.673Z eslint:code-path s2_1) TemplateElement
2019-12-10T08:15:45.673Z eslint:code-path s2_1) TemplateElement:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) TemplateLiteral:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ObjectExpression
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ArrayExpression
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Literal
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Literal:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ArrayExpression:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) Property:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ObjectExpression:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) YieldExpression:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) ExpressionStatement:exit
2019-12-10T08:15:45.673Z eslint:code-path s2_1) FunctionDeclaration
2019-12-10T08:15:45.673Z eslint:code-path onCodePathStart s3
2019-12-10T08:15:45.673Z eslint:code-path onCodePathSegmentStart s3_1
2019-12-10T08:15:45.673Z eslint:code-path s3_1) FunctionDeclaration
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s3_1) BlockStatement
2019-12-10T08:15:45.673Z eslint:code-path s3_1) VariableDeclaration
2019-12-10T08:15:45.673Z eslint:code-path s3_1) VariableDeclarator
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier:exit
2019-12-10T08:15:45.673Z eslint:code-path s3_1) ConditionalExpression
2019-12-10T08:15:45.673Z eslint:code-path s3_1) MemberExpression
2019-12-10T08:15:45.673Z eslint:code-path s3_1) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_1) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_1) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_1) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_1) MemberExpression:exit
2019-12-10T08:15:45.674Z eslint:code-path onCodePathSegmentEnd s3_1
2019-12-10T08:15:45.674Z eslint:code-path onCodePathSegmentStart s3_2
2019-12-10T08:15:45.674Z eslint:code-path s3_2) TemplateLiteral
2019-12-10T08:15:45.674Z eslint:code-path s3_2) TemplateElement
2019-12-10T08:15:45.674Z eslint:code-path s3_2) TemplateElement:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_2) TemplateElement
2019-12-10T08:15:45.674Z eslint:code-path s3_2) TemplateElement:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_2) MemberExpression
2019-12-10T08:15:45.674Z eslint:code-path s3_2) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_2) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_2) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_2) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_2) MemberExpression:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_2) TemplateLiteral:exit
2019-12-10T08:15:45.674Z eslint:code-path onCodePathSegmentEnd s3_2
2019-12-10T08:15:45.674Z eslint:code-path onCodePathSegmentStart s3_3
2019-12-10T08:15:45.674Z eslint:code-path s3_3) TemplateLiteral
2019-12-10T08:15:45.674Z eslint:code-path s3_3) TemplateElement
2019-12-10T08:15:45.674Z eslint:code-path s3_3) TemplateElement:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_3) TemplateElement
2019-12-10T08:15:45.674Z eslint:code-path s3_3) TemplateElement:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_3) MemberExpression
2019-12-10T08:15:45.674Z eslint:code-path s3_3) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_3) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_3) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_3) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_3) MemberExpression:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_3) TemplateLiteral:exit
2019-12-10T08:15:45.674Z eslint:code-path onCodePathSegmentEnd s3_3
2019-12-10T08:15:45.674Z eslint:code-path onCodePathSegmentStart s3_4
2019-12-10T08:15:45.674Z eslint:code-path s3_4) ConditionalExpression:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_4) VariableDeclarator:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_4) VariableDeclaration:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_4) VariableDeclaration
2019-12-10T08:15:45.674Z eslint:code-path s3_4) VariableDeclarator
2019-12-10T08:15:45.674Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.674Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.674Z eslint:code-path s3_4) ArrayExpression
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) SpreadElement
2019-12-10T08:15:45.675Z eslint:code-path s3_4) CallExpression
2019-12-10T08:15:45.675Z eslint:code-path s3_4) MemberExpression
2019-12-10T08:15:45.675Z eslint:code-path s3_4) MemberExpression
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) MemberExpression:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.675Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) MemberExpression:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) ArrowFunctionExpression
2019-12-10T08:15:45.675Z eslint:code-path onCodePathStart s4
2019-12-10T08:15:45.675Z eslint:code-path onCodePathSegmentStart s4_1
2019-12-10T08:15:45.675Z eslint:code-path s4_1) ArrowFunctionExpression
2019-12-10T08:15:45.675Z eslint:code-path s4_1) Identifier
2019-12-10T08:15:45.675Z eslint:code-path s4_1) Identifier:exit
2019-12-10T08:15:45.675Z eslint:code-path s4_1) TemplateLiteral
2019-12-10T08:15:45.675Z eslint:code-path s4_1) TemplateElement
2019-12-10T08:15:45.675Z eslint:code-path s4_1) TemplateElement:exit
2019-12-10T08:15:45.675Z eslint:code-path s4_1) TemplateElement
2019-12-10T08:15:45.675Z eslint:code-path s4_1) TemplateElement:exit
2019-12-10T08:15:45.675Z eslint:code-path s4_1) Identifier
2019-12-10T08:15:45.675Z eslint:code-path s4_1) Identifier:exit
2019-12-10T08:15:45.675Z eslint:code-path s4_1) TemplateLiteral:exit
2019-12-10T08:15:45.675Z eslint:code-path s4_1) ArrowFunctionExpression:exit
2019-12-10T08:15:45.675Z eslint:code-path onCodePathSegmentEnd s4_1
2019-12-10T08:15:45.675Z eslint:code-path onCodePathEnd s4
2019-12-10T08:15:45.675Z eslint:code-path DOT 
digraph {
node[shape=box,style="rounded,filled",fillcolor=white];
initial[label="",shape=circle,style=filled,fillcolor=black,width=0.25,height=0.25];
final[label="",shape=doublecircle,style=filled,fillcolor=black,width=0.25,height=0.25];
s4_1[label="ArrowFunctionExpression\nIdentifier (x)\nTemplateLiteral\nTemplateElement\nTemplateElement\nIdentifier (x)\nIdentifier:exit (x)\nTemplateElement:exit\nTemplateElement:exit\nIdentifier:exit (x)\nTemplateLiteral:exit\nArrowFunctionExpression:exit"];
initial->s4_1->final;
}
2019-12-10T08:15:45.675Z eslint:code-path s3_4) ArrowFunctionExpression:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) CallExpression:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) SpreadElement:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) ArrayExpression:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) VariableDeclarator:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) VariableDeclaration:exit
2019-12-10T08:15:45.675Z eslint:code-path s3_4) ExpressionStatement
2019-12-10T08:15:45.675Z eslint:code-path s3_4) YieldExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ObjectExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ObjectExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ObjectExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ObjectExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) TemplateLiteral
2019-12-10T08:15:45.676Z eslint:code-path s3_4) TemplateElement
2019-12-10T08:15:45.676Z eslint:code-path s3_4) TemplateElement:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) TemplateElement
2019-12-10T08:15:45.676Z eslint:code-path s3_4) TemplateElement:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) CallExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) MemberExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) MemberExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Literal
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Literal:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) CallExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) TemplateLiteral:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ObjectExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Property:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ObjectExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) YieldExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) ExpressionStatement:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) IfStatement
2019-12-10T08:15:45.676Z eslint:code-path s3_4) MemberExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_4) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_4) MemberExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path onCodePathSegmentEnd s3_4
2019-12-10T08:15:45.676Z eslint:code-path onCodePathSegmentStart s3_5
2019-12-10T08:15:45.676Z eslint:code-path s3_5) ExpressionStatement
2019-12-10T08:15:45.676Z eslint:code-path s3_5) YieldExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_5) ObjectExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_5) ObjectExpression
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Property:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_5) ObjectExpression:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Property:exit
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Property
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.676Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) ObjectExpression
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Property
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) MemberExpression
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Identifier
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Identifier:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) MemberExpression:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Property:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) ObjectExpression:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) Property:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) ObjectExpression:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) YieldExpression:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_5) ExpressionStatement:exit
2019-12-10T08:15:45.677Z eslint:code-path onCodePathSegmentEnd s3_5
2019-12-10T08:15:45.677Z eslint:code-path onCodePathSegmentStart s3_6
2019-12-10T08:15:45.677Z eslint:code-path s3_6) IfStatement:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_6) BlockStatement:exit
2019-12-10T08:15:45.677Z eslint:code-path s3_6) FunctionDeclaration:exit
2019-12-10T08:15:45.677Z eslint:code-path onCodePathSegmentEnd s3_6
2019-12-10T08:15:45.677Z eslint:code-path onCodePathEnd s3
[ ... snip ...]
2019-12-10T08:15:45.677Z eslint:code-path s2_1) FunctionDeclaration:exit
2019-12-10T08:15:45.677Z eslint:code-path s2_1) BlockStatement:exit
2019-12-10T08:15:45.677Z eslint:code-path s2_1) FunctionDeclaration:exit
2019-12-10T08:15:45.677Z eslint:code-path onCodePathSegmentEnd s2_1
2019-12-10T08:15:45.677Z eslint:code-path onCodePathEnd s2
[ ... snip ...]
2019-12-10T08:15:45.677Z eslint:code-path s1_1) FunctionDeclaration:exit
2019-12-10T08:15:45.677Z eslint:code-path s1_1) VariableDeclaration
2019-12-10T08:15:45.677Z eslint:code-path s1_1) VariableDeclarator
2019-12-10T08:15:45.677Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) MemberExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) MemberExpression:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) VariableDeclarator:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) VariableDeclaration:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ExpressionStatement
2019-12-10T08:15:45.678Z eslint:code-path s1_1) AssignmentExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) MemberExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) MemberExpression:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ArrayExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) SpreadElement
2019-12-10T08:15:45.678Z eslint:code-path s1_1) CallExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) CallExpression:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) SpreadElement:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ArrayExpression:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ArrayExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.678Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.678Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) TaggedTemplateExpression
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.679Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) TemplateLiteral
2019-12-10T08:15:45.679Z eslint:code-path s1_1) TemplateElement
2019-12-10T08:15:45.679Z eslint:code-path s1_1) TemplateElement:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) TemplateLiteral:exit
2019-12-10T08:15:45.679Z eslint:code-path s1_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateLiteral
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateElement
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateElement:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateLiteral:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateLiteral
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateElement
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateElement:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateLiteral:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateLiteral
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateElement
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateElement:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TemplateLiteral:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ArrayExpression:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.680Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.680Z eslint:code-path s1_1) TaggedTemplateExpression
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) TemplateLiteral
2019-12-10T08:15:45.681Z eslint:code-path s1_1) TemplateElement
2019-12-10T08:15:45.681Z eslint:code-path s1_1) TemplateElement:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) TemplateLiteral:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) TaggedTemplateExpression:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) AssignmentExpression:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) ExpressionStatement:exit
2019-12-10T08:15:45.681Z eslint:code-path s1_1) Program:exit
2019-12-10T08:15:45.681Z eslint:code-path onCodePathSegmentEnd s1_1
2019-12-10T08:15:45.681Z eslint:code-path onCodePathEnd s1
2019-12-10T08:15:45.681Z eslint:code-path DOT 
[ ... snip ...]
2019-12-10T08:15:45.681Z eslint:linter Generating fixed text for C:\_work\XXX\src\.dependency-cruiser.js (pass 1)
2019-12-10T08:15:45.681Z eslint:source-code-fixer Applying fixes
2019-12-10T08:15:45.682Z eslint:source-code-fixer shouldFix parameter was false, not attempting fixes
2019-12-10T08:15:45.682Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\.eslintignore',
  dot: false,
  relativePath: '.eslintignore',
  result: false
}
2019-12-10T08:15:45.682Z eslint:file-enumerator Didn't match: .eslintignore
2019-12-10T08:15:45.683Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\.eslintrc.js',
  dot: false,
  relativePath: '.eslintrc.js',
  result: false
}
2019-12-10T08:15:45.683Z eslint:file-enumerator Yield: .eslintrc.js
2019-12-10T08:15:45.683Z eslint:cascading-config-array-factory Load config files for C:\_work\XXX\src.
2019-12-10T08:15:45.683Z eslint:cascading-config-array-factory Cache hit: C:\_work\XXX\src.
2019-12-10T08:15:45.683Z eslint:cli-engine Lint C:\_work\XXX\src\.eslintrc.js
2019-12-10T08:15:45.683Z eslint:linter Linting code for C:\_work\XXX\src\.eslintrc.js (pass 1)
2019-12-10T08:15:45.683Z eslint:linter Verify
2019-12-10T08:15:45.683Z eslint:linter With ConfigArray: C:\_work\XXX\src\.eslintrc.js
2019-12-10T08:15:45.684Z eslint:code-path onCodePathStart s1
2019-12-10T08:15:45.684Z eslint:code-path onCodePathSegmentStart s1_1
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Program
2019-12-10T08:15:45.684Z eslint:code-path s1_1) ExpressionStatement
2019-12-10T08:15:45.684Z eslint:code-path s1_1) AssignmentExpression
2019-12-10T08:15:45.684Z eslint:code-path s1_1) MemberExpression
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) MemberExpression:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.684Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) ArrayExpression
2019-12-10T08:15:45.685Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) ArrayExpression
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) ArrayExpression:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.685Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ObjectExpression
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Identifier
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Identifier:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Literal
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Literal:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ArrayExpression:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Property:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ObjectExpression:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) AssignmentExpression:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) ExpressionStatement:exit
2019-12-10T08:15:45.686Z eslint:code-path s1_1) Program:exit
2019-12-10T08:15:45.686Z eslint:code-path onCodePathSegmentEnd s1_1
2019-12-10T08:15:45.686Z eslint:code-path onCodePathEnd s1
[ ... snip ...]
2019-12-10T08:15:45.686Z eslint:linter Generating fixed text for C:\_work\XXX\src\.eslintrc.js (pass 1)
2019-12-10T08:15:45.687Z eslint:source-code-fixer Applying fixes
2019-12-10T08:15:45.687Z eslint:source-code-fixer shouldFix parameter was false, not attempting fixes
2019-12-10T08:15:45.687Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\.gitignore',
  dot: false,
  relativePath: '.gitignore',
  result: false
}
2019-12-10T08:15:45.687Z eslint:file-enumerator Didn't match: .gitignore
2019-12-10T08:15:45.687Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\BackEnd\\',
  dot: false,
  relativePath: 'BackEnd/',
  result: false
}
2019-12-10T08:15:45.687Z eslint:file-enumerator Enter the directory: C:\_work\XXX\src\BackEnd
2019-12-10T08:15:45.687Z eslint:cascading-config-array-factory Load config files for C:\_work\XXX\src\BackEnd.
2019-12-10T08:15:45.688Z eslint:cascading-config-array-factory No cache found: C:\_work\XXX\src\BackEnd.
2019-12-10T08:15:45.688Z eslint:config-array-factory Config file not found on C:\_work\XXX\src\BackEnd
2019-12-10T08:15:45.688Z eslint:cascading-config-array-factory Cache hit: C:\_work\XXX\src.
2019-12-10T08:15:45.688Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\BackEnd\\.env',
  dot: false,
  relativePath: 'BackEnd/.env',
  result: false
}
2019-12-10T08:15:45.688Z eslint:file-enumerator Didn't match: .env
2019-12-10T08:15:45.688Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\BackEnd\\.env.development',
  dot: false,
  relativePath: 'BackEnd/.env.development',
  result: false
}
2019-12-10T08:15:45.688Z eslint:file-enumerator Didn't match: .env.development
2019-12-10T08:15:45.688Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\BackEnd\\.env.development.local',
  dot: false,
  relativePath: 'BackEnd/.env.development.local',
  result: false
}
2019-12-10T08:15:45.688Z eslint:file-enumerator Didn't match: .env.development.local
2019-12-10T08:15:45.689Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\BackEnd\\Api\\',
  dot: false,
  relativePath: 'BackEnd/Api/',
  result: false
}
2019-12-10T08:15:45.689Z eslint:file-enumerator Enter the directory: C:\_work\XXX\src\BackEnd\Api
2019-12-10T08:15:45.689Z eslint:cascading-config-array-factory Load config files for C:\_work\XXX\src\BackEnd\Api.
2019-12-10T08:15:45.689Z eslint:cascading-config-array-factory No cache found: C:\_work\XXX\src\BackEnd\Api.
2019-12-10T08:15:45.689Z eslint:config-array-factory Config file not found on C:\_work\XXX\src\BackEnd\Api
2019-12-10T08:15:45.689Z eslint:cascading-config-array-factory Cache hit: C:\_work\XXX\src\BackEnd.
2019-12-10T08:15:45.689Z eslint:ignore-pattern Create with: [ IgnorePattern { patterns: [ '/node_modules/*', '/bower_components/*' ], basePath: 'C:\\_work\\XXX\\src', loose: false }, IgnorePattern { patterns: [ '!.*', 'build/', 'coverage/', 'jest_cache/', '*.[Gg]enerated.*', '/EsLintRules/*.js' ], basePath: 'C:\\_work\\XXX\\src', loose: true } ]
2019-12-10T08:15:45.690Z eslint:ignore-pattern   processed: { basePath: 'C:\\_work\\XXX\\src', patterns: [ '/node_modules/*', '/bower_components/*', '!.*', 'build/', 'coverage/', 'jest_cache/', '*.[Gg]enerated.*', '/EsLintRules/*.js' ] }
2019-12-10T08:15:45.690Z eslint:ignore-pattern Check {
  filePath: 'C:\\_work\\XXX\\src\\BackEnd\\Api\\ApiModule.ts',
  dot: false,
  relativePath: 'BackEnd/Api/ApiModule.ts',
  result: false
}
2019-12-10T08:15:45.690Z eslint:file-enumerator Yield: ApiModule.ts
2019-12-10T08:15:45.690Z eslint:cascading-config-array-factory Load config files for C:\_work\XXX\src\BackEnd\Api.
2019-12-10T08:15:45.690Z eslint:cascading-config-array-factory Cache hit: C:\_work\XXX\src\BackEnd\Api.
2019-12-10T08:15:45.690Z eslint:cli-engine Lint C:\_work\XXX\src\BackEnd\Api\ApiModule.ts
2019-12-10T08:15:45.690Z eslint:linter Linting code for C:\_work\XXX\src\BackEnd\Api\ApiModule.ts (pass 1)
2019-12-10T08:15:45.690Z eslint:linter Verify
2019-12-10T08:15:45.690Z eslint:linter With ConfigArray: C:\_work\XXX\src\BackEnd\Api\ApiModule.ts
2019-12-10T08:15:45.692Z typescript-eslint:typescript-estree:createProjectProgram Creating project program for: C:\_work\XXX\src\BackEnd\Api\ApiModule.ts
2019-12-10T08:15:45.692Z typescript-eslint:typescript-estree:createWatchProgram File did not belong to any existing programs, moving to create/update. c:\_work\XXX\src\backend\api\apimodule.ts
2019-12-10T08:15:45.692Z typescript-eslint:typescript-estree:createWatchProgram Creating watch program for c:\_work\XXX\src\tsconfig.base.json.
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Writing Node.js report to file: report.20191210.091624.13300.0.001.json
<--- Last few GCs --->

[13300:000001DF5AADF7F0] 34768 ms: Mark-sweep 1896.1 (1905.0) -> 1895.0 (1909.5) MB, 734.8 / 0.0 ms (average mu = 0.217, current mu = 0.104) allocation failure scavenge might not succeed
[13300:000001DF5AADF7F0] 36344 ms: Mark-sweep 1898.8 (1909.8) -> 1896.9 (1905.5) MB, 1287.9 / 0.0 ms (+ 69.7 ms in 56 steps since start of marking, biggest step 9.5 ms, walltime since start of marking 1576 ms) (average mu = 0.169, current mu = 0.138)

<--- JS stacktrace --->

==== JS stack trace =========================================

0: ExitFrame [pc: 00007FF61972AE3D]

Security context: 0x0230db500921
1: bindChildrenWorker(aka bindChildrenWorker) [000002BC5FDD8239] [C:_work\XXX\node_modules\typescript\lib\typescript.js:~29660] [pc=0000014639A9C4A4](this=0x03a3ee6404b9 ,0x01e71ebd84b9 )
2: bind(aka bind) [000002BC5FDD99F9] [C:_work\XXX\node_modules\typescript\lib\typescript.js:~31016...

Node.js report completed
1: 00007FF618B1C80F napi_wrap+125199
2: 00007FF618ABBFE6 public: bool __cdecl v8::base::CPU::has_sse(void)const __ptr64+36198
3: 00007FF618ABCCB6 public: bool __cdecl v8::base::CPU::has_sse(void)const __ptr64+39478
4: 00007FF6192E44AE private: void __cdecl v8::Isolate::ReportExternalAllocationLimitReached(void) __ptr64+94
5: 00007FF6192CBC01 public: void __cdecl v8::SharedArrayBuffer::Externalize(class std::shared_ptr const & __ptr64) __ptr64+785
6: 00007FF619192F5C public: static void __cdecl v8::internal::Heap::EphemeronKeyWriteBarrierFromCode(unsigned __int64,unsigned __int64,class v8::internal::Isolate * __ptr64)+1436
7: 00007FF61919E250 public: void __cdecl v8::internal::Heap::ProtectUnprotectedMemoryChunks(void) __ptr64+1312
8: 00007FF61919AD7F public: static bool __cdecl v8::internal::Heap::PageFlagsAreConsistent(class v8::internal::HeapObject)+3151
9: 00007FF6191904D3 public: bool __cdecl v8::internal::Heap::CollectGarbage(enum v8::internal::AllocationSpace,enum v8::internal::GarbageCollectionReason,enum v8::GCCallbackFlags) __ptr64+1283
10: 00007FF61918EC64 public: void * __ptr64 __cdecl v8::internal::Heap::AllocateExternalBackingStore(class std::function<void * __ptr64 __cdecl(unsigned __int64)> const & __ptr64,unsigned __int64) __ptr64+1300
11: 00007FF6191B0C54 public: class v8::internal::Handle __cdecl v8::internal::Factory::NewFillerObject(int,bool,enum v8::internal::AllocationType,enum v8::internal::AllocationOrigin) __ptr64+196
12: 00007FF618F0B251 public: class v8::internal::interpreter::JumpTableTargetOffsets::iterator & __ptr64 __cdecl v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=(class v8::internal::interpreter::JumpTableTargetOffsets::iterator && __ptr64) __ptr64+1681
13: 00007FF61972AE3D public: virtual bool __cdecl v8::internal::SetupIsolateDelegate::SetupHeap(class v8::internal::Heap * __ptr64) __ptr64+517453
14: 0000014639A9C4A4
[09:16:24] 'eslint' errored after 40 s
[09:16:24] Error: exited with error code: 134
at ChildProcess.onexit (C:_work\XXX\node_modules\end-of-stream\index.js:39:36)
at ChildProcess.emit (events.js:219:5)
at ChildProcess.EventEmitter.emit (domain.js:544:15)
at Process.ChildProcess._handle.onexit (internal/child_process.js:274:12)

Process finished with exit code 1

@suchanlee
Copy link

suchanlee commented Dec 12, 2019

Let me know if you'd prefer that I open a separate issue instead of piggy backing off this one

I'm running into the same issue as well, in a large monorepo:

Monorepo: Yes, managed by lerna
Number of packages: 414, with a separate tsconfig.json file in each one
Number of Typescript files: 24428
Lines of code: ~200k
How big is your npm dependency tree: large, ~1000

tsconfig.base.json

{
  "atom": {
    "rewriteTsconfig": false
  },
  "compileOnSave": false,
  "compilerOptions": {
    "alwaysStrict": true,
    "allowSyntheticDefaultImports": true,
    "composite": true,
    "declaration": true,
    "declarationMap": true,
    "downlevelIteration": true,
    "emitDecoratorMetadata": true,
    "esModuleInterop": true,
    "experimentalDecorators": true,
    "forceConsistentCasingInFileNames": true,
    "importHelpers": true,
    "jsx": "react",
    "lib": ["dom", "es2015", "es2016", "es2017", "es2018", "es2019"],
    "module": "esnext",
    "moduleResolution": "node",
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "plugins": [{ "name": "typescript-tslint-plugin" }],
    "preserveConstEnums": true,
    "pretty": true,
    "removeComments": false,
    "skipLibCheck": true,
    "sourceMap": true,
    "strict": true,
    "strictBindCallApply": false,
    "stripInternal": true,
    "noFallthroughCasesInSwitch": true,
    "target": "es5"
  }
}

There's a single tsconfig.eslint.json file used for linting from the root of the monorepo and I've verified that there's a single program being created by running it in debug mode.

tsconfig.eslint.json

{
  "extends": "./config/tsconfig.shared.json",
  "compilerOptions": {
    "outDir": "lib",
    "rootDir": "src"
  },
  "exclude": [
    "build",
    "node_modules",
    "generated",
    "lib",
    "scripts",
    "src/__docs__",
    "enzymeSetup.ts",
    "setupJest.ts",
    "packages/**/*.d.ts"
  ],
  "include": [
    "packages/**/src/**/*.ts",
    "packages/**/src/**/*.tsx"
  ]
}

eslint OOMs when it's being run on the full monorepo (workflow: open vscode project from monorepo root and let the vscode-eslint extension run).

I've tested running eslint from cli for just a single, relatively small package, which doesn't OOM, for comparison between running it with the project field set and not set.

Two runs each:

  • without project set: 632ms, 534ms
  • with project set: 137830ms, 131742ms

which is a staggering difference in performance. And we have a lot of custom rules that rely on type checking. Even if eslint were to not crash due to OOM, the performance is too slow for it to actually be used.

Do you have any other tips on improving the performance of eslint + types?

@bradzacher
Copy link
Member

In order to lint with type information, you have to gather the type information. There's only one possible way to do that - essentially call tsc on the project (we use their compiler API, but they do the same thing under the hood).

So the perf hit === roughly how long it takes to run tsc --noEmit.
eg. For our project here, we have 349 TS files, at about 80k lines (including tests, or about 30k of real code):

  • Doing a complete incremental build takes ~4-15s.
  • Doing a cold build takes ~21s.
  • Linting with type information takes ~17-20s.
  • Linting without takes ~8-10s.

If your lint run is slower than lint + tsc, then there is something else wrong.


From the memory standpoint - a little background...

Our use case is unique. Via one package, we have to handle the single use CLIs case, as well as the persistent IDE use case. But there are no flags to switch between the two. This limits our choice of underlying implementations and TS APIs.

The OOM issue in OP's case is (I'm pretty sure, I don't have the codebase, so guessing) because there is a lot of shared code between the projects, which causes a lot of duplicated memory. Right now, we are using TS's WatchProgram API, which is designed for a single program, but lends itself well to frequent file updates (i.e. the persistent IDE use case). It's missing a crucial piece however, which is the ability to share SourceFiles between programs, hence the duplication and OOM.

Making OP switch to a single tsconfig works because they are small enough that their entire monorepo is small enough, and creating one program means the SourceFiles are shared.

For your scale, I would hazard a guess that using a single tsconfig will not work for you. TS wasn't designed to handle 24k files at once - it was designed to handle smaller number of files as separate projects.

I'm not sure the best path forward on your issue. I have never seen a typescript monorepo at that scale, so you're certainly an edge case.
As a temporary workaround, you could circumvent the OOM by linting one project at a time, and it'd be pretty trivial to bash script up and parallelise it a great deal, but it will still be pretty slow (though linting across your entire codebase will be slow regardless due to the scale).


(for @ulrichb - I will review those logs in depth tomorrow, I had a brief look and it looked promising from a debugging standpoint)

@suchanlee
Copy link

@bradzacher thanks for a quick response! If the lower bound is the time it takes to run tsc, then it will definitely not work for our monorepo. I'll take the conversation to #55 for further discussion

@bradzacher
Copy link
Member

bradzacher commented Dec 13, 2019

@ulrichb - looking at those logs..
It looks like it does a lot of work before starting on TS files.

That OOM occurred exactly where I'd expect it to:

typescript-eslint:typescript-estree:createWatchProgram Creating watch program for c:\_work\XXX\src\tsconfig.base.json.

This is where we call typescript.createWatchProgram, which makes typescript do the typechecking for the tsconfig project.

Do you have a mixed js/ts codebase?
If yes - you mentioned 180 files before, is that 180 total files, or 180 just TS files? Do your TS files import JS files?

@ulrichb
Copy link
Contributor

ulrichb commented Dec 13, 2019

Omg, I just found my problem: The generated declaration files and/or .js files in the --outdir directories.

After deleting all "build" dirs the ESLint process maxes at ~ 550 MB.

Note that I have "build/" in my .eslintignore, so ... is it a bug that the input of the type-checking doesn't exclude the .eslintignore entries?

@bradzacher
Copy link
Member

Hmm. I didn't think about this. Great work finding it.

Looking again at the tsconfig you're providing, you don't have an include or exclude.
To typescript, is the same as passing include: ["**/*"], which means it'll ofc match your build output folder (IIRC TS will automatically not match node_modules, so it'll protect you from that).

This is a tricky thing that we don't exactly sync on with ESLint.
.eslintignore will tell ESLint what files shouldn't be linted.
However because we gather type info, we also tell typescript to parse and check every file matched by the tsconfig. It means sometimes we parse more than gets linted, but it ensures we get complete and correct type information.

I'll make sure to add this to the new docs I'm writing.

If you explicitly add include to your tsconfig, it should fix it.

@benlesh
Copy link

benlesh commented Nov 16, 2023

@JoshuaKGoldberg we're hitting this where I work as well... Basically a large monorepo that's trying to have "one lint to rule them all" and it straight up can't handle it.

cc @ssilve1989

@rdsedmundo
Copy link
Contributor

rdsedmundo commented Nov 16, 2023

We were not having OOM issues, but our project was overall really slow (had reported and participated in other threads here over this) and disabling forceConsistentCasingInFileNames improved our performance significantly, like, from a level that was an issue to every developer in the team to everyone saying now that it's totally acceptable.

@bradzacher
Copy link
Member

bradzacher commented Nov 16, 2023

@benlesh one of the unfortunate things about ESLint is that it doesn't give us any of the information that we need to properly manage memory in a monorepo.

The only information we're given is the path to the current file, that file's code, and its parser options. We don't know what files are being linted in the run or what files are left to lint.
Heck, we don't even know the difference between an IDE run (where files are randomly linted 0..n times) and a CLI run (where files are generally linted once - but actually up to 10 times with fixers) because ESLint doesn't actually have this concept.

What this means we can't do a simple thing like "dump a tsconfig from memory when all its files are parsed" because we have no way to know when it's "done done". So we just keep accumulating memory forever until node OOMs.

Sadly this is just a limitation of ESLint - in particular the CLI and not something that can be changed for various reasons outside our control.

For large monorepos generally the suggestion is to stop using the ESLint CLI directly and either use other tools or build your own CLI for your usecase. An example of the former is using tools like nx which will do "one lint run per package". For the latter you can use the ESLint APIs and our APIs to clear or storage manually when you know a tsconfig is done.

We have had some ideas for a CLI wrapper to help here but it's just hard to do something generically to fit every company/project's workflows. But it might be something we reprioritise in the near future.

As an example - at Canva we have a lot of files to lint and the ESLint CLI itself is super slow at scale because it does everything serially - so we built our own CLI using ESLint's APIs that parallelises things and leverages various assumptions about our codebase's setup for even better perf. The result is being able to lint tens of thousands of files in a few minutes, rather than hours.

@NMinhNguyen
Copy link
Contributor

So we just keep accumulating memory forever until node OOMs.

This might be a silly suggestion given I don’t know enough about the inner workings, but is it possible to have some kinda LRU cache with a bounded size and/or TTL? That way what gets stored would be access based, and eventually cleaned up if not accessed in a while.

@bradzacher
Copy link
Member

The difficult thing is that

  1. cost of reconstructing a tsconfig is very expensive
  2. type information is computed lazily and cached

So if we were to drop a tsconfig from memory only to need it later it would greatly slow down the CLI lint run. Imagine if we had to do that a few times - it could add up to 10s of seconds or even minutes extra.

And for the IDE usecase - imagine reopening a file you've already opened and having it take an extra 10+s to lint again - it would be a super frustrating experience! For large repos type-aware linting can already feel sluggish in the IDE so slowing it down more would suck!

We're hoping that Josh's experiments using the language service API will provide a better experience, or there's the experiments in a bespoke CLI too so we can give ourselves the information and predictability we need.

@OssamaSijbesma
Copy link

Is your project open-source?
No

Is your package a monorepo?
Yes

Are you using lerna, or some other method?
We are using NX with Yarn

How many packages are in your monorepo?
5

Do you have one tsconfig per package, one at the root, or a mish-mash of both?
One tsconfig per package

How interdependent is your codebase (i.e. are there lots of utility packages that are used by every package, or is it mainly packages with clear separations?)
We have utility packages with clear separations and consumer packages.

How do you build your project(s)?
mish-mash

How many TS files are in your codebase?
5

Approx how many lines of code are in your codebase?
It's very large, tens of thousands of lines.

How many NPM dependencies do you have?
Around a hundred dependencies.

We suspect it's one of the tsconfig options because the following doesn't work:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": true,
    "jsx": "preserve",
    "importHelpers": true,
    "moduleResolution": "bundler",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "resolveJsonModule": true,
    "skipLibCheck": true,
    "lib": ["esnext", "dom", "dom.iterable", "scripthost"],
    "noEmit": true,
    "types": ["vite/client", "vitest/globals", "sinon-chai", "chai-as-promised"],
    "paths": {
      "@/*": ["./src/*"]
    }
  },
  "include": ["src/**/*.ts", "src/**/*.vue", "test/**/*.ts"],
  "exclude": ["node_modules"]
}

However, this does work:

{
  "compilerOptions": {
    "lib": ["esnext", "dom", "dom.iterable", "scripthost"],
    "types": ["vite/client", "vitest/globals", "sinon-chai", "chai-as-promised"],
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}

@vlechemin
Copy link

After a quick look, it seems to be the global variable knownWatchProgramMap which keeps growing even with only one project.

The OOM can be mitigated if the cache is cleared sparingly so maybe an ExpiringCache could be used like in the parser? As it is a global variable, it is difficult to pass options though.

Any chance that a PR exposing clearWatchCaches would be accepted? It is blocking for our CI so any better idea would be welcome :) Thanks

@JoshuaKGoldberg
Copy link
Member

Any chance that a PR exposing clearWatchCaches would be accepted? It is blocking for our CI so any better idea would be welcome :) Thanks

Feel free to file a new issue! This one is starting to get a little heavyweight.

@bradzacher
Copy link
Member

it seems to be the global variable knownWatchProgramMap which keeps growing even with only one project.

That doesn't seem possible because that map is defined as a map whose keys are the absolute tsconfig paths that you pass us via config.

The only way for it to grow is if you pass more tsconfig paths via the parser options.

If you can - please provide a repro case so that we can verify, track down, and fix the bug. We'd obviously much rather fix a bug like that rather than expose tools to hack around it.

@vlechemin
Copy link

That doesn't seem possible because that map is defined as a map whose keys are the absolute tsconfig paths that you pass us via config.

What I meant is that the content keeps growing, not the number of keys.

If you can - please provide a repro case so that we can verify, track down, and fix the bug. We'd obviously much rather fix a bug like that rather than expose tools to hack around it.

I won't be able to provide a repro case, unfortunately our repo is not public.
I'd gladly not use a hack, but this kind of issue takes a long time to fix and it can't be much worse than increasing something called max_old_space_size every few months

@bradzacher
Copy link
Member

Memory should grow slowly as more files are linted - this is to be expected as types are computed lazily.

Memory starts low-ish as the program created is mostly a skeleton and then as more types are accessed by lint rules, more types are computed and cached.
Its rare that this specifically causes the OOM - usually OOMs occur because the number of programs grows over time and that uses exponentially more RAM - esp in highly interdependent codebases.

But as I said - a single project by itself OOMing is rarer. If you could create an isolated reproduction of your usecase of one project that grows to OOM - that would be good info for us to use to investigate and understand things - and to take to the TS team to help improve the state of things.

@jakebailey
Copy link
Collaborator

I still want to look into the forceConsistentCasingInFileNames: false problem. Does anyone have a public repo where adding this option fixes things? Or a private repo they're willing to add me or other TypeScript team members to?

@jasperlin451
Copy link

jasperlin451 commented Jan 23, 2024

In my case, the issue was caused by having forceConsistentCasingInFileNames set to true in my tsconfig.json. Once I turned it off, the problem was resolved.

This was the solution for me too. We weren't seeing high memory usage but we were seeing ~2 seconds per keystroke in VSCode spent on creating diagnostic files.
Screenshot 2024-01-22 at 16 23 14

I added a console.trace(${file.path} length ${fileReasons.get(file.path)?.length}); call here: https://github.com/microsoft/TypeScript/blob/2e3b8af85e1f782634349139819151881369e3ea/src/compiler/program.ts#L4639 and got a lot of messages like this.

Trace: /users/jasper/code/sparta/node_modules/io-ts/lib/index.d.ts length 1175
    at createDiagnosticExplainingFile (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:121805:17)
    at /Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:119519:41
    at Array.forEach (<anonymous>)
    at createProgram (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:119516:76)
    at synchronizeHostData (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:142848:17)
    at Object.getProgram (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:142922:7)
    at ConfiguredProject2.updateGraphWorker (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:174716:47)
    at ConfiguredProject2.updateGraph (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:174567:38)
    at ConfiguredProject2.updateGraph (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:175794:30)
    at _ProjectService.createLoadAndUpdateConfiguredProject (/Users/jasper/code/sparta/node_modules/typescript/lib/typescript.js:177537:19)

Copy link

Uh oh! @jasperlin451, the image you shared is missing helpful alt text. Check #1192 (comment).

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

1 similar comment
Copy link

Uh oh! @jasperlin451, the image you shared is missing helpful alt text. Check #1192 (comment).

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

@maecapozzi
Copy link

We are having the same issue with forceConsistentCasingInFileNames. We were seeing OOM until we removed that rule.

@EmmanuelKzsky
Copy link

In my case we have already configured our .eslintrc.json and inside of it was having parserOptions to tsconfig.json file which was causing the conflict after removing that the linting won't trough the OOM

@antmarot
Copy link

Setting forceConsistentCasingInFileNames to false solved the issue for me as well.
Went from node processes with >4GB of memory to ~400MB.

@ChrisSargent
Copy link

for balance, setting forceConsistentCasingInFileNames: false made no difference to our memory usage.

Mythie added a commit to documenso/documenso that referenced this issue Mar 10, 2024
I found out that the problem of slow down is the use of
parseOption.project with multiple tsconfig files which increases usage
of memory consumption quite a lot.

Here is the reference I found to resolve this issue:

[reference
link](typescript-eslint/typescript-eslint#1192)
[Doc
link](https://typescript-eslint.io/getting-started/typed-linting/monorepos/)

Based on this reference I created the solution and tested out locally it
does reduce the eslint time.

#1002
@martaver
Copy link

We were experiencing an OOM error on a relatively small monorepo (<200 files and 10 projects).

Enabling EXPERIMENTAL_useProjectService: true in parserOptions as per #6754 not only eliminated the OOM error, but sped up linting dramatically.

Granted, it's experimental, but if you have the leway, this was a valid solution for us!

@jakebailey
Copy link
Collaborator

To those having an OOM that is "fixed" by setting forceConsistentCasingInFileNames=false, can you try using "typescript": "npm:@typescript-deploys/pr-build@5.5.0-pr-58299-2" (from microsoft/TypeScript#58299 (comment)) and see what happens?

@jakebailey
Copy link
Collaborator

My change above is probably wrong (per @sheetalkamat), so I'll close that PR, though I am curious if it actually did anything for anyone.

In any case, I'll make my plea again... We really, really, really need some repro we can see ourselves that is affected by forceConsistentCasingInFileNames.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked by another issue Issues which are not ready because another issue needs to be resolved first bug Something isn't working meta meta-issues which consolidate many issues together package: typescript-estree Issues related to @typescript-eslint/typescript-estree performance Issues regarding performance
Projects
None yet
Development

No branches or pull requests