×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Aug 2, 2018 var title = “How to read the V8 source code”; var info = { name: “Nikolay Stoitsev”, otherOptional: “Software Engineer at Uber” };
Slide 2
Slide 2 text
Aug 2, 2018
Slide 3
Slide 3 text
Aug 2, 2018
Slide 4
Slide 4 text
Aug 2, 2018 Why reading source code?
Slide 5
Slide 5 text
Aug 2, 2018 Learning in depth
Slide 6
Slide 6 text
Aug 2, 2018 How?
Slide 7
Slide 7 text
Aug 2, 2018 C++ 68.6% JavaScript 29.5% Python 1.4% HTML 0.2% TypeScript 0.1% C 0.1% Other 0.1%
Slide 8
Slide 8 text
Aug 2, 2018
Slide 9
Slide 9 text
Aug 2, 2018 Header File
Slide 10
Slide 10 text
Aug 2, 2018 Header File
Slide 11
Slide 11 text
Aug 2, 2018 Header File
Slide 12
Slide 12 text
Aug 2, 2018 Header File
Slide 13
Slide 13 text
Aug 2, 2018 Implementation
Slide 14
Slide 14 text
Aug 2, 2018 Implementation
Slide 15
Slide 15 text
Aug 2, 2018 .js
Slide 16
Slide 16 text
Aug 2, 2018 Parser .js AST
Slide 17
Slide 17 text
Aug 2, 2018 Parser .js AST Ignition Bitecode
Slide 18
Slide 18 text
Aug 2, 2018 Parser .js AST Ignition Bitecode TurboFan Machine code
Slide 19
Slide 19 text
Aug 2, 2018 Parser .js AST Ignition Bitecode TurboFan Machine code Optimizer
Slide 20
Slide 20 text
Aug 2, 2018 How JavaScript works: Parsing, Abstract Syntax Trees (ASTs) + 5 tips on how to minimize parse time
Slide 21
Slide 21 text
Aug 2, 2018 How JavaScript works: Parsing, Abstract Syntax Trees (ASTs) + 5 tips on how to minimize parse time
Slide 22
Slide 22 text
Aug 2, 2018 First look in ./src
Slide 23
Slide 23 text
Aug 2, 2018 Parsing code is in ./src/parsing
Slide 24
Slide 24 text
Aug 2, 2018
Slide 25
Slide 25 text
Aug 2, 2018 AST Nodes are defined in src/ast/ast.h
Slide 26
Slide 26 text
Aug 2, 2018 BytecodeGenerator walks the AST and generate bytecode for each node
Slide 27
Slide 27 text
Aug 2, 2018 BytecodeGenerator
Slide 28
Slide 28 text
Aug 2, 2018 Read the tests!!!
Slide 29
Slide 29 text
Aug 2, 2018 ./test/webkit
Slide 30
Slide 30 text
Aug 2, 2018 ./test/webkit/array-reduce.js
Slide 31
Slide 31 text
Aug 2, 2018 ./test/webkit/function-apply-aliased.js
Slide 32
Slide 32 text
Aug 2, 2018 Thanks!!!
Slide 33
Slide 33 text
Aug 2, 2018 Thanks to our Sponsors: