6cf880f4b8
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-Commit-Position: refs/heads/master@{#43791}
Committed:
|
||
---|---|---|
.. | ||
api | ||
base | ||
compiler | ||
compiler-dispatcher | ||
heap | ||
interpreter | ||
libplatform | ||
wasm | ||
zone | ||
BUILD.gn | ||
cancelable-tasks-unittest.cc | ||
char-predicates-unittest.cc | ||
counters-unittest.cc | ||
DEPS | ||
eh-frame-iterator-unittest.cc | ||
eh-frame-writer-unittest.cc | ||
locked-queue-unittest.cc | ||
object-unittest.cc | ||
register-configuration-unittest.cc | ||
run-all-unittests.cc | ||
source-position-table-unittest.cc | ||
test-utils.cc | ||
test-utils.h | ||
unicode-unittest.cc | ||
unittests.gyp | ||
unittests.isolate | ||
unittests.status | ||
value-serializer-unittest.cc |