• franzih's avatar
    Collect type profile for DevTools · 0332bebd
    franzih authored
    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-Commit-Position: refs/heads/master@{#43791}
    0332bebd
Name
Last commit
Last update
..
console Loading commit data...
cpu-profiler Loading commit data...
debugger Loading commit data...
heap-profiler Loading commit data...
runtime Loading commit data...
type-profile Loading commit data...
BUILD.gn Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
inspector-impl.cc Loading commit data...
inspector-impl.h Loading commit data...
inspector-test.cc Loading commit data...
inspector.gyp Loading commit data...
inspector.isolate Loading commit data...
inspector.status Loading commit data...
json-parse-expected.txt Loading commit data...
json-parse.js Loading commit data...
protocol-test.js Loading commit data...
task-runner.cc Loading commit data...
task-runner.h Loading commit data...
testcfg.py Loading commit data...