• 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
..
benchmarks Loading commit data...
cctest Loading commit data...
common Loading commit data...
debugger Loading commit data...
fuzzer Loading commit data...
inspector Loading commit data...
intl Loading commit data...
js-perf-test Loading commit data...
memory Loading commit data...
message Loading commit data...
mjsunit Loading commit data...
mozilla Loading commit data...
preparser Loading commit data...
promises-aplus Loading commit data...
test262 Loading commit data...
unittests Loading commit data...
webkit Loading commit data...
BUILD.gn Loading commit data...
bot_default.gyp Loading commit data...
bot_default.isolate Loading commit data...
default.gyp Loading commit data...
default.isolate Loading commit data...
optimize_for_size.gyp Loading commit data...
optimize_for_size.isolate Loading commit data...
perf.gyp Loading commit data...
perf.isolate Loading commit data...