Skip to content

Instantly share code, notes, and snippets.

@robertbrook
Created January 30, 2023 14:40
Show Gist options
  • Save robertbrook/347d66a804b899ec3f30b7b60778b210 to your computer and use it in GitHub Desktop.
Save robertbrook/347d66a804b899ec3f30b7b60778b210 to your computer and use it in GitHub Desktop.
graph TD

subgraph function tryCatchExample

subgraph function f
  froml9c4tol9c18("const ff = 45;")
  froml24c4tol24c13>"return 1;"]
  style froml24c4tol24c13 fill:#99FF99
subgraph function d
  froml6c6tol6c14("await 5;")
  froml7c6tol7c18>"return toto;"]
  style froml7c6tol7c18 fill:#99FF99
  froml6c6tol6c14 --> froml7c6tol7c18
end
subgraph try froml10c8tol16c5
  froml11c6tol11c16("let a = 5;")
  froml12c6tol12c16("a = a + 1;")
  froml13c6tol15c7{"if a > 3"}
  froml14c8tol14c38>"throw new Error('not normal');"]
  style froml14c8tol14c38 fill:#FF9999
  froml11c6tol11c16 --> froml12c6tol12c16
  froml13c6tol15c7 -- true --> froml14c8tol14c38
  froml12c6tol12c16 --> froml13c6tol15c7
end
subgraph finally froml20c14tol23c5
  froml21c6tol21c36("console.log('in the finally');")
  froml22c6tol22c22{"if u"}
  froml22c13tol22c22>"return 8;"]
  style froml22c13tol22c22 fill:#99FF99
  froml22c6tol22c22 -- true --> froml22c13tol22c22
  froml21c6tol21c36 --> froml22c6tol22c22
end
subgraph catch froml16c6tol20c5
  froml17c6tol17c34("console.log('in the catch');")
  froml18c6tol18c22{"if v"}
  froml18c13tol18c22>"return 5;"]
  style froml18c13tol18c22 fill:#99FF99
  froml19c6tol19c43{"if ftw"}
  froml19c15tol19c43>"throw new Error('Real bad');"]
  style froml19c15tol19c43 fill:#FF9999
  froml18c6tol18c22 -- true --> froml18c13tol18c22
  froml17c6tol17c34 --> froml18c6tol18c22
  froml19c6tol19c43 -- true --> froml19c15tol19c43
  froml18c6tol18c22 --> froml19c6tol19c43
end
  froml13c6tol15c7 --> froml21c6tol21c36
  froml19c6tol19c43 --> froml21c6tol21c36
  froml11c6tol11c16 -. error .-> froml17c6tol17c34
  froml12c6tol12c16 -. error .-> froml17c6tol17c34
  froml13c6tol15c7 -. error .-> froml17c6tol17c34
  froml14c8tol14c38 -. error .-> froml17c6tol17c34
  froml9c4tol9c18 --> froml11c6tol11c16
  froml22c6tol22c22 --> froml24c4tol24c13
end

end
subgraph function generatorExample
  froml29c2tol29c10>"yield 1;"]
  style froml29c2tol29c10 fill:#99CCFF
  froml30c2tol30c10>"yield 5;"]
  style froml30c2tol30c10 fill:#99CCFF
  froml31c2tol37c3{"if myCond"}
  froml32c4tol32c23>"const c = yield 21;"]
  style froml32c4tol32c23 fill:#99CCFF
  froml33c4tol33c28("const d = await coco(c);")
  froml35c4tol35c13>"yield 25;"]
  style froml35c4tol35c13 fill:#99CCFF
  froml36c4tol36c28>"let u = yield f(45 + 6);"]
  style froml36c4tol36c28 fill:#99CCFF
  froml38c2tol43c3{"for  ;  ; "}
  froml39c4tol39c25("const b = await f(a);")
  froml40c4tol40c16>"yield b + b;"]
  style froml40c4tol40c16 fill:#99CCFF
  froml41c4tol41c20("frameElement(2);")
  froml42c4tol42c22>"const u = yield 6;"]
  style froml42c4tol42c22 fill:#99CCFF
  froml44c2tol44c11>"return d;"]
  style froml44c2tol44c11 fill:#99FF99
  froml29c2tol29c10 --> froml30c2tol30c10
  froml31c2tol37c3 -- true --> froml32c4tol32c23
  froml31c2tol37c3 -- false --> froml35c4tol35c13
  froml32c4tol32c23 --> froml33c4tol33c28
  froml35c4tol35c13 --> froml36c4tol36c28
  froml30c2tol30c10 --> froml31c2tol37c3
  froml38c2tol43c3 -- do --> froml39c4tol39c25
  froml42c4tol42c22 -- loop --> froml38c2tol43c3
  froml39c4tol39c25 --> froml40c4tol40c16
  froml40c4tol40c16 --> froml41c4tol41c20
  froml41c4tol41c20 --> froml42c4tol42c22
  froml33c4tol33c28 --> froml38c2tol43c3
  froml36c4tol36c28 --> froml38c2tol43c3
  froml38c2tol43c3 --> froml44c2tol44c11
