Allow arbitrary code execution as part of expression evaluation
- Dominant language
- Dart
- Stars
- 224
- Forks
- 94
- Avg merge
- 7h 14m
- Merged PRs (30d)
- 2
Description
We received a customer request to have the Dart DevTools expression evaluation work more like the Chrome DevTools expression evaluation. Specifically, they would like to be able to perform arbitrary code execution from the expression evaluation bar (essentially treating it like a DartPad). I tested out a couple expressions:
* `[1, 2, 3, 4].sublist(1)` -> this works!
* `var list = [1, 2, 3, 4];` -> this doesn't work, error: ` CompilationError: Expected an identifier, but got 'var'.`
They also would like to be able to use the expression evaluation bar when they aren't paused at a breakpoint.
@annagrin - I'm guessing this will be a fair amount of work. Do you know what is needed to support this? Thanks!
Contributor guide
Research direction
Start with the Dart DevTools expression evaluation bar and reproduce the two examples in the issue, both paused at a breakpoint and while running. Trace how expressions are compiled and evaluated, then determine the design needed for declarations, arbitrary code execution, and evaluation without a paused breakpoint; done means these scenarios work as requested.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- dart
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100