v8/test/inspector
Joyee Cheung 963ff849df [class] implement inspector support for private instance methods
This patch implements inspector support for private instance methods:

- Previously to implement brand checking for instances with private
  instance methods we store the brand both as the value with the brand
  itself as the key in the stances. Now we make the value the context
  associated with the class instead.
- To retrieve the private instance methods and accessors from the
  instances at runtime, we look into the contexts stored with the
  brands, and analyze the scope info to get the names as well as
  context slot indices of them.
- This patch extends the `PrivatePropertyDescriptor` in the inspector
  protocol to include optional `get` and `set` fields, and make the
  `value` field optional (similar to `PropertyDescriptor`s).
  Private fields or private instance methods are returned in the
  `value` field while private accessors are returned in the `get`
  and/or `set` field. Property previews for the instaces containing
  private instance methods and accessors are also updated similarly,
  although no additional protocol change is necessary since the
  `PropertyPreview` type can already be used to display accessors.

Design doc: https://docs.google.com/document/d/1N91LObhQexnB0eE7EvGe57HsvNMFX16CaWu-XCTnnmY/edit

Bug: v8:9839, v8:8330
Change-Id: If37090bd23833a18f75deb1249ca5c4405ca2bf2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1934407
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Toon Verwaest <verwaest@chromium.org>
Cr-Commit-Position: refs/heads/master@{#65337}
2019-12-04 20:13:34 +00:00
..
console Revert "[inspector] RemoteObject.description should be empty for primitive type" 2018-05-31 18:52:08 +00:00
cpu-profiler [wasm] Rename {Get,Set,Tee}Local to Local{Get,Set,Tee} 2019-10-08 14:14:40 +00:00
debugger [class] implement inspector support for private instance methods 2019-12-04 20:13:34 +00:00
heap-profiler [heap profiler] Plumb samples through the protocol. 2018-10-23 00:12:01 +00:00
runtime [debug] Revert to old line number behavior for new Function() 2019-11-28 12:01:39 +00:00
runtime-call-stats [DevTools] Implemented DevTools protocol API to retrieve V8 RunTime Call Stats. 2019-11-05 18:59:24 +00:00
sessions WIP: [parser] Fix arrow function name inferring 2019-01-08 08:10:03 +00:00
type-profiler [test] Remove dead flags from some tests. 2018-10-15 10:00:12 +00:00
BUILD.gn [DevTools] Implemented DevTools protocol API to retrieve V8 RunTime Call Stats. 2019-11-05 18:59:24 +00:00
DEPS [inspector][roheap] Make inspector-test.cc compatible with shared ro-heap 2019-06-25 10:23:49 +00:00
inspector-test.cc Rename and retype Symbol name to description 2019-10-30 10:38:55 +00:00
inspector.status Remove 'embedded_builtins' variant 2019-10-22 12:58:02 +00:00
isolate-data.cc [inspector-test] Don't leak the ArrayBuffer::Allocator 2019-10-02 14:26:55 +00:00
isolate-data.h [inspector-test] Don't leak the ArrayBuffer::Allocator 2019-10-02 14:26:55 +00:00
json-parse-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
json-parse.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
OWNERS Use relative paths to OWNERS files 2019-08-12 13:52:52 +00:00
protocol-test.js [wasm] fix clear context group for wasm 2018-11-06 22:27:17 +00:00
task-runner.cc Reland "[d8] Remove maximum workers limitation" 2019-07-30 07:56:17 +00:00
task-runner.h [iwyu] Add missing includes of <memory> for std::unique_ptr 2019-09-13 17:13:36 +00:00
testcfg.py Reland "Reland "[test] refactor testsuite configuration"" 2019-02-06 09:02:09 +00:00