5c32287390
Collect type information for JavaScript variables and display it in Chrome DevTools. Design Doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing When debugging JavaScript, it’s helpful to know the type of a variable, parameter, and return values. JavaScript is dynamically typed, and for complex source code it’s often hard to infer types. With type profiling, we can provide type information to JavaScript developers. This CL is a proof of concept. It collects type profile for assignments and simply prints the types to stdout. The output looks something like this: #my_var1 #Object #number #string #number #undefined #string #Object #Object We use an extra slot in the feedback vector of assignments to carry the list of types for that assignment. The extra slot is only added when the flag --type-profile is given. Missing work: * Collect data for parameters and return values (currently only assignments). * Remove duplicates from the list of collected types and use a common base class. * Add line numbers or source position instead of the variable name. BUG=v8:5935 Review-Url: https://codereview.chromium.org/2707873002 Cr-Original-Original-Commit-Position: refs/heads/master@{#43791} Committed: |
||
---|---|---|
.. | ||
bytecode-array-builder-unittest.cc | ||
bytecode-array-iterator-unittest.cc | ||
bytecode-array-random-iterator-unittest.cc | ||
bytecode-array-writer-unittest.cc | ||
bytecode-dead-code-optimizer-unittest.cc | ||
bytecode-decoder-unittest.cc | ||
bytecode-operands-unittest.cc | ||
bytecode-peephole-optimizer-unittest.cc | ||
bytecode-pipeline-unittest.cc | ||
bytecode-register-allocator-unittest.cc | ||
bytecode-register-optimizer-unittest.cc | ||
bytecode-utils.h | ||
bytecodes-unittest.cc | ||
constant-array-builder-unittest.cc | ||
interpreter-assembler-unittest.cc | ||
interpreter-assembler-unittest.h |