end
subgraph function controlFlowExample
  froml48c2tol48c14("const a = 5;")
  froml49c2tol49c27("const b = await toto(44);")
  froml50c2tol58c3{"while b > 0"}
  froml51c4tol57c5{"if b"}
  froml52c6tol52c15>"return 5;"]
  style froml52c6tol52c15 fill:#99FF99
  froml53c11tol57c5{"if c"}
  froml54c6tol54c29>"throw new Error('Not');"]
  style froml54c6tol54c29 fill:#FF9999
  froml56c6tol56c13("b = 52;")
  froml59c2tol65c18{"do while b < 4"}
  froml60c4tol60c14("b = b + 1;")
  froml61c4tol61c13("c = f(k);")
  froml62c4tol64c5{"if k"}
  froml63c6tol63c12["break;"]
  froml66c2tol68c3{"if k++ == 5"}
  froml67c4tol67c17("coucou2 = 24;")
  froml69c2tol75c3{"for let t = 0; ; t < 5 ; t++"}
  froml70c4tol74c5{"if l"}
  froml71c6tol71c11("f(h);")
  froml73c6tol73c37("webkitCancelAnimationFrame(32);")
  froml76c2tol76c15>"return a * 3;"]
  style froml76c2tol76c15 fill:#99FF99
  froml48c2tol48c14 --> froml49c2tol49c27
  froml50c2tol58c3 -- do --> froml51c4tol57c5
  froml56c6tol56c13 -- loop --> froml50c2tol58c3
  froml51c4tol57c5 -- true --> froml52c6tol52c15
  froml51c4tol57c5 -- false --> froml53c11tol57c5
  froml53c11tol57c5 -- true --> froml54c6tol54c29
  froml53c11tol57c5 -- false --> froml56c6tol56c13
  froml49c2tol49c27 --> froml50c2tol58c3
  froml62c4tol64c5 -- do --> froml59c2tol65c18
  froml59c2tol65c18 -- loop --> froml60c4tol60c14
  froml60c4tol60c14 --> froml61c4tol61c13
  froml62c4tol64c5 -- true --> froml63c6tol63c12
  froml61c4tol61c13 --> froml62c4tol64c5
  froml50c2tol58c3 --> froml60c4tol60c14
  froml66c2tol68c3 -- true --> froml67c4tol67c17
  froml63c6tol63c12 --> froml66c2tol68c3
  froml59c2tol65c18 --> froml66c2tol68c3
  froml69c2tol75c3 -- do --> froml70c4tol74c5
  froml71c6tol71c11 -- loop --> froml69c2tol75c3
  froml73c6tol73c37 -- loop --> froml69c2tol75c3
  froml70c4tol74c5 -- true --> froml71c6tol71c11
  froml70c4tol74c5 -- false --> froml73c6tol73c37
  froml67c4tol67c17 --> froml69c2tol75c3
  froml66c2tol68c3 --> froml69c2tol75c3
  froml69c2tol75c3 --> froml76c2tol76c15
end
subgraph class ExampleClass
  froml88c2tol88c15("property = 8;")
  froml89c2tol89c25("static staticProp = 19;")
subgraph method myMethod
  froml81c4tol81c23("console.log('lol');")
  froml82c4tol82c11>"return;"]
  style froml82c4tol82c11 fill:#99FF99
  froml81c4tol81c23 --> froml82c4tol82c11
end
subgraph method exampleMethod
  froml85c4tol85c30{"if myCondition"}
  froml85c21tol85c30>"return 5;"]
  style froml85c21tol85c30 fill:#99FF99
  froml86c4tol86c13>"return 6;"]
  style froml86c4tol86c13 fill:#99FF99
  froml85c4tol85c30 -- true --> froml85c21tol85c30
  froml85c4tol85c30 --> froml86c4tol86c13
end
subgraph method render
  froml91c4tol96c6>"return <div>
        <span>Toto</span>
        <span>Titi</span>
      </div>;"]
  style froml91c4tol96c6 fill:#99FF99

end

end

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